Синхронизация данных между типовыми конфигурациями «1С:Предприятие» (например, между «1С:Розница» и «1С:Бухгалтерия предприятия») чаще всего базируется на стандартных правилах обмена. Однако в реальной практике стандартной логики переноса данных часто не хватает. Возникает необходимость кастомизировать правила «под себя». На этом пути начинающие разработчики сталкиваются с рядом технических сложностей: от непонимания структуры архивов обмена до банальной невозможности выбрать объект-источник в правилах конвертации объектов (ПКО).
В этой статье мы подробно разберем, как правильно редактировать стандартные правила обмена в программе «1С:Конвертация данных 2.1» (КД 2.1), как корректно подготовить и вернуть измененный архив правил обратно в информационную базу через БСП (Библиотеку Стандартных Подсистем), а также решим проблему неработающей кнопки «Выбрать» при настройке ПКО.
---
Рассмотрим очень частую проблему, с которой сталкиваются разработчики при первом знакомстве с «1С:Конвертация данных 2.1». Вы успешно загрузили стандартный файл XML с правилами обмена в КД, открываете нужное ПКО (Правило конвертации объектов), хотите изменить или добавить документ-источник, нажимаете кнопку «Выбрать» (три точки), но ничего не происходит. Окно выбора просто не открывается, и визуально кажется, что программа зависла или кнопка сломалась.
Выясним причину этого поведения. Программа «1С:Конвертация данных» является самостоятельной базой. Когда вы импортируете в нее только файл правил обмена (например, ExchangeRules.xml), система загружает лишь сами алгоритмы сопоставления: сопоставление полей, обработчики событий (код на встроенном языке), параметры обмена. При этом описание метаданных самих конфигураций остается пустым. КД просто «не знает», какие справочники, документы и реквизиты физически существуют в ваших базах «Розница» или «Бухгалтерия». Без загруженной структуры метаданных диалоговому окну выбора нечего вам показать, поэтому кнопка не реагирует на нажатие.
Разберем по шагам, как исправить эту ситуацию:
MD83Exp.epf (для платформ 1С v8.3). Найти ее можно в каталоге установки шаблонов конфигурации «Конвертация данных» (обычно это папка формата C:\Users\ИмяПользователя\AppData\Roaming\1C\1cv8\tmplts\1c\Conversion\...).
Запустите вашу базу-источник (например, «Розница») в режиме «1С:Предприятие», откройте через меню «Файл — Открыть» обработку MD83Exp.epf, укажите путь для сохранения файла метаданных (например, structure_retail.xml) и нажмите кнопку «Выгрузить». Повторите процедуру для базы-приемника («Бухгалтерия»), сохранив структуру в файл structure_accounting.xml.После выполнения этих шагов связь между правилами и реальными метаданными баз восстановится. Вы сможете зайти в любое ПКО или ПКС (Правило конвертации свойств) и без проблем выбирать необходимые объекты и реквизиты через стандартную кнопку выбора.
---
Современные типовые конфигурации 1С используют Библиотеку Стандартных Подсистем (БСП) для настройки синхронизации данных. Если обмен настроен по старой технологии КД 2.1 (через планы обмена), то система принимает правила только в виде специального ZIP-архива. Попытка загрузить одиночный XML-файл правил в интерфейсе БСП приведет к ошибке.
Проанализируем структуру этого архива. Для корректной загрузки в БСП архив должен содержать строго три файла с фиксированными именами (обратите внимание: имена файлов чувствительны к регистру символов, пишите их латиницей ровно так, как указано ниже):
ExchangeRules.xml — правила конвертации для текущей информационной базы (базы-источника). Они определяют, как данные будут преобразовываться при выгрузке.CorrespondentExchangeRules.xml — правила конвертации для базы-корреспондента (базы-приемника). Они управляют поведением системы при загрузке данных на стороне другой программы.RegistrationRules.xml — правила регистрации объектов. Этот файл определяет, при каких условиях изменения в справочниках или документах должны регистрироваться на узлах плана обмена для последующей отправки. Без этого файла БСП не сможет автоматически регистрировать измененные объекты к обмену.Важно: Если вы упакуете в ZIP-архив только один или два файла, либо допустите опечатку в названиях файлов (например, назовете файл на русском языке), БСП при попытке импорта выдаст ошибку: «Неверный формат комплекта правил. Ожидаемое количество файлов в архиве — три».
Выгрузить готовый комплект правил прямо в формате ZIP-архива можно непосредственно из конфигурации «Конвертация данных 2.1» при выгрузке правил обмена, установив соответствующий флаг в обработке выгрузки.
---
После того как вы изменили правила в КД 2.1 и сформировали корректный ZIP-архив, его необходимо применить в вашей рабочей информационной базе. Для этого не нужно изменять саму конфигурацию в конфигураторе — все действия выполняются в режиме «1С:Предприятие» пользователем с правами администратора.
Разберем пошагово процесс загрузки:
Система импортирует файлы и сохранит их в регистр сведений ПравилаДляОбменаДанных. С этого момента БСП при выполнении синхронизации будет использовать ваши кастомные правила вместо тех, которые по умолчанию «зашиты» разработчиками в макеты конфигурации.
---
Перед тем как приступать к доработке правил через КД 2.1, мы обязательно должны проанализировать, по какой технологии работает ваш обмен. Участники форума совершенно справедливо замечают, что в современных версиях конфигураций (например, «1С:Бухгалтерия предприятия 3.0» и «1С:Розница 3.0») стандартный обмен часто строится на основе универсального формата обмена (EnterpriseData).
Это принципиально другая технология, управляемая решением «1С:Конвертация данных 3.0»:
МенеджерОбменаЧерезУниверсальныйФормат (или аналогичный с указанием версии формата, например, МенеджерОбменаЧерезУниверсальныйФормат13).Если вы обнаружили, что ваш обмен работает через формат EnterpriseData, то дорабатывать его стандартными средствами КД 2.1 через XML-файлы нельзя. В этом случае у вас есть два основных пути интеграции изменений:
Чтобы не снимать конфигурацию с поддержки и сохранить возможность простых типовых обновлений, все изменения логики обмена вносят через расширение. Для этого в расширение добавляется общий модуль менеджера обмена, и с помощью аннотации &Вместо или &После переопределяются стандартные процедуры обработки данных. Например, обработчики для ПКО документов:
&После("ПКО_Документ_ПриходныйКассовыйОрдер_ПриОтправке")
Процедура Расш_ПКО_Документ_ПриходныйКассовыйОрдер_ПриОтправке(ДанныеДанные, ДанныеXDTO, КомпонентыОбмена)
// Наша кастомная логика заполнения свойств перед отправкой
ДанныеXDTO.Вставить("Комментарий", "Выгружено из Розницы: " + ДанныеДанные.Комментарий);
КонецПроцедуры
Вы можете загрузить текст программного модуля менеджера обмена в специализированную базу КД 3.0. В ней настройка связей объектов происходит в удобном визуальном интерфейсе (похожем на КД 2.1). Однако на выходе КД 3.0 формирует не XML-файл правил обмена, а готовый текст модуля 1С. Этот сгенерированный код вам необходимо скопировать и вставить в модуль менеджера обмена вашей конфигурации или расширения.
Таким образом, перед началом любых работ по изменению обмена всегда проверяйте настройки синхронизации в интерфейсе 1С. Если в настройках упоминается «Синхронизация через универсальный формат (EnterpriseData)», используйте инструменты КД 3.0 и расширения конфигурации. Если же используется классический обмен по правилам конвертации — смело выгружайте метаданные с помощью MD83Exp.epf, редактируйте правила в КД 2.1 и упаковывайте трехфайловый архив ZIP для БСП.