Вход | Регистрация

1С:Предприятие ::

Метки: 

Помогите разобраться с конвертацией данных.

Я
   Igor1_777
 
23.08.18 - 22:26
Ошибка получения коллекции подчиненных объектов из входящих данных. Имеем выгрузку из Розница 2.2 в УТ 11.3. Выгружаю документ "ВводНачальныхОстатковУзла" ТЗ-ТоварыОрганизаций, запросом выбераю строки табличной части. В ПКО Источник не выбран, в приемнике ДокументСсылка.ВводОстатков.
 
 
   Igor1_777
 
1 - 23.08.18 - 22:27
в пвд. ВыборкаОрг = Справочники.Организации.Выбрать();
Пока ВыборкаОрг.Следующий() Цикл      
    //Сообщить(ВыборкаОрг);

    ВыборкаСкладов = Справочники.Склады.Выбрать();
    Пока ВыборкаСкладов.Следующий() Цикл      
        Сообщить("1");
        Запросы.ВводОстатковПоОрганизации.УстановитьПараметр("Организация",ВыборкаОрг.Ссылка);                       
        Запросы.ВводОстатковПоОрганизации.УстановитьПараметр("Склад",ВыборкаСкладов.Ссылка);
        Результат = Запросы.ВводОстатковПоОрганизации.Выполнить(); 
        Выгрузка = Результат.Выгрузить();
        //Если НЕ Результат.Пустой() Тогда

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

                ВходящиеДанные.Вставить("Организация",Строка.Организация);
                ВходящиеДанные.Вставить("Склад",Строка.Склад);
                //ВходящиеДанные.Вставить("Номенклатура",Строка.Номенклатура);

                //ВходящиеДанные.Вставить("Количество",Строка.Количество);

                ВходящиеДанные.Вставить("Комментарий","Документ сформирован из розница 2.2 документ ");
                //ВходящиеДанные.Вставить("СуммаПолучения",Строка.Сумма);

                НовСтрока = Товары.Добавить();
                НовСтрока.Номенклатура = Строка.Номенклатура;
                НовСтрока.Количество = Строка.Количество;
                Если НЕ Товары.Количество() = 0 Тогда
                    ВходящиеДанные.Вставить("Товары",Товары);
                    ВыгрузитьПоПравилу(ВходящиеДанные,,,,"ВводОстатков");
                КонецЕсли;
            Иначе
                Флаг = 1;
                //Сообщить(Строка.Организация);

                //Сообщить(Строка.Склад);

                Отказ = ИСТИНА;
            КонецЕсли;
            Сообщить("4");
        КонецЦикла;
        Сообщить("5");
        //Если НЕ Выгрузка.Количество() = 0 Тогда

        //Если НЕ Товары.Количество() = 0 Тогда

        //    ВходящиеДанные.Вставить("Товары",Товары);

        //    ВыгрузитьПоПравилу(ВходящиеДанные,,,,"ВводОстатков");

        //КонецЕсли;

        //Иначе

        //    Сообщить(ВыборкаОрг.Ссылка +" "+ВыборкаСкладов.Ссылка);

        //    Сообщить("Нет данных");

        //    Отказ = ИСТИНА;

        //КонецЕсли;

    КонецЦикла;
КонецЦикла;
   MuxaH
 
2 - 24.08.18 - 06:37
ВходящиеДанные, насколько я помню, третьим параметром должны идти. Первые 2 Источник и Преемник. Ну а в правиле конвертации объектов должна стоять галка Получить из входящих данных. Либо если с галкой не прокатывает, то там в правиле конвертации свойств (которая твоя ТЧ) надо написать КоллекцияОбъектов = ВходящиеДанные.Товары
   azt-yur
 
3 - 24.08.18 - 07:00
в (2) на счет порядка параметра ВходящиеДанные прав.
Но я бы рекомендовал не делать входящими данными, источником может выступать и твоя структура, убери просто во всех ПКС галочку "Получить из входящих данных" и должно сработать (в структуре конечно должны быть все свойства твоего ПКО).
И по самому коду не корректно: не там делаешь выгрузку. ВыгрузитьПоПравилу должно быть после цикла по товарам, а то у тебя получится что выгрузится столько документов сколько у тебя товаров, и в каждом следующем документе на 1 строчку больше чем в предыдущем


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует