Как в «Конвертации данных 2.0» выгрузить один конкретный объект справочника?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При настройке обмена данными в 1С часто возникает необходимость протестировать выгрузку и загрузку одного конкретного элемента, например, одного контрагента, вместо того чтобы гонять через обмен весь справочник. Рассмотрим, как это реализовать, когда стандартная обработка выгрузки не предусматривает явного отбора по одному объекту.

Способ 1: Использование обработчика «ПередВыгрузкой» в правилах

Это самый надежный и часто используемый метод. Мы можем принудительно указать правилам, какой именно объект мы хотим получить в XML-файле. Для этого нам потребуется вмешаться в работу Правил Выгрузки Данных (ПВД).

  1. Откройте ваши правила в конфигурации Конвертация данных 2.0.
  2. Перейдите в Правила выгрузки данных и выберите нужный справочник (например, Контрагенты).
  3. В настройках этого ПВД перейдите на вкладку Обработчики.
  4. Найдите обработчик ПередВыгрузкой и вставьте туда условие, ограничивающее выборку.

Пример кода, который можно использовать:


Если Источник.Код <> \"000000123\" Тогда
    Отказ = Истина;
КонецЕсли;

Важное примечание: здесь Источник — это объект, который в данный момент пытается выгрузить обработка. Устанавливая Отказ = Истина, мы сообщаем системе, что этот объект выгружать не нужно. Таким образом, обработка пропустит всё, кроме объекта с кодом 000000123.

Способ 2: Использование параметров для гибкого управления

Если вы часто тестируете разные объекты, постоянно менять код в правилах неудобно. В таком случае мы можем использовать механизм Параметров.

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

Если Параметры.Свойство(\"ВыгружатьТолькоОдин\") И ЗначениеЗаполнено(Параметры.ВыгружатьТолькоОдин) Тогда
    Если Источник <> Параметры.ВыгружатьТолькоОдин Тогда
        Отказ = Истина;
    КонецЕсли;
КонецЕсли;

Теперь при запуске обработки Универсальный обмен данными в формате XML вам нужно будет на вкладке Параметры просто выбрать нужный объект, и выгрузка отработает только для него.

Способ 3: Принудительная выгрузка через ВыгрузитьПоПравилу

Иногда нужно выгрузить объект «вопреки» логике основного обмена. В этом случае мы используем метод ВыгрузитьПоПравилу. Этот метод можно вызвать в любом обработчике (например, ПослеЗагрузки другого объекта или в ПередВыгрузкой).

Синтаксис метода выглядит следующим образом:

ВыгрузитьПоПравилу(Источник, , , , \"ИмяПравилаКонвертации\");

Этот подход позволяет инициировать выгрузку объекта программно, когда система сама находит его в базе и «проталкивает» в файл обмена, минуя штатные фильтры отбора.

На что обратить внимание при отладке

Часто разработчики сталкиваются с тем, что при «одиночной» выгрузке правила ведут себя непредсказуемо (например, не переносятся подчиненные справочники или свойства). Это происходит потому, что правила могут зависеть от контекста (глобальных переменных или параметров, которые обычно заполняются при полном обмене).

Чтобы избежать ошибок, рекомендуем:

Используя эти методы, вы сможете быстро и точно протестировать обмен любым объектом 1С, сэкономив время на ожидании полной выгрузки больших справочников.

← На главную