Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Запрос к кассовым документам

Добрый день.

Подскажите пожалуйста как правильно сформировать запрос к кассовым документам (приходный/расходный ордер) при условии, что мне нужно выбирать данные или из самого документа или из его табличной части в зависимости от вида операции. При этом в итоговой таблице должна получаться одна запись (данные из шапки) или несколько (данные из ТЧ). Если формировать запрос по документу с левым соединением с табличной частью в любом случае получится несколько записей (по числу строк ТЧ).
Как быть в моем случае?
Ответ: () +1
() -1
Вопрос: v7: Поправить запрос по документам

Доброго дня! Сейчас есть вот такой запрос, как его правильно подправить что бы в выборку НЕ попадали помеченные на удаление объекты.
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса = "
        |Период с НачДата по КонДата;
        |ОбрабатыватьДокументы Непроведенные;
        |ФирмаЗ                       = Документ.Реализация.Фирма;
        |Контр                         = Документ.Реализация.Контрагент;
        |СумОтгруз                    = Документ.Реализация.СуммаВзаиморасчетов;
        |Функция СуммаСумм = Сумма(СумОтгруз);            
        |Группировка Документ;
        |Условие (ФирмаЗ = Фирма);
        |Условие (Контр = Контрагент);
        |";
Ответ: ()
Обрабатывать НеПомеченныеНаУдаление - применимо к запросу по справочникам или документам: убирает из результата запроса помеченные на удаление элементы запроса;
ОбрабатыватьДокументы Непроведенные - применимо только к запросу по документам: убирает из результата запроса проведённые документы
Вопрос: По результату запроса создать документы

Есть запрос, приблизительно такой

ВЫБРАТЬ первые 100
    Адреса.Ссылка КАК АдресДоставки,
    Адреса.Владелец КАК Контрагент,
    Адреса.Договор.Организация КАК Организация,
ИЗ
    Справочник.АдресаДоставки КАК Адреса

Нужно по результату этого запроса создать документы одного вида и вывести созданные документы в таблицу на форме. Я делаю так:

Выборка = Запрос.Выполнить().Выбрать();
    
Пока Выборка.Следующий() Цикл
    Док = Документы.УниверсальныйДокумент.СоздатьДокумент();
    ЗаполнитьЗначенияСвойств(Док, Выборка);
    Док.Записать(РежимЗаписиДокумента.Проведение);
    ЗаписьТаблицы = Объект.Документы.Добавить();
    ЗаполнитьЗначенияСвойств(ЗаписьТаблицы, Док);
КонецЦикла;

Говорят: коряво.
Как можно иначе?
Ответ: Как-то странно. Куда записи деваются? Короче: шеф не прочитал код, который в цикле. Он решил что я там проверяю условия. Я молодец. Всем спасибо. Тема закрыта.
Вопрос: БП 3.0 и время записи документа

Добрый день! В БП 2.0 при записи документов "задним числом" 1С использовала время записи из предыдущего документа плюс одна секунда. В БП 3.0 как я понимаю алгоритм изменился? Она теперь всегда ставит 23:59:59?
Отсюда возникает проблема с перенумерацией кассовых документов. Потому что, используемая мной обработка ориентируется на время записи документа.
Подскажите как можно обойти данную ситуацию?
Ответ:
ну я не этого и не утверждал. поставлю вопрос иначе. как работать с кассовыми документами? которые вводятся в программу "задним числом"?

нет. таких документов за этот день нету. он даже в чистой базе так себя ведет.
--- Объединение сообщений, 26 авг 2016 ---
еще припоминаю, что проблема со временем только у одного конкретного пользователя из 10.
Вопрос: В запросе выбрать документы, в ТЧ отсутствует ЛОЖЬ

