|
|
создание документов исходя из даты |
☑ |
|
0
Kneelz
30.08.22
✎
14:32
|
Добрый день, подскажите метод создание документов читаю файл в структуру, есть массив чеков в массиве, подскажите каким образом сделать создание документов за разные даты
Присваиваю значение ДатаДок = КонецДня (ЗагруженныеЧеки.date)
после создаю документ, но какое условие мне нужно задать чтоб Если дата отличалась создавался новый документ, и также с табличной частью этого документа (обрабатываются из массива внутри).
Надеюсь корректно описал ситуацию, спасибо
|
|
|
1
ZDenis
30.08.22
✎
14:44
|
(0) В переменной хранить предыдущую дату. Далее если она отличается от текущей в выборке, то создавать новый документ.
|
|
|
2
azernot
30.08.22
✎
14:56
|
+(1) Только эта самая "структура", которая "массив чеков" должна быть упорядочена по дате.
|
|
|
3
Мультук
гуру
30.08.22
✎
15:00
|
(0)
Что мешает сначала преобразовать эту структуру с массивом в массивах в {например} таблицуЗначений, упорядочить по дате и потом уже...
P.S.
Оно конечно, если чеков миллионы и миллиарды, то нужно оптимизировать
Но сильно вряд ли, что этот "тот случай"
|
|
|
4
МКК
30.08.22
✎
15:05
|
Вы втираете какую-то дичь, человек который запрогал сам создание документа, не может не понимать как разделить документы на даты
|
|
|
5
Kneelz
30.08.22
✎
15:10
|
(1) (2) Спасибо, буду тестить, да по дате упорядочена.
|
|
|
6
azernot
30.08.22
✎
15:11
|
(5) Как-то вот так:
ТекущаяОбрабатываемаяДата = Дата(1,1,1);
ТекущийЗаполняемыйДокумент = Неопределено;
Для каждого ЭлементМоейСтруктуры из СтруктураМассивЧеков Цикл
Если НЕ КонецДня(ЭлементМоейСтруктуры.date) = ТекущаяОбрабатываемаяДата Тогда
Если НЕ ТекущийЗаполняемыйДокумент = Неопределено Тогда
//Записать предыдущий документ
ТекущийЗаполняемыйДокумент.Записать(РежимЗаписи.. бла-бла-бла);
...
КонецЕсли;
//Заполнение шапки документа
ТекущийЗаполняемыйДокумент = Документы.ЧекККМ.СоздатьДокумент();
ТекущийЗаполняемыйДокумент.Дата = КонецДня(ЭлементМоейСтруктуры.date);
...
ТекущаяОбрабатываемаяДата = КонецДня(ЭлементМоейСтруктуры.date);
КонецЕсли;
//Заполнение ТЧ документа
Для каждого ДанныеСтрокиЧека из ЭлементМоейСтруктуры.МассивДанныхСтрокЧека Цикл
НоваяСтрокаТЧ = ТекущийЗаполняемыйДокумент.Товары.Добавить();
...
КонецЦикла;
КонецЦикла;
Если НЕ ТекущийЗаполняемыйДокумент = Неопределено Тогда
//Записать предыдущий документ
ТекущийЗаполняемыйДокумент.Записать(РежимЗаписи.. бла-бла-бла);
...
КонецЕсли;
|
|
|
7
Kneelz
30.08.22
✎
15:15
|
(6) Спасибо большое!)
|
|
|
8
Kassern
30.08.22
✎
15:24
|
(6) Это первый же способ который приходит в голову. Но, если немного поизвращаться, то можно таблицу с датой и номерами выгрузить в Запрос и сгруппировать по периодичности "день" это дело. Далее в цикле обходить по группировкам, в первой создавать документ (заполнять шапку), во втором уровне - заполнять табличную часть.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший