Имя: Пароль:
1C
1С v8
Помогите разобраться с конвертацией данных.
0 Igor1_777
 
23.08.18
22:26
Ошибка получения коллекции подчиненных объектов из входящих данных. Имеем выгрузку из Розница 2.2 в УТ 11.3. Выгружаю документ "ВводНачальныхОстатковУзла" ТЗ-ТоварыОрганизаций, запросом выбераю строки табличной части. В ПКО Источник не выбран, в приемнике ДокументСсылка.ВводОстатков.
1 Igor1_777
 
23.08.18
22:27
в пвд. ВыборкаОрг = Справочники.Организации.Выбрать();
Пока ВыборкаОрг.Следующий() Цикл      
    //Сообщить(ВыборкаОрг);
    ВыборкаСкладов = Справочники.Склады.Выбрать();
    Пока ВыборкаСкладов.Следующий() Цикл      
        Сообщить("1");
        Запросы.ВводОстатковПоОрганизации.УстановитьПараметр("Организация",ВыборкаОрг.Ссылка);                      
        Запросы.ВводОстатковПоОрганизации.УстановитьПараметр("Склад",ВыборкаСкладов.Ссылка);
        Результат = Запросы.ВводОстатковПоОрганизации.Выполнить();
        Выгрузка = Результат.Выгрузить();
        //Если НЕ Результат.Пустой() Тогда
        Флаг = 0;
        ВходящиеДанные = Новый Структура;
        Товары = Новый ТаблицаЗначений;
        Товары.Колонки.Добавить("Количество");
        Товары.Колонки.Добавить("Номенклатура");
        
        
        Для Каждого Строка Из Выгрузка Цикл
            Сообщить("2");
            Если НЕ Строка.Количество = 0 Тогда
                Сообщить("3");
                ВходящиеДанные.Вставить("Номер",Объект.Номер);
                //ВходящиеДанные.Вставить("Дата",Объект.Дата);
                ВходящиеДанные.Вставить("Организация",Строка.Организация);
                ВходящиеДанные.Вставить("Склад",Строка.Склад);
                //ВходящиеДанные.Вставить("Номенклатура",Строка.Номенклатура);
                //ВходящиеДанные.Вставить("Количество",Строка.Количество);
                ВходящиеДанные.Вставить("Комментарий","Документ сформирован из розница 2.2 документ ");
                //ВходящиеДанные.Вставить("СуммаПолучения",Строка.Сумма);
                НовСтрока = Товары.Добавить();
                НовСтрока.Номенклатура = Строка.Номенклатура;
                НовСтрока.Количество = Строка.Количество;
                Если НЕ Товары.Количество() = 0 Тогда
                    ВходящиеДанные.Вставить("Товары",Товары);
                    ВыгрузитьПоПравилу(ВходящиеДанные,,,,"ВводОстатков");
                КонецЕсли;
            Иначе
                Флаг = 1;
                //Сообщить(Строка.Организация);
                //Сообщить(Строка.Склад);
                Отказ = ИСТИНА;
            КонецЕсли;
            Сообщить("4");
        КонецЦикла;
        Сообщить("5");
        //Если НЕ Выгрузка.Количество() = 0 Тогда
        //Если НЕ Товары.Количество() = 0 Тогда
        //    ВходящиеДанные.Вставить("Товары",Товары);
        //    ВыгрузитьПоПравилу(ВходящиеДанные,,,,"ВводОстатков");
        //КонецЕсли;
        //Иначе
        //    Сообщить(ВыборкаОрг.Ссылка +" "+ВыборкаСкладов.Ссылка);
        //    Сообщить("Нет данных");
        //    Отказ = ИСТИНА;
        //КонецЕсли;
    КонецЦикла;
КонецЦикла;
2 MuxaH
 
24.08.18
06:37
ВходящиеДанные, насколько я помню, третьим параметром должны идти. Первые 2 Источник и Преемник. Ну а в правиле конвертации объектов должна стоять галка Получить из входящих данных. Либо если с галкой не прокатывает, то там в правиле конвертации свойств (которая твоя ТЧ) надо написать КоллекцияОбъектов = ВходящиеДанные.Товары
3 azt-yur
 
24.08.18
07:00
в (2) на счет порядка параметра ВходящиеДанные прав.
Но я бы рекомендовал не делать входящими данными, источником может выступать и твоя структура, убери просто во всех ПКС галочку "Получить из входящих данных" и должно сработать (в структуре конечно должны быть все свойства твоего ПКО).
И по самому коду не корректно: не там делаешь выгрузку. ВыгрузитьПоПравилу должно быть после цикла по товарам, а то у тебя получится что выгрузится столько документов сколько у тебя товаров, и в каждом следующем документе на 1 строчку больше чем в предыдущем
Закон Брукера: Даже маленькая практика стоит большой теории.