Вкратце нужно из ТЗ в табличную часть нового документа или уже существующего загрузить информацию. При этом не исключена повторная загрузка с исключением ранее загруженной информации.
В ТЗ грубо говоря есть строки, 1 колонка - Менеджер, 2 - Идентификатор. 3 - число.
В колонке Менеджер данные могут быть разные, в колонке Идентифкатор - данные разные.
Нужно Взять Менеджера, проверить есть ли документ для него, если нет - создать и дальше заполнить табличную часть идентифкатором из второй колонки и числом из третьей.
И так для каждой строки ТЗ.
Есть код:
таб.ВыбратьСтроки(); // таб - заполенная ТЗ с информацией
Пока таб.ПолучитьСтроку() = 1 Цикл
локОтчет= "";
тмпОтчет = СоздатьОбъект("Документ.Отчет");
тмпОтчет.ВыбратьДокументы(ДатаСоздания,ДатаСоздания);
Пока тмпОтчет.ПолучитьДокумент() = 1 Цикл
Если тмпОтчет.Менеджер = таб.Менеджер Тогда
локОтчет= тмпОтчет;
Прервать;
КонецЕсли;
КонецЦикла;
Если локОтчет= "" Тогда //если не существует документа - создаем новый
локОтчет= СоздатьОбъект("Документ.Отчет");
локОтчет.Новый();
локОтчет.НоваяСтрока();
//дальше заполняем первую строку документа информацией
Иначе
//документ уже существует
локОтчет.ВыбратьСтроки();
Пока локОтчет.ПолучитьСтроку()=1 Цикл
Если Число(локОтчет.Идентификатор)=СокрЛП(таб.Идентификатор) Тогда
//проверяем нет ли в существующем документе строки с информацией которую загрузили ранее
Продолжить; //если есть возвращаемся в начало цикла и смотрим на следующую строку
КонецЕсли;
локОтчет.НоваяСтрока();
//дальше заполняем строку документа информацией
КонецЦикла;
КонецЕсли;
КонецЦикла
в итоге при первичной загрузке информации из ТЗ документы создаются изаполняются, а при повторной загрузке - вся информация задваивается.
Как избежать задвоения?
Заранее благодарен!