Доброго времени!
Есть список документов. В табличной части этих документов, допустим, есть только одно поле с типом булево.
Как в запросе выбрать только те документы, в табличной части которых, во всех строках ИСТИНА?
Т.е. даже в одной строке отсутствует "ложь".
А то никак не соображу, по строчкам получается, а целиком документы отобрать - нет.
Пример:
Есть два документа. В каждом пусть будет по 5 строк. В первом - все строки истина, а во втором - одна или две строки имеют значение "ЛОЖЬ". Запрос должен вернуть только первый документ.
Ответ:
Премного благодарен! Этот вариант подходит больше всего.
Вопрос: Запрос к документам и их табличной части с группировкой

В цикл с группировкой "Подразделение" попадает подразделение(я), в которых заполнена табличная часть. Подскажите, как реализовать группировку по всем подразделениям в не зависимости от того, есть или нет строки в табличной части.

"ВЫБРАТЬ
| Форма5Обороты.Ссылка.Подразделение КАК Подразделение,
| Форма5Обороты.КодАП КАК КодАП,
| Форма5Обороты.Производитель КАК Производитель,
| Форма5Обороты.П000000000007 КАК П000000000007,
| Форма5Обороты.П000000000008 КАК П000000000008,
| Форма5Обороты.П000000000009 КАК П000000000009,
| Форма5Обороты.П000000000010 КАК П000000000010,
| Форма5Обороты.П000000000011 КАК П000000000011,
| Форма5Обороты.П000000000012 КАК П000000000012,
| Форма5Обороты.П000000000013 КАК П000000000013,
| Форма5Обороты.П000000000014 КАК П000000000014,
| Форма5Обороты.П000000000015 КАК П000000000015,
| Форма5Обороты.П000000000016 КАК П000000000016,
| Форма5Обороты.П000000000017 КАК П000000000017,
| Форма5Обороты.П000000000018 КАК П000000000018,
| Форма5Обороты.П000000000019 КАК П000000000019,
| Форма5Обороты.П000000000020 КАК П000000000020,
| Форма5Обороты.П000000000021 КАК П000000000021,
| Форма5Обороты.П000000000022 КАК П000000000022,
| Форма5Обороты.П000000000023 КАК П000000000023,
| Форма5Обороты.П000000000024 КАК П000000000024,
| Форма5Обороты.П000000000025 КАК П000000000025
|ИЗ
| Документ.Форма5.Обороты КАК Форма5Обороты
|ГДЕ
| Форма5Обороты.Ссылка.Год = &Год
| И Форма5Обороты.Ссылка.Квартал = &Квартал
| И Форма5Обороты.Ссылка.Организация = &Организация
| И Форма5Обороты.Ссылка.Лицензия = &Лицензия
| И Форма5Обороты.Ссылка.Подразделение В(&СпПодразделения)
|ИТОГИ
| СУММА(П000000000007),
| СУММА(П000000000008),
| СУММА(П000000000009),
| СУММА(П000000000010),
| СУММА(П000000000011),
| СУММА(П000000000012),
| СУММА(П000000000013),
| СУММА(П000000000014),
| СУММА(П000000000015),
| СУММА(П000000000016),
| СУММА(П000000000017),
| СУММА(П000000000018),
| СУММА(П000000000019),
| СУММА(П000000000020),
| СУММА(П000000000021),
| СУММА(П000000000022),
| СУММА(П000000000023),
| СУММА(П000000000024),
| СУММА(П000000000025)
|ПО
| Подразделение,
| КодАП,
| Производитель
Ответ:
Нет нужна группировка по "Подразделение", "КодАП", "Производитель" с итогами входящие в "СпПодразделения". В 1С7 в запросе в группировке указываешь "ВСЕ"
Вопрос: При выгрузке из УНФ в БП замещаются документы

Добрый день, уважаемые форумчане! Столкнулся со следующей проблемой. А именно - с кассовыми документами (приход в кассу, расход из кассы) при выгрузке из УНФ в БП. Обмен односторонний. У нас две базы УНФ (в одной - ИП Иванов, во второй - ИП Петров). В базу Бухгалтерия предприятия, из обеих баз УНФ, периодически выгружаются все документы. Дело в том, что при выгрузке кассовых документов из базы ИП Иванова (УНФ) в бухгалтерию, некоторые документы по ИП Петрову (в бухгалтерии) замещаются. Номер и дата у документа остаются такие же, а вот все остальные данные меняются (организация, сумма и пр.). Соответственно, по ИП Петрову "пропадает" документ. Подскажите пожалуйста, сталкивались ли вы с этим? Какие меры можно предпринять? Буду рад любому совету!!!))))
Версии конфигураций сейчас последние
Управление нашей фирмой, 1.6.5.44
Бухгалтерия предприятия 3.0.63.22
Ответ: () Решили ввести документы вручную. В том периоде с префиксами и номерами была неразбериха. Сейчас все префиксы разные)) Спасибо за правильное направление!
Вопрос: Не переносятся кассовые документы в обмене УТ 11 - Розница 2

Настроил связку УТ 11.4 - Розница 2.2. Товары, цены, продажи - всё переносится нормально. Попробовал сделать перемещение денег из центральной кассы УТ в кассу розничной точки - и тут затык - не переносится, хотя, судя по описанию в файле совместной работы должно переноситься. Не подскажете - может, какой нюанс есть известный, чтобы перенос сработал?

И подскажите ещё, как это должно выглядеть? В УТ сделать только РКО, или и РКО, и ПКО?

Далее, попробовал в Рознице внести вручную ПКО - с видом "Поступление ДС из другой кассы" - но в этом случае требует в качсевте реквизита ПКО ввести "Документ расхода ДС". Пробую ввести РКО из центральной кассы в кассу магазина - но при этом в поле "Касса-отправитель" появляется выбор только кассы магазина (а мне нужна центральная касса офиса). Хотя в общем справочнике касс общая касса есть и помечена как "Касса управляющей системы".

В общем, вот такие трудности появились.... Подскажите, пожалуйста, как правильно организовать передвижение денежных средств между кассами офиса и магазина?
Ответ: Сталкивался ли кто?
Вопрос: Создание отчета по оплате клиентов: вывод документов оплаты и курсов для каждого Клиента

Здравствуйте, столкнулся с проблемой при создании формы отчета .
Что я пытаюсь сделать? Имеется макет подобного вида . Данные берутся отсюда .

При печати должна получиться табличка с Клиентом, его оплаченной суммой, и записями об его оплате.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
&НаСервере
Процедура СформироватьНаСервере(ТабДок)
    //Запрос по клиентам и оплаченной суммой
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                  |ВнесениеОплатыЗаКурсы.Ссылка.Клиент КАК Клиент,
                  |СУММА(ВнесениеОплатыЗаКурсы.ВнесеннаяСумма)
                  |КАК ОплаченнаяСумма
                  |ИЗ
                  |Документ.ВнесениеОплаты.ОплатаКурсов 
                  |КАК ВнесениеОплатыЗаКурсы
                  |СГРУППИРОВАТЬ ПО
                  |ВнесениеОплатыЗаКурсы.Ссылка.Клиент";
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДанные = РезультатЗапроса.Выбрать();
    Макет = Отчеты.ОплатаКлиентов.ПолучитьМакет("Макет");
    // Заголовок
    Область = Макет.ПолучитьОбласть("Заголовок");
    ТабДок.Вывести(Область);
     // Шапка
    Область = Макет.ПолучитьОбласть("Шапка");
    ТабДок.Вывести(Область);
      // Выполнить запрос
    Пока ВыборкаДанные.Следующий() Цикл
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьСтрока.Параметры.Клиент = ВыборкаДанные.Клиент;
    ОбластьСтрока.Параметры.ОплаченнаяСумма = ВыборкаДанные.ОплаченнаяСумма;
    ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
 
   //Запрос по документам
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                  |ВнесениеОплаты.Ссылка.Номер КАК Номер,
                  |ВнесениеОплаты.Ссылка.Сумма КАК Сумма,
                  |ВнесениеОплаты.Ссылка.ОплатаКурсов.Курс КАК Курс,
                  |ВнесениеОплаты.Ссылка.Ссылка.ОплатаКурсов.ВнесеннаяСумма КАК СуммаК
                  |ИЗ
                  |Документ.ВнесениеОплаты
                  |КАК ВнесениеОплаты
                  |СГРУППИРОВАТЬ ПО
                  |ВнесениеОплаты.Ссылка.Номер";
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДанные = РезультатЗапроса.Выбрать();
    Макет = Отчеты.ОплатаКлиентов.ПолучитьМакет("Макет");
    // Заголовок
    Область = Макет.ПолучитьОбласть("Номер");
    ТабДок.Вывести(Область);
    
      // Выполнить запрос
    Пока ВыборкаДанные.Следующий() Цикл
    ОбластьСтрока = Макет.ПолучитьОбласть("НомерЗнач");
    ОбластьСтрока.Параметры.Номер = ВыборкаДанные.Номер;
    ОбластьСтрока.Параметры.Сумма = ВыборкаДанные.Сумма;
    ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
 
    Область = Макет.ПолучитьОбласть("КурсСумм");
    ТабДок.Вывести(Область);
      // Выполнить запрос
    Пока ВыборкаДанные.Следующий() Цикл
    ОбластьСтрока = Макет.ПолучитьОбласть("КурсСуммЗнач");
    ОбластьСтрока.Параметры.ОплатаКурсов.Курс = ВыборкаДанные.ОплатаКурсов.Курс;
    ОбластьСтрока.Параметры.ОплатаКурсов.ВнесеннаяСумма = ВыборкаДанные.ОплатаКурсов.ВнесеннаяСумма;
    ТабДок.Вывести(ОбластьСтрока);
    КонецЦикла;
    
    
КонецПроцедуры
 
&НаКлиенте
Процедура Сформировать(Команда)
    ТабДок = Новый ТабличныйДокумент;
    СформироватьНаСервере(ТабДок);
    ТабДок.Показать();
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
 
КонецПроцедуры
Ответ: GreenkA, Вот, что получилось
Что-то не особо понятно, как данное свойство работает, то есть где взять свойство, чтобы строка заполнялась без повторений? Этот метод здесь должен быть?
1C
1
2
3
4
5
6
7
8
9
10
11
        Пока ВыборкаНомер.Следующий() Цикл
            // Выводим номера документов и их сумму
            ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
            ОбластьСтрока.Параметры.Номер = ВыборкаНомер.Номер;
            ОбластьСтрока.Параметры.Сумма = ВыборкаНомер.Сумма;
            ОбластьСтрока.Параметры.Курс = ВыборкаНомер.Курс;
            ОбластьСтрока.Параметры.ОплаченнаяСумма = ВыборкаНомер.ВнесеннаяСумма;
            //ВОТ ОНО
            ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры.Номер,ОбластьСтрока.Параметры.Номер,Выборка);
            ТабДок.Вывести(ОбластьСтрока);
        КонецЦикла;
Вопрос: v7: Запрос по документам, как получить документ ?

Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса = "
        
        |Период с xml_ДатаДок по xml_ДатаДок;
        |ТекущийДокумент = Документ.ПоступлениеТоваров.ТекущийДокумент;
        |Дата = Документ.ПоступлениеТоваров.ДатаДок;
        |Контрагент = Документ.ПоступлениеТоваров.Контрагент;
        |СуммаР = Документ.ПоступлениеТоваров.РозничнаяСумма;
        |Сумма = Документ.ПоступлениеТоваров.Всего;
        |Условие(Дата =  xml_ДатаДок);
        |Условие(Контрагент = xml_Контрагент);
        |Условие(Сумма = xml_Сумма);
        |Условие(СуммаР = xml_СуммаР);";

Документ находит, но как получить его ? Через табло Запрос.ТекущийДокумент = ""
Ответ: Всем спасибо ТипЗначенияСтр(xml_ДатаДок) = "строка"