Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 авг 2025, 12:16

Дата не может быть пустой

Автор Кирилл Иванов, 04 июн 2018, 21:09

0 Пользователей и 1 гость просматривают эту тему.

Кирилл Иванов

Добрый вечер. В моей конфигурации в течение месяца вводятся товарные чеки, по итогам месяца запускается обработка внешняя, которая должна по каждому дню, по которому были продажи, сформировать документ-перемещение товаров в отдел со склада (в отдел, где совершалась продажа), вот такой вот запрос у меня получился. Документ создаётся корректно, нужное число товаров в нужных отделах, вот только про попытке записать дату Период1 в документ, выскакивает ошибка "Дата не может быть пустой". В чём проблема? Прикладываю содержание регистра товарных чеков и код запроса.

Код:
ИнформацияПоОтделам = Новый Запрос;
ИнформацияПоОтделам.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПродажиТоваровОбороты.Товар КАК Товар,
| ПродажиТоваровОбороты.Отдел КАК Отдел,
| ПродажиТоваровОбороты.Поставщик КАК Поставщик,
| ПродажиТоваровОбороты.КоличествоОборот КАК КоличествоПроданныхТоваров,
| ПродажиТоваровОбороты.СуммаОборот КАК Доход,
| ДЕНЬ(ПродажиТоваров.Период) КАК Период,
| ПродажиТоваров.Период КАК Период1
|ИЗ
| РегистрНакопления.ПродажиТоваров.Обороты(&НачалоМесяца, &КонецМесяца, , ) КАК ПродажиТоваровОбороты,
| РегистрНакопления.ПродажиТоваров КАК ПродажиТоваров
|
|СГРУППИРОВАТЬ ПО
| ПродажиТоваровОбороты.Отдел,
| ПродажиТоваровОбороты.Товар,
| ПродажиТоваровОбороты.Поставщик,
| ПродажиТоваровОбороты.КоличествоОборот,
| ПродажиТоваровОбороты.СуммаОборот,
| ПродажиТоваров.Регистратор.Дата,
| ДЕНЬ(ПродажиТоваров.Период),
| ПродажиТоваров.Период
|ИТОГИ
| СУММА(КоличествоПроданныхТоваров),
| СУММА(Доход)
|ПО
| Период,
| Отдел,
| Товар";

ИнформацияПоОтделам.УстановитьПараметр("НачалоМесяца", НачалоМесяца);
ИнформацияПоОтделам.УстановитьПараметр("КонецМесяца", КонецМесяца);

ВыборкаПоДням = ИнформацияПоОтделам.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоДням.Следующий() Цикл
ВыборкаПоОтделам = ВыборкаПоДням.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоОтделам.Следующий() Цикл
ДокументПеремещение = Документы.Перемещение.СоздатьДокумент();
[b]ДокументПеремещение.Дата = ВыборкаПоОтделам.Период1;[/b] - вот тут ошибка
ВыборкаПоТоварам = ВыборкаПоОтделам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоТоварам.Следующий() Цикл
СтрокаТабличнойЧасти = ДокументПеремещение.СведенияОВыкладке.Добавить();
СтрокаТабличнойЧасти.Товар = ВыборкаПоТоварам.Товар;
СтрокаТабличнойЧасти.Отдел = ВыборкаПоТоварам.Отдел;
СтрокаТабличнойЧасти.Количество = ВыборкаПоТоварам.КоличествоПроданныхТоваров;
СтрокаТабличнойЧасти.РозничнаяЦена = ВыборкаПоТоварам.Доход / ВыборкаПоТоварам.КоличествоПроданныхТоваров;
СтрокаТабличнойЧасти.Стоимость = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.РозничнаяЦена;
КонецЦикла;
ДокументПеремещение.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
КонецЦикла;

ilyay

У вас таблицы соединяются декартовым произведением, с этого начните.
Для отладки, можете выгрузить результат запроса в дерево и проанализировать, что у вас там.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск