Разработка и Конфигурация · 13 мин
Как создать правило обмена в 1С
Как создать правило обмена в 1С через Конвертацию данных 2.1 и 3.0: настройка ПКО, ПКС, выгрузка и загрузка данных, проверка результата и типичные ошибки.
Правило обмена в 1С — это файл с описанием того, как данные одной конфигурации преобразуются в данные другой: какие объекты выгружать, как сопоставлять поля и реквизиты, что делать при отсутствии соответствия. Чаще всего правила создают в конфигурации «Конвертация данных» (редакции 2.1 или 3.0), а используют — в типовых обменах, обработках «Универсальный обмен данными в формате XML» или механизмах EnterpriseData.
Задача регулярно возникает при настройке обмена между неидентичными конфигурациями: например, между «Управлением торговлей» и «Бухгалтерией предприятия» с доработками, между старой самописной базой и новой типовой, при миграции данных или интеграции с внешними системами. Без корректных правил данные либо не переносятся, либо переносятся с ошибками: дублируются контрагенты, теряются реквизиты, ломаются ссылки.
Ниже — практический порядок создания правила обмена: от подготовки конфигураций до проверки результата, с разбором типичных ошибок и ограничений каждого подхода.
Когда нужно создавать правила обмена, а когда достаточно типовых
Прежде чем открывать «Конвертацию данных», проверьте, не решит ли задачу штатный механизм. В типовых конфигурациях на библиотеке стандартных подсистем (БСП) есть настройка синхронизации данных через «Администрирование → Синхронизация данных». Там правила уже встроены и поддерживаются поставщиком конфигурации: при обновлении релиза они обновляются автоматически.
Собственные правила нужны в нескольких ситуациях: обмен между нестандартной парой конфигураций, перенос данных из самописной или сильно доработанной базы, одноразовая миграция при переходе на новую систему, обмен документами или справочниками, которых нет в типовом составе синхронизации. Также свои правила пишут, когда типовой обмен переносит лишнее или, наоборот, не переносит нужные реквизиты.
Как выбрать подход
Подготовка: что нужно перед созданием правил
Для работы потребуется конфигурация «Конвертация данных» (распространяется на портале 1С в составе поставки), доступ к обеим базам — источнику и приёмнику — и полная копия рабочих баз для экспериментов. Никогда не отлаживайте правила на продуктивной базе: ошибочное правило может создать тысячи дублей справочников или перезаписать документы, и откат потребует восстановления из резервной копии.
Первый шаг в самой «Конвертации данных» — загрузка структур метаданных обеих конфигураций. Для этого в базах источника и приёмника запускается специальная обработка выгрузки описания структуры метаданных (она поставляется вместе с конвертацией), результат сохраняется в XML-файлы. Эти файлы загружаются в справочник конфигураций конвертации — и дальше вся работа идёт уже с этими описаниями, без прямого подключения к базам.
Создание правил конвертации объектов (ПКО)
Основа любого правила обмена — правила конвертации объектов. ПКО отвечает на вопрос: объект какого типа из источника в объект какого типа приёмника превращается. Например, справочник «Контрагенты» источника конвертируется в справочник «Контрагенты» приёмника, документ «Реализация товаров и услуг» — в документ «Реализация (акты, накладные)».
При создании ПКО указываются объект источника, объект приёмника и способ поиска объекта при загрузке. Поиск — критически важная настройка: по умолчанию объекты ищутся по внутреннему уникальному идентификатору, но при обмене между независимыми базами идентификаторы не совпадают, поэтому настраивают поиск по полям: для контрагентов — по ИНН и КПП, для номенклатуры — по коду или артикулу, для документов — по номеру, дате и организации.
Для каждого ПКО дополнительно настраиваются обработчики событий при необходимости: «Перед выгрузкой», «При загрузке», «После загрузки». В них на встроенном языке описывается нестандартная логика — например, отказ от выгрузки помеченных на удаление объектов или заполнение реквизита приёмника по алгоритму.
- 1Выгрузите структуры метаданных источника и приёмника обработкой из поставки конвертации
- 2Загрузите обе структуры в справочник конфигураций Конвертации данных
- 3Создайте новую конвертацию: укажите конфигурацию источника и приёмника
- 4Создайте правила конвертации объектов для нужных справочников и документов
- 5Настройте правила конвертации свойств (ПКС) внутри каждого ПКО
- 6Настройте правила поиска объектов при загрузке
- 7Сохраните правила в XML-файл через «Сохранить правила обмена»
- 8Проверьте выгрузку и загрузку на копиях баз через универсальную обработку обмена
Настройка правил конвертации свойств (ПКС)
Внутри каждого ПКО настраиваются правила конвертации свойств — соответствия реквизитов источника и приёмника. Простейший случай: реквизит «Наименование» источника переносится в реквизит «Наименование» приёмника. Сложнее, когда имена или типы различаются: реквизит «ОКПО» источника нужно сопоставить вручную, а реквизит ссылочного типа (например, «Организация») потребует указания ПКО, через которое конвертируется связанный объект.
Для табличных частей документов создаются правила конвертации групп свойств: табличная часть «Товары» источника сопоставляется табличной части приёмника, а внутри неё — ПКС для каждой колонки. Если колонки в приёмнике нет, значение можно вычислить в обработчике или не переносить вовсе.
Отдельный инструмент — правила конвертации значений (ПКЗ) для перечислений и предопределённых элементов. Например, значение перечисления «ВидДоговора.СПокупателем» источника сопоставляется соответствующему значению приёмника. Если пропустить ПКЗ, перечисления при обмене между разными конфигурациями не конвертируются корректно.
Начинайте настройку с одного простого справочника — например, «Валюты» или «Единицы измерения» — и доведите цикл «выгрузка → загрузка → проверка» до конца. Затем добавляйте объекты по одному. Так локализовать ошибку в правилах гораздо проще, чем при отладке полного обмена из двух десятков объектов сразу.
Выгрузка и загрузка данных по созданным правилам
Готовые правила сохраняются из «Конвертации данных» в XML-файл. Далее в базе источника открывается обработка «Универсальный обмен данными в формате XML»: на закладке «Выгружаемые данные» выбирается файл правил, отмечаются объекты для выгрузки, при необходимости задаются отборы по периоду и организации. Результат — файл данных XML.
В базе приёмника та же обработка открывается на закладке «Загрузка данных»: указывается файл данных, запускается загрузка. Перед реальной загрузкой полезно включить режим отладки и ограничить объём — например, выгрузить сначала только справочники без документов. После загрузки обязательна проверка: количество загруженных объектов, отсутствие дублей, корректность ссылок в документах.
Для обменов через EnterpriseData (Конвертация данных 3.0) механика другая: правила загружаются в саму конфигурацию через механизм регистрации правил конвертации, а обмен идёт через планы обмена и сообщения в формате XDTO. Этот вариант сложнее в освоении, но лучше подходит для регулярной синхронизации с типовыми конфигурациями.
Как проверить результат обмена
Число выгруженных и загруженных объектов совпадает, в протоколе нет ошибок
Часть объектов не загрузилась, в протоколе ошибки поиска или конвертации
Нет дублей, поиск срабатывает по заданным полям
Появились дубли контрагентов или номенклатуры — неверно настроен поиск
Суммы, даты и табличные части совпадают с источником, ссылки заполнены
Пустые ссылки на контрагентов или номенклатуру, расхождения в суммах
Документы проводятся без ошибок после загрузки
Ошибки проведения из-за незаполненных обязательных реквизитов приёмника
Типичные ошибки при создании правил обмена
Самая частая проблема — дубли справочников. Причина почти всегда в правилах поиска: либо поиск не настроен вовсе и объект ищется только по идентификатору (который в приёмнике отсутствует), либо выбраны неподходящие поля поиска — например, «Наименование», которое в двух базах заполнено по-разному. Для контрагентов надёжнее связка ИНН + КПП, для физических лиц — комбинация ФИО и даты рождения с оговорками.
Вторая группа ошибок — потеря данных из-за ненастроенных ПКС. Если реквизит есть в источнике, но для него не создано правило конвертации свойства, значение молча не переносится. После загрузки обязательно сверяйте несколько объектов вручную по всем значимым реквизитам, а не только по наименованию и сумме.
Третья типичная ситуация — ошибки при загрузке документов из-за обязательных реквизитов приёмника, которых нет в источнике. Например, в приёмнике обязателен реквизит «Подразделение», а в источнике его нет. Решение — обработчик «После загрузки» с заполнением значения по умолчанию или алгоритм в ПКС.
Ограничения и альтернативные способы обмена
Конвертация данных — не единственный способ организовать обмен. Для простых задач переноса табличных данных (прайсов, списков номенклатуры) достаточно обработок загрузки из табличного документа или CSV. Для интеграции с внешними системами часто удобнее HTTP-сервисы, веб-сервисы или обмен через REST API, где правила описываются кодом, а не в конвертации.
У самих правил обмена есть ограничения. КД 2.1 ориентирована на универсальный XML-формат и плохо подходит для высокочастотной синхронизации больших объёмов. КД 3.0 требует конфигураций на современных версиях БСП и знания формата EnterpriseData. Производительность универсальной обработки ограничена: при переносе миллионов записей выгрузку разбивают на части по объектам или периодам.
Ещё одна альтернатива — прямое программирование обмена на встроенном языке через COM-соединение или файлы собственного формата. Это оправдано для узких специфических задач, но такой код сложнее сопровождать, чем правила конвертации, которые можно корректировать без изменения конфигурации.
Сравнение способов обмена
Подходит для поддерживаемых пар типовых конфигураций; не требует разработки, но не покрывает доработки и нетиповые объекты
Гибкие правила для любых конфигураций через универсальный XML; требует ручной настройки и не привязана к планам обмена
Расширение типовых правил EnterpriseData для современных конфигураций; сложнее освоение, работает только с форматом XDTO
Прямая интеграция с внешними системами в реальном времени; требует разработки и сопровождения кода
Часто задаваемые вопросы
Можно ли создать правило обмена без конфигурации «Конвертация данных»?
Для типовых конфигураций — да: встроенная настройка синхронизации данных работает без конвертации, правила уже встроены в конфигурацию. Собственные правила без конвертации фактически означают написание обмена кодом, что оправдано только для простых или очень специфических задач.
Чем отличается Конвертация данных 2.1 от 3.0?
Редакция 2.1 строит правила для универсального XML-обмена и работает практически с любыми конфигурациями, включая старые. Редакция 3.0 предназначена для расширения типовых правил в формате EnterpriseData (XDTO) и применяется с современными конфигурациями на базе БСП, где обмен идёт через планы обмена.
Почему после загрузки появились дубли контрагентов?
Почти всегда причина в настройке поиска объектов в ПКО. Если поиск идёт только по уникальному идентификатору, а базы создавались независимо, идентификаторы не совпадают и создаются новые элементы. Настройте поиск по реквизитам: для организаций и контрагентов — ИНН и КПП, для номенклатуры — код или артикул.
Как перенести только часть данных, а не всю базу?
В обработке «Универсальный обмен данными в формате XML» на закладке выгрузки отмечаются только нужные правила выгрузки данных, а для них задаются отборы: по периоду, организации, конкретным элементам. Дополнительно отборы можно задавать в обработчиках «Перед выгрузкой» правил конвертации.
Что делать, если в приёмнике есть обязательный реквизит, которого нет в источнике?
Используйте обработчик «После загрузки» в ПКО или алгоритм в ПКС, чтобы заполнить реквизит значением по умолчанию или вычислить его из других данных. Если реквизит останется пустым, документы в приёмнике не будут проводиться, а запись справочников может завершаться ошибкой.
Безопасно ли менять правила обмена в работающей синхронизации?
Изменённые правила вступают в силу для новых сеансов обмена, но сами по себе не исправляют уже перенесённые данные. Перед заменой правил сделайте резервную копию обеих баз и проверьте новую версию на копиях: изменение правил поиска может привести к тому, что ранее сопоставленные объекты начнут дублироваться.
Что важно запомнить
Правило обмена создаётся в «Конвертации данных»: сначала загружаются структуры метаданных, затем настраиваются ПКО, ПКС и правила поиска, после чего правила сохраняются в XML и применяются через обработку обмена. Ключ к отсутствию дублей — корректный поиск объектов, ключ к полноте данных — настроенные правила конвертации свойств. Всегда отлаживайте правила на копиях баз и проверяйте результат по протоколу загрузки.