Как в правилах конвертации данных присвоить реквизиту значение из базы-приемника?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При настройке обмена данными между конфигурациями, например, при переносе документов из Комплексная автоматизация 2.4 в Бухгалтерия предприятия 3.0 с помощью Конвертация данных 2.1, часто возникает необходимость задать жесткое значение для определенного реквизита. Рассмотрим, как правильно присвоить значение реквизиту (например, валюте документа) так, чтобы объект находился именно в базе-приемнике.

Решение через обработчик «После загрузки»

Когда документ уже создан в базе-приемнике, но требует дозаполнения данными, которые не передаются из источника напрямую, оптимально использовать событие После загрузки. В этом обработчике мы можем обратиться к менеджерам справочников базы-приемника.

Для присвоения валюты с кодом «643» выполним следующие шаги:

  1. Откройте правила конвертации в Конвертация данных 2.1.
  2. Перейдите в Правила конвертации объектов (ПКО) для нужного документа, например, Приходный кассовый ордер.
  3. Найдите поле После загрузки и впишите туда код, который обеспечит поиск элемента непосредственно в текущей базе:

// Находим ссылку на валюту в базе-приемнике по коду
ВалютаСсылка = Справочники.Валюты.НайтиПоКоду("643");

// Присваиваем найденное значение реквизиту объекта
Объект.ВалютаДокумента = ВалютаСсылка;

Важное замечание: Мы рекомендуем всегда добавлять проверку на заполненность найденного значения, чтобы избежать ошибок при записи документа в случае, если валюта с таким кодом отсутствует в системе.


ВалютаСсылка = Справочники.Валюты.НайтиПоКоду("643");
Если ЗначениеЗаполнено(ВалютаСсылка) Тогда
    Объект.ВалютаДокумента = ВалютаСсылка;
КонецЕсли;

Решение через обработчик «Перед выгрузкой» в ПКС

Если вы хотите, чтобы значение подставлялось на этапе подготовки данных, можно использовать правило конвертации свойства (ПКС). В этом случае в поле Перед выгрузкой для конкретного свойства нужно указать выражение, которое выполнится на стороне приемника.

В настройках ПКС для свойства ВалютаДокумента укажите следующее выражение:

Выражение = "Справочники.Валюты.НайтиПоКоду(""643"")";

Этот метод удобен тем, что позволяет переопределить логику заполнения конкретного поля, не затрагивая общий процесс загрузки всего объекта.

На что обратить внимание при поиске объектов

При использовании метода НайтиПоКоду важно учитывать несколько технических нюансов, чтобы обмен проходил корректно:

Использование предложенных методов позволяет гибко настраивать правила обмена, не прибегая к сложной модификации конфигураций, а решая задачу средствами самой Конвертации данных. Выбирайте вариант, который кажется вам наиболее прозрачным для поддержки: использование После загрузки дает больше контроля над уже сформированным объектом, а Перед выгрузкой позволяет задать логику заполнения на уровне самого свойства.

← На главную