КД2. Выгрузка контактной информации из регистра сведений в табличную часть.

11 Dec
Published by Nicholas

 

Довольно часто встречается задача выгрузить при помощи «Конвертация данных, редакция 2.1» контактной информации контрагента из «Управление торговлей", редакция 10.3» в «Бухгалтерия предприятия, редакция 3.0». Сложность заключается в том, что в УТ контактная информация хранится в регистре сведений, а в БП - в табличной части справочника «Контрагенты».

Предлагаю мое, достаточно простое, решение данной задачи.

1. В правило конвертации объектов (ПКО) «Контрагенты» добавляем конвертацию свойств (ПКС) табличной части «КонтактнаяИнформация», причем не указываем источник и ставим галку «получать из входящих данных». Добавляем все, необходимые реквизиты табличной части.

Контрагенты - Контактная иняормация

 

2. Открываем ПКО «Контрагенты» и добавляем ниже следующий код в обработчик «Перед выгрузкой».

Выгрузка контактной информации

 

//Выгружаем контактную информацию контрагента

ВходящиеДанные = Новый Структура("КонтактнаяИнформация");
ВходящиеДанные.КонтактнаяИнформация = Новый ТаблицаЗначений;
ВходящиеДанные.КонтактнаяИнформация.Колонки.Добавить("Представление");
ВходящиеДанные.КонтактнаяИнформация.Колонки.Добавить("Вид");
ВходящиеДанные.КонтактнаяИнформация.Колонки.Добавить("Тип");

Запрос = Новый Запрос;
Запрос.Текст =
   
"ВЫБРАТЬ
    |    КонтактнаяИнформация.Представление,
    |    КонтактнаяИнформация.Вид,
    |    КонтактнаяИнформация.Тип
    |ИЗ
    |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    |    КонтактнаяИнформация.Объект = &ТекущийКонтрагент"
;

Запрос.УстановитьПараметр("ТекущийКонтрагент", Источник);
Выборка = Запрос.Выполнить().Выбрать();

Пока
Выборка.Следующий() Цикл
   
НовСтрока = ВходящиеДанные.КонтактнаяИнформация.Добавить();
   
ЗаполнитьЗначенияСвойств(НовСтрока, Выборка);
КонецЦикла;

 

Суть в том, что мы программно создаем табличную часть «Контактная информация» и подставляем ее для выгружаемого объекта в качестве входящих данных.

Следует обратить внимание, что инициализация параметра «ВходящиеДанные», и передача в него таблицы значений со всеми необходимыми колонками, обязательна для каждого объекта. В противном случае, будет возникать ошибка типа «Ошибка получения свойства подчиненного объекта из входящих данных».

 

Комментарии

Аватар пользователя user1

Большое спасибо, затупил именно на этом вопросе, нагуглил ваш блог и всё получилось!

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Вы человек или автоматическая спам-рассылка?
Target Image