Конвертация данных 2. Правила выгрузки данных по произвольному алгоритму
Коллеги, приветствую! Разъясните ситуацию:
Есть ПВД объекта "ИмяДокумента" с галочками произвольный алгоритм, ПКО - "ИмяПКО" (у него включен флаг не запоминать выгруженные объекты, а также очищен источник).
Запрос ПВД:
Все это в "перед обработкой ПВД" вставляется в выборку данных:
В ПКС (источник очищен - приемник "НеобходимыйРеквизит"), который состоит в ПКГС "ТабличнаяЧасть" (источник очищен - приемник "ТабличнаяЧасть") в обработчике "Перед выгрузкой" (пробовал и "При выгрузке") следующий код:
В этой строке табличной части уже соответственно нет реквизита "НеобходимыйРеквизит".
Кто-нибудь может пояснить почему в ПКС приходит не таблица значений со всеми колонками, а табличная часть??? я уже всю голову себе сломал как это победить без "Выгрузить по правилу" (почему-то помнится что раньше получалось).
Есть ПВД объекта "ИмяДокумента" с галочками произвольный алгоритм, ПКО - "ИмяПКО" (у него включен флаг не запоминать выгруженные объекты, а также очищен источник).
Запрос ПВД:
"Выбрать
| ТаблицаДокумента.Ссылка,
| ТаблицаДокумента.ТабличнаяЧасть (Товар, Количество, "ПроизвольныйТекст" КАК НеобходимыйРеквизит) Из Документы.ТаблицаДокумента"
Все это в "перед обработкой ПВД" вставляется в выборку данных:
ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Сообщить("Тип значения вложенной таблицы: " + ТипЗнч(ВыборкаДанных[0].ТабличнаяЧасть)); // ТаблицаЗначений
Сообщить("Тип значения вложенной таблицы: " + ТипЗнч(ВыборкаДанных[0].ТабличнаяЧасть[0].НеобходимыйРеквизит)); // Строка
В ПКС (источник очищен - приемник "НеобходимыйРеквизит"), который состоит в ПКГС "ТабличнаяЧасть" (источник очищен - приемник "ТабличнаяЧасть") в обработчике "Перед выгрузкой" (пробовал и "При выгрузке") следующий код:
Сообщить("Тип значения ОбъектКоллекции: " + ТипЗнч(ОбъектКоллекции)); // Строка табличной части: ТабличнаяЧасть
В этой строке табличной части уже соответственно нет реквизита "НеобходимыйРеквизит".
Кто-нибудь может пояснить почему в ПКС приходит не таблица значений со всеми колонками, а табличная часть??? я уже всю голову себе сломал как это победить без "Выгрузить по правилу" (почему-то помнится что раньше получалось).
По теме из базы знаний
- Конвертация данных 2. Выгрузка виртуальных объектов (документ Установка цен номенклатуры)
- Перенос данных из УПП 1.3 / КА 1.1 в БП 3. Переносятся документы, справочники и начальные остатки
- Перенос данных из ЗУП 2.5 в КА 2 / ERP 2 / ЗУП 3. Переносятся остатки и справочники, а также данные для расчета среднего
- Конвертация данных 2. Использование подключаемых обработок в правилах обмена. Конвертация дерева значений
- Перенос данных из БП 3 в БП 2. Переносятся документы, справочники, а также остатки товаров, взаиморасчетов и денежных средств
Найденные решения
Ох уж эта магия КД и универсальной выгрузки загрузки... я даже с отладкой так и не понял где разница между этим кодом в ПВД:
Не работает:
Работает:
Не работает:
Запрос = Новый Запрос(Запросы.ВыплатаЗПСЛицевымиСчетами.Текст);
Запрос.УстановитьПараметр("Получатель", УзелОбмена); //причем здесь он не ругался ни на что, а результат ... 3 потраченных часа
ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Если ВыборкаДанных.Количество() = 0 Тогда
Отказ = Истина;
КонецЕсли;
Работает:
Запрос = Новый Запрос(Запросы.ВыплатаЗПСЛицевымиСчетами.Текст);
Запрос.УстановитьПараметр("Получатель", ПланыОбмена.ПоОрганизации.НайтиПоКоду("УВ1"));
ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Если ВыборкаДанных.Количество() = 0 Тогда
Отказ = Истина;
КонецЕсли;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ох уж эта магия КД и универсальной выгрузки загрузки... я даже с отладкой так и не понял где разница между этим кодом в ПВД:
Не работает:
Работает:
Не работает:
Запрос = Новый Запрос(Запросы.ВыплатаЗПСЛицевымиСчетами.Текст);
Запрос.УстановитьПараметр("Получатель", УзелОбмена); //причем здесь он не ругался ни на что, а результат ... 3 потраченных часа
ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Если ВыборкаДанных.Количество() = 0 Тогда
Отказ = Истина;
КонецЕсли;
Работает:
Запрос = Новый Запрос(Запросы.ВыплатаЗПСЛицевымиСчетами.Текст);
Запрос.УстановитьПараметр("Получатель", ПланыОбмена.ПоОрганизации.НайтиПоКоду("УВ1"));
ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Если ВыборкаДанных.Количество() = 0 Тогда
Отказ = Истина;
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот