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