Имя: Пароль:
1C
1С v8
Структура в документ
0 Badman594
 
25.04.19
10:48
Добрый день, господа! Прошу не кидать помидорами, а, если сие возможно, подсказать. Получил в обработку из JSONа структуру с структурами и массивами, каждому документу соответствует 1 структура и 2 массива, в структуре реквизиты дока, в массивах - 2 табчасти(имена ниже и они пронумерованы по номеру документа). По условию ниже я вроде раскидываю доки в новую структуру, но она перезаписывается. Мне надо выгрузить выбранные по пометке доки в НовыйДокумент.



Функция СтруктураВТАблицаДокументов(СтруктураДанных)
    ЭтотОбъект.Объект.ТаблицаДокументов.Очистить();
      Для Каждого Элемент Из СтруктураДанных Цикл
          Если СтрНАйти(Элемент.Ключ,"Документа") Тогда
          НоваяСтрока = ЭтотОбъект.Объект.ТаблицаДокументов.Добавить();    
          НоваяСтрока.НомерДокумента= Элемент.Значение.Номер;
          НоваяСтрока.ДатаДокумента=Элемент.Значение.Дата;
      КонецЕсли;
      Если СтрЗаканчиваетсяНа(Элемент.Ключ,НоваяСтрока.НомерДокумента)и ТипЗнч(Элемент.Значение)= Тип("Структура") тогда
              Структур=новый Структура;
          Структур.Вставить("РеквизитыДокумента_"+НоваяСтрока.НомерДокумента,Элемент.Значение);
      ИначеЕсли СтрЗаканчиваетсяНа(Элемент.Ключ,НоваяСтрока.НомерДокумента) и ТипЗнч(Элемент.Значение)= Тип("Массив")и СтрНайти(Элемент.Ключ,"РемонтыОборудования") тогда
          Структур.Вставить("РемонтыОборудования_"+НоваяСтрока.НомерДокумента,Элемент.Значение);
      ИначеЕсли СтрЗаканчиваетсяНа(Элемент.Ключ,НоваяСтрока.НомерДокумента) и ТипЗнч(Элемент.Значение)= Тип("Массив")и СтрНайти(Элемент.Ключ,"РемонтныеРаботы") тогда
          Структур.Вставить("РемонтныеРаботы_"+НоваяСтрока.НомерДокумента,Элемент.Значение);
          
      КонецЕсли;  
      
          КонецЦикла;
КонецФункции


Процедура  Команда2НаСервере()
    Выборка=ЭтотОбъект.Объект.ТаблицаДокументов.Выгрузить(ЭтотОбъект.Объект.ТаблицаДокументов.НайтиСтроки(Новый Структура("Пометка",Истина)));
    //ДокОбъект=Документыю
    //ДокОбъект =ЭтотОбъект.Объект.СсылкаНаДокумент.СоздатьДокумент();  
Для каждого тСтрока из Выборка Цикл
    попытка
ДокОбъект=Документы.НовыйДокумент.СоздатьДокумент();        
ДокОбъект.Дата = тСтрока.ДатаДокумента;
ДокОбъект.Номер=тСтрока.НомерДокумента;
ДокОбъект.Записать();
    Исключение
                Сообщить("");
                КонецПопытки;

            КонецЦикла;
        
        
КонецПроцедуры
1 Badman594
 
25.04.19
11:11
Хотел поправиться - по условию в функции пытаюсь для  каждого документа создать отдельную структуру, но тк документ не один - структура перезаписывается. Остальное сказано выше
2 catena
 
25.04.19
11:21
Во-первых, вынести определение структуры из Если.
Во-вторых, не видно, где этот структур используется, в текущем виде будет перезатираться в любом случае, т.к. крутится внутри функции.
3 Badman594
 
25.04.19
11:30
Если проще говоря мне надо помеченные доки(1 стр и 2 масс) выгрузить в НовыйДокумент. Вот я и прошу подсказать каким образом это можно сделать.

СтруктураJSON:
Свойство    Значение    Тип
СтруктураДанных    Структура    Структура
РеквизитыДокумента_00000000210    Структура    Структура
РеквизитыДокумента_00000000211    Структура    Структура
РеквизитыДокумента_00000000212    Структура    Структура
РеквизитыДокумента_00000000213    Структура    Структура
РеквизитыДокумента_00000065175    Структура    Структура
РеквизитыДокумента_00000071741    Структура    Структура
РеквизитыДокумента_00000072950    Структура    Структура
РеквизитыДокумента_00000072951    Структура    Структура
РеквизитыДокумента_00000072952    Структура    Структура
РемонтныеРаботы_00000000210    Массив    Массив
РемонтныеРаботы_00000000211    Массив    Массив
РемонтныеРаботы_00000000212    Массив    Массив
РемонтныеРаботы_00000000213    Массив    Массив
РемонтныеРаботы_00000065175    Массив    Массив
РемонтныеРаботы_00000071741    Массив    Массив
РемонтныеРаботы_00000072950    Массив    Массив
РемонтныеРаботы_00000072951    Массив    Массив
РемонтныеРаботы_00000072952    Массив    Массив
РемонтыОборудования_00000000210    Массив    Массив
РемонтыОборудования_00000000211    Массив    Массив
РемонтыОборудования_00000000212    Массив    Массив
РемонтыОборудования_00000000213    Массив    Массив
РемонтыОборудования_00000065175    Массив    Массив
РемонтыОборудования_00000071741    Массив    Массив
РемонтыОборудования_00000072950    Массив    Массив
РемонтыОборудования_00000072951    Массив    Массив