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