Как выполнить групповое заполнение обработчиков в Конвертации данных 2.1

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

При работе в конфигурации «Конвертация данных 2.1» (КД 2.1) разработчики часто сталкиваются с необходимостью внести одинаковые изменения в десятки или даже сотни правил конвертации объектов (ПКО). Например, если нужно добавить проверку или вызов алгоритма в обработчик Перед выгрузкой для всех справочников, связанных с присоединенными файлами. Делать это вручную — трудозатратно и чревато ошибками. Рассмотрим подробнее, как автоматизировать этот процесс с помощью штатных и альтернативных инструментов.

Метод 1. Использование штатной «Групповой обработки объектов»

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

  1. Откроем меню Сервис и выберем пункт Групповая обработка правил и данных.
  2. В появившемся окне необходимо выбрать тип объектов, которые мы будем редактировать. Чаще всего это Правила конвертации объектов.
  3. Важный нюанс: По умолчанию поля с программным кодом (такие как Перед выгрузкой, При загрузке и др.) скрыты, так как они являются служебными строковыми реквизитами неограниченной длины. Чтобы они стали доступны для выбора, перейдем в настройки обработки и установим флажок «Показывать служебные реквизиты» (или «Все реквизиты»).
  4. После настройки видимости в списке доступных действий появится возможность выбрать конкретный обработчик.
  5. Выполним отбор нужных правил (например, по родителю или по маске имени) и нажмем кнопку Выполнить.

Внимание: Нужно помнить, что штатная обработка выполняет полную замену текста в реквизите. Если в обработчике уже был написан какой-то код, он будет безвозвратно удален и заменен на новый. Поэтому перед массовыми изменениями всегда делайте резервную копию информационной базы КД или выгружайте правила в XML.

Метод 2. Оптимизация через использование «Алгоритмов»

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

Рассмотрим, как это реализовать правильно:

  1. Перейдем в ветку дерева конфигурации КД Алгоритмы.
  2. Создадим новый алгоритм, например, с именем ОбработкаПрисоединенныхФайлов.
  3. Напишем в нем весь необходимый код.
  4. Теперь с помощью групповой обработки (описанной в Методе 1) во все нужные ПКО вставим всего одну строку вызова:

Выполнить(Алгоритмы.ОбработкаПрисоединенныхФайлов);

Преимущество этого метода очевидно: при необходимости изменить логику работы нам достаточно отредактировать один объект (алгоритм), и изменения мгновенно вступят в силу для всех правил, где он вызывается.

Метод 3. Массовое редактирование через XML-файл правил

Если штатная обработка кажется неудобной или требуется сложная замена (например, добавить строку в начало существующего кода, не затирая его), проанализируем «хакерский», но эффективный способ редактирования через текстовый редактор.

Алгоритм действий следующий:

  1. Выгрузим правила конвертации в файл (обычно это Rules.xml).
  2. Откроем этот файл в продвинутом текстовом редакторе, поддерживающем работу с регулярными выражениями (например, Notepad++ или VS Code).
  3. Найдем теги, отвечающие за нужный обработчик. Например, для ПКО обработчик Перед выгрузкой хранится внутри тегов <ПередВыгрузкой>...</ПередВыгрузкой>.
  4. Используем функцию массовой замены (Ctrl+H). С помощью регулярных выражений можно найти пустые теги <ПередВыгрузкой/> и заменить их на теги с вызовом нашего алгоритма.
  5. Сохраним файл и загрузим его обратно в базу «Конвертации данных» через стандартную загрузку правил.

Этот способ позволяет избежать дублей и дает полный контроль над структурой файла, но требует внимательности при работе с XML-разметкой.

Выясним причину появления дублей при отборе

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

Практические советы при групповой работе

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

Посмотрим на пример универсального кода внутри алгоритма:


// Проверяем наличие контекста ПКО
Если ТипЗнч(Источник) = Тип("СправочникСсылка.ПрисоединенныеФайлы") Тогда
    // Ваша логика
КонецЕсли;

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

← На главную