При работе с современными конфигурациями на базе 1С:Предприятие 8.3, такими как Бухгалтерия предприятия 3.0, специалисты часто сталкиваются с необходимостью кастомизации механизмов обмена данными. Типовые правила, поставляемые фирмой «1С», не всегда учитывают специфические требования бизнеса, поэтому возникает задача их выгрузки, доработки в конфигурации «Конвертация данных» и последующей обратной загрузки. В этой статье мы подробно разберем, как выполнить эти операции, используя возможности конфигуратора и пользовательского режима.
Прежде всего, выясним, где физически находятся правила обмена. В конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), правила чаще всего «зашиты» непосредственно в конфигурацию в виде двоичных макетов. Проанализируем основные места их хранения:
Общие -> Общие макеты. Ищите макеты с названиями типа ПравилаОбмена_БП_УТ или ПравилаРегистрации_БП.Общие -> Планы обмена, выберем нужный и откроем вкладку «Макеты».Для того чтобы выгрузить эти правила для редактирования в «Конвертации данных 2.1», нам необходимо выполнить следующие действия. Находясь в конфигураторе, откроем нужный макет. Поскольку это BinaryData, программа предложит сохранить его на диск. Сохраняем файл с расширением .xml. Теперь этот файл готов к загрузке в КД 2.1.
Рассмотрим более удобный способ, который не требует использования конфигуратора. Если в вашей базе уже настроена синхронизация данных, выгрузить текущие (используемые) правила можно напрямую из интерфейса программы. Проанализируем алгоритм действий:
Этот метод особенно полезен, если вы хотите убедиться, что редактируете именно те правила, которые работают в данный момент, так как они могли быть изменены ранее и загружены в базу как «внешние».
После того как мы получили XML-файл правил, мы загружаем его в Конвертацию данных 2.1. После внесения необходимых изменений (например, добавления ПКС или настройки фильтров в ПВД), нам нужно выгрузить новые правила обратно в XML. Обратите внимание, что для корректной работы в БП 3.0 важно сохранять структуру файла, которую ожидает БСП.
Если вы работаете с правилами регистрации, алгоритм аналогичен. Правила регистрации определяют, какие именно объекты будут помечены к выгрузке при их изменении в базе.
Теперь разберем самый важный этап: как вставить отредактированные правила обратно в 1С:Бухгалтерия 3.0 так, чтобы они начали работать, но при этом нам не пришлось снимать конфигурацию с поддержки. Проанализируем механизм приоритетов БСП: если в специальном хранилище базы есть «внешние» правила, программа будет использовать их вместо типовых макетов.
Разберем по шагам, как подключить файл:
Важный технический нюанс: После загрузки правила попадают в информационную базу. Они сохраняются либо в справочнике ПравилаКонвертацииОбъектов, либо в регистре сведений ПравилаДляОбменаДанными (в зависимости от версии БСП, используемой в вашей редакции БП 3.0). Если вы не видите записей в регистре, значит, программа все еще использует встроенные макеты.
Важно не путать классический обмен через XML-правила (КД 2.1) и современный Универсальный формат (EnterpriseData), который работает на базе КД 3.0. Если ваша синхронизация настроена через «Универсальный формат», то вы не найдете привычных XML-правил конвертации в макетах. В КД 3.0 логика преобразования описывается программным кодом в модулях менеджера обмена.
Выясним причину, почему правила КД 3.0 нельзя просто загрузить через XML:
МенеджерОбменаЧерезУниверсальныйФормат (или аналогичных).XDTO.Если ваша задача — изменить обмен, работающий по технологии КД 3.0, вам придется создавать расширение и переопределять обработчики в программном коде модуля менеджера обмена. Однако для большинства стандартных обменов между старыми и новыми базами все еще используется проверенная технология КД 2.1, где описанный выше метод с загрузкой XML-файла через интерфейс работает безупречно.
После загрузки новых правил обязательно выполните тестовую синхронизацию. Рекомендуется сначала сделать это в копии базы. Если при загрузке правил возникает ошибка «Несоответствие версии формата», проверьте, из той ли конфигурации вы выгружали исходный макет. Также полезно бывает поставить в коде точку останова в процедуре ОбменДаннымиСервер.ПолучитьПравилаКонвертации(), чтобы убедиться, что программа действительно подхватила ваш внешний файл, а не обращается к стандартному макету.
Использование внешних правил — это безопасный и эффективный способ адаптации обмена 1С:Бухгалтерия 3.0 под нужды пользователя, сохраняющий возможность легкого обновления конфигурации в будущем.