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