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