Как самостоятельно изучить «1С:Конвертация данных 2.1» с нуля: подробный гид для разработчика

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

Механизм обмена данными — одна из важнейших компетенций 1С-разработчика. Несмотря на активное развитие технологии EnterpriseData (Конвертация данных 3.0), классическая «Конвертация данных 2.1» (КД 2.1) остается промышленным стандартом для реализации сложных, нестандартных и высокопроизводительных переносов данных между любыми конфигурациями 1С. В этой статье мы подробно разберем, с чего начать обучение, какие учебные материалы использовать, как разбираться в программном коде правил и как отлаживать сложные алгоритмы.

Шаг 1. Литература и методические пособия для старта

Изучение КД 2.1 по обрывкам статей в интернете часто приводит к путанице. Для формирования прочной базы знаний рекомендуется изучить профильную литературу. Рассмотрим основные книги, которые высоко ценятся в профессиональном сообществе:

  1. «Конвертация данных: обмен данными между прикладными решениями» (авторы В. Э. Бояркин, А. И. Филатов). Это официальное издание фирмы «1С». Книга написана академическим языком и может показаться сложной для новичков, но она незаменима как настольный справочник. В ней содержится исчерпывающее описание всех обработчиков событий, порядка их выполнения и доступных параметров. К книге прилагаются учебные базы-сокровища с готовыми примерами.
  2. «Конвертация данных. Методика работы и примеры» (автор Ольга Кузнецова). Легендарный учебник, который хвалят все практикующие специалисты. Хотя книга писалась под версию КД 2.0, вся базовая логика, структура метаданных правил обмена и синтаксис обработчиков событий в КД 2.1 абсолютно идентичны. Автор простым языком на сквозных примерах объясняет сложные концепции переноса данных.
  3. «Конвертация данных 2.1, обмен между базами 1С. 5 глав от простого к сложному» (проект «Верный старт»). Практическое пошаговое руководство, ориентированное на самый быстрый старт с нуля. Показывает процесс создания простейших правил конвертации «шаг за шагом».

Шаг 2. Видеоуроки и курсы

Для тех, кому проще воспринимать информацию визуально, отличным подспорьем станут практические видеокурсы:

Шаг 3. Изучение на реальных примерах (Demo-база и типовые правила)

Не нужно пытаться изобрести велосипед. Самый эффективный способ понять, как работают сложные алгоритмы и запросы в КД 2.1 — это препарировать готовые рабочие решения. Разберем, где их взять:

Шаг 4. Разбор технического вопроса: работа с ПКС и параметрами

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

Значение = Параметры.Магазин;

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

  1. Почему источник не указан? Это означает, что в базе-источнике у выгружаемого объекта (например, документа «ПоступлениеТоваров» или справочника «Склады») нет прямого реквизита, который можно было бы напрямую перенести в реквизит приемника «Магазин». Программа не знает автоматически, откуда взять данные, поэтому перекладывает эту задачу на разработчика.
  2. Что такое предопределенная переменная Значение? В обработчике ПередВыгрузкой для ПКС система предоставляет специальную переменную Значение. То, что мы запишем в эту переменную внутри кода обработчика, и будет отправлено в файл выгрузки в качестве значения для данного реквизита приемника.
  3. Что такое Параметры? Это глобальные параметры обмена, которые мы можем заранее определить в КД 2.1 на специальной вкладке «Параметры». При запуске обмена через обработку «Универсальный обмен данными в формате XML» на вкладке «Параметры обмена» пользователь видит интерактивное поле ввода, где может выбрать конкретное значение (в данном случае — элемент справочника «Магазины» из базы-источника).
  4. Как работает код? Строка Значение = Параметры.Магазин; берет выбранное пользователем значение глобального параметра обмена и принудительно подставляет его в реквизит «Магазин» для каждого выгружаемого объекта. Таким образом, склад источника гибко превращается в нужный нам магазин в приемнике.

Для повышения надежности этот код в обработчике ПередВыгрузкой ПКС рекомендуется усложнить проверкой на заполнение параметра:


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

Шаг 5. Как правильно отлаживать правила обмена в КД 2.1

Главная трудность для начинающего разработчика — это невозможность просто поставить точку останова в конфигураторе КД 2.1, поскольку весь программный код обработчиков выгружается в xml-файл и интерпретируется платформой на лету. Тем не менее в КД 2.1 заложен мощнейший механизм отладки. Разберем его по шагам:

  1. Откройте обработку «Универсальный обмен данными в формате XML» в базе-источнике (или приемнике, в зависимости от того, какой этап вы отлаживаете).
  2. Перейдите на вкладку «Отладка обработчиков».
  3. Поставьте флажок «Режим отладки обработчиков выгрузки» (или загрузки).
  4. Нажмите кнопку «Сформировать модуль отладки». Система автоматически сгенерирует полноценный программный код на языке 1С, содержащий все ваши алгоритмы.
  5. Скопируйте этот код и вставьте его в специальную внешнюю обработку отладки (шаблон ОбработкаДляОтладкиВыгрузки.epf поставляется вместе с КД 2.1).
  6. Откройте эту внешнюю обработку в конфигураторе вашей рабочей базы. Теперь вы можете расставлять полноценные точки останова в любых обработчиках событий, запускать обмен и отслеживать значения переменных, запросов и параметров в режиме реального времени!

Шаг 6. Использование передовых механизмов обмена

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

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

Пример использования функции ВыгрузитьПоПравилу() в обработчике события:


// Создаем структуру исходящих данных для передачи в ПКО
ИсходящиеДанныеДляКонтрагента = Новый Структура;
ИсходящиеДанныеДляКонтрагента.Вставить("Наименование", "Новый Контрагент из алгоритма");
ИсходящиеДанныеДляКонтрагента.Вставить("ИНН", "7700000000");

// Программно вызываем выгрузку по конкретному правилу конвертации (ПКО)
ВыгрузитьПоПравилу(,, ИсходящиеДанныеДляКонтрагента,, "Контрагенты");

Изучая «Конвертацию данных 2.1», помните: не нужно пытаться зазубривать обработчики. Достаточно понять общую архитектуру системы, научиться пользоваться встроенной справкой, читать типовые правила обмена от фирмы «1С» и освоить механизм отладки обработчиков. Со временем вы сможете без труда решать самые сложные интеграционные задачи в среде 1С!

← На главную