|
создание документов исходя из даты | ☑ | ||
---|---|---|---|---|
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) Это первый же способ который приходит в голову. Но, если немного поизвращаться, то можно таблицу с датой и номерами выгрузить в Запрос и сгруппировать по периодичности "день" это дело. Далее в цикле обходить по группировкам, в первой создавать документ (заполнять шапку), во втором уровне - заполнять табличную часть.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |