Как изменить стандартные правила обмена в 1С:Конвертация данных и почему не выбирается объект-источник в ПКО?

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

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

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

---

Почему не работает кнопка «Выбрать» для источника/приемника в ПКО?

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

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

Разберем по шагам, как исправить эту ситуацию:

  1. Выгрузка структуры метаданных из рабочих баз. Нам необходимо получить XML-описание структуры метаданных как для базы-источника, так и для базы-приемника. Для этого используется внешняя обработка MD83Exp.epf (для платформ 1С v8.3). Найти ее можно в каталоге установки шаблонов конфигурации «Конвертация данных» (обычно это папка формата C:\Users\ИмяПользователя\AppData\Roaming\1C\1cv8\tmplts\1c\Conversion\...). Запустите вашу базу-источник (например, «Розница») в режиме «1С:Предприятие», откройте через меню «Файл — Открыть» обработку MD83Exp.epf, укажите путь для сохранения файла метаданных (например, structure_retail.xml) и нажмите кнопку «Выгрузить». Повторите процедуру для базы-приемника («Бухгалтерия»), сохранив структуру в файл structure_accounting.xml.
  2. Загрузка описания структуры конфигураций в КД. Откройте базу «Конвертация данных». В меню найдите и запустите обработку «Загрузка описания структуры конфигурации» (ее можно найти на вкладке «Перенос данных» или через функции для технического специалиста). В открывшемся окне выберите сначала файл метаданных источника, укажите понятное имя конфигурации (например, «Розница 2.3») и выполните загрузку. Затем сделайте то же самое для файла метаданных приемника («Бухгалтерия предприятия 3.0»).
  3. Связывание правил с загруженными конфигурациями. Перейдите в справочник «Конвертации» и откройте вашу настройку правил обмена. В карточке настройки найдите поля «Конфигурация-источник» и «Конфигурация-приемник». Выберите в них только что загруженные элементы метаданных. Сохраните изменения.

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

---

Структура ZIP-архива правил обмена для БСП

Современные типовые конфигурации 1С используют Библиотеку Стандартных Подсистем (БСП) для настройки синхронизации данных. Если обмен настроен по старой технологии КД 2.1 (через планы обмена), то система принимает правила только в виде специального ZIP-архива. Попытка загрузить одиночный XML-файл правил в интерфейсе БСП приведет к ошибке.

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

Важно: Если вы упакуете в ZIP-архив только один или два файла, либо допустите опечатку в названиях файлов (например, назовете файл на русском языке), БСП при попытке импорта выдаст ошибку: «Неверный формат комплекта правил. Ожидаемое количество файлов в архиве — три».

Выгрузить готовый комплект правил прямо в формате ZIP-архива можно непосредственно из конфигурации «Конвертация данных 2.1» при выгрузке правил обмена, установив соответствующий флаг в обработке выгрузки.

---

Как загрузить измененные правила обратно в 1С

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

Разберем пошагово процесс загрузки:

  1. Перейдите в раздел Администрирование — Синхронизация данных (в некоторых конфигурациях этот пункт находится в разделе «Настройки программы»).
  2. Откройте список «Настройки синхронизации данных».
  3. Выберите нужный обмен из списка, нажмите кнопку «Еще» (или перейдите в параметры настройки) и выберите пункт «Загрузить правила».
  4. В открывшейся форме укажите переключатель «Из файла на компьютере» и выберите подготовленный вами ZIP-архив.
  5. Нажмите кнопку «Загрузить».

Система импортирует файлы и сохранит их в регистр сведений ПравилаДляОбменаДанных. С этого момента БСП при выполнении синхронизации будет использовать ваши кастомные правила вместо тех, которые по умолчанию «зашиты» разработчиками в макеты конфигурации.

---

Критически важный нюанс: технологии КД 2.1 против КД 3.0 (EnterpriseData)

Перед тем как приступать к доработке правил через КД 2.1, мы обязательно должны проанализировать, по какой технологии работает ваш обмен. Участники форума совершенно справедливо замечают, что в современных версиях конфигураций (например, «1С:Бухгалтерия предприятия 3.0» и «1С:Розница 3.0») стандартный обмен часто строится на основе универсального формата обмена (EnterpriseData).

Это принципиально другая технология, управляемая решением «1С:Конвертация данных 3.0»:

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

Вариант 1. Использование расширения конфигурации (Рекомендуемый метод)

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


&После("ПКО_Документ_ПриходныйКассовыйОрдер_ПриОтправке")
Процедура Расш_ПКО_Документ_ПриходныйКассовыйОрдер_ПриОтправке(ДанныеДанные, ДанныеXDTO, КомпонентыОбмена)
    // Наша кастомная логика заполнения свойств перед отправкой
    ДанныеXDTO.Вставить("Комментарий", "Выгружено из Розницы: " + ДанныеДанные.Комментарий);
КонецПроцедуры

Вариант 2. Использование конфигурации «Конвертация данных 3.0»

Вы можете загрузить текст программного модуля менеджера обмена в специализированную базу КД 3.0. В ней настройка связей объектов происходит в удобном визуальном интерфейсе (похожем на КД 2.1). Однако на выходе КД 3.0 формирует не XML-файл правил обмена, а готовый текст модуля 1С. Этот сгенерированный код вам необходимо скопировать и вставить в модуль менеджера обмена вашей конфигурации или расширения.

Таким образом, перед началом любых работ по изменению обмена всегда проверяйте настройки синхронизации в интерфейсе 1С. Если в настройках упоминается «Синхронизация через универсальный формат (EnterpriseData)», используйте инструменты КД 3.0 и расширения конфигурации. Если же используется классический обмен по правилам конвертации — смело выгружайте метаданные с помощью MD83Exp.epf, редактируйте правила в КД 2.1 и упаковывайте трехфайловый архив ZIP для БСП.

← На главную