Введение
Необходимость в обмене между различными конфигурациями возникла с момента появления 1С версии 7.5. Разрабатывались различные способы и механизмы. В статье описываются современные (для платформы 1С:Предприятие 8.2) механизмы, используемые для обмена между различными конфигурациями. Статья предназначена для начинающих программистов, создающих свои обмены или анализирующих типовые. В описании процедуры обмена используется некоторое утопичное представление об обмене, эдакий сферический обмен в вакууме.
Постановка задачи обмена данными
Обмен происходит между двумя различными конфигурациями, условно назовем их Источником и Приемником. По умолчанию считаем направление обмена односторонним. Структура метаданных конфигураций Источника и Приемника различны. Необходимо регулярно обмениваться некоторыми видами документов.
В общем виде, задача двустороннего обмена разбивается на две задачи одностороннего обмена, только меняются местами источник и приемник.
Трудности
- Документы в конфигурации имеют различный набор и состав реквизитов
- Некоторые реквизиты документов составного типа (справочники).
- Если уже переданный документ был изменен документ в конфигурации Источник, его необходимо повторно передать в конфигурацию Приемник
- Возможно дублирование элементов в том случае, если справочники заполнялись в двух базах одновременно. Как вариант, при наличие дублей в справочнике (элементов справочника с одинаковым набором реквизитов), в документ попадет “ненужный” элемент — например, давно не используемый и помеченный на удаление.
Методы решения
Этап 1. Соответствие объектов
Для составления правил отображения реквизитов документа конфигурации Источника в реквизиты документов конфигурации Приемника создаются правила обмена. Правила обмена специальный файл в формате XML описывающий соответствия и правила преобразования объектов Источника в объекты Приемника. Автоматизируется создание правил обмена с помощью конфигурации “Конвертация данных”. Из конфигураций Приемника и Источника с помощью специальной обработки выгружаются XML файлы, описывающие структуру метаданных соответствующих конфигураций и загружаются в “Конвертацию данных”.
При описании правил обмена необходимо указать реквизиты (так называемые ключевые реквизиты) по которым система будет искать в Приемнике объекты соответствующие объектам Источника.
В современных схемах обмена, сопоставление по реквизитам используется только при начальной настройке обмена. В процессе работы ключевые реквизиты справочников могут меняться, а терять связь объекты между собой не должны. Для этого в конфигурации Приемника заполняется регистр “Соответствие объектов обмена”. В регистре указаны: уникальный идентификатор объекта (GUID) конфигурации Источника и глобальный уникальный идентификатор объекта, соответствующего ему в Приемнике.
Этап 2. Регистрация измененных объектов
В платформе 1С:Предприятие 8 существует объект метаданных, специально предназначенный для организации обмена — План обмена. Планы обмена содержат информацию об узлах, которые могут участвовать в обмене данными, определяют состав данных, которыми будет производиться обмен, и указывают, следует ли задействовать механизм распределенной информационной базы при обмене. В одном прикладном решении может существовать несколько планов обмена, каждый из которых может описывать свой порядок обмена данными. Например, если выполняется обмен данными с удаленными складами и удаленными офисами, то, скорее всего, будет существовать два плана обмена (один для обмена со складами, другой — для офисов), поскольку состав данных, которыми производится обмен со складами, будет значительно «уже», чем состав данных, предназначенных для обмена с офисами.
В самом простом виде, План обмена (не использующий механизм распределенных баз данных) можно представить в виде таблицы из двух колонок: идентификатора узла-приемника данных и идентификатора объекта, предназначенного для выгрузки. План обмена настраивается на мониторинг определенных объектов метаданных. При изменении какого-либо объекта метаданных, включенного в план обмена, глобальный идентификатор измененного объекта попадает в план обмена с признаком измененности. После выгрузки данных признак измененности сбрасывается.
Этап 3. Транспорт
Топологии обменов данными очень причудливы. Возможен как прямой доступ к базе-Приемнику из Источника, так и опосредованный. В первом случае возможно использовать ADO-соединение — прямое подключение из Источника к Приемнику. Вариант очень удобный с пользовательской точки зрения: один раз настроив параметры обмена и авторизацию пользователя в Приемнике, одним нажатием кнопки (или по расписанию) провести обмен.
Когда прямой доступ к Приемнику невозможен, данные выгружаются в промежуточный файл XML, передаются на сторону приемника и загружается. Также, возможно, использование общего ftp-ресурса.
Перед тем как настроить обмен
Дубли и объекты, помеченные на удаление
Перед тем как настроить обмен — избавьтесь от дублирующихся элементов в справочниках. Удалите объекты, помеченные на удаление.
Ввод справочников и регистров сведений
Источник ввода справочников и регистров сведений должен быть один. Тогда вы избавитесь от необходимости постоянно исправлять неверно синхронизированные элементы, из-за которых в оборотно-сальдовой ведомости не “схлопываются”, казалось бы идентичные движения.
Заключение
В итоге, создание схемы обмена выглядит следующий образом:
- Создаются правила обмена в конфигурации “Конвертация данных”
- Создается и инициализируется план обмена
- Информационные базы подготавливаются к обмену. Удаление дублей
- При инициализации обмена, заполняется регистр сведений “Соответствие объектов обмена”
- Выбирается соответствующий транспорт (прямой доступ, через файл)
- Выполняется регулярный обмен данными
Библиография
P.S. Конструктивная критика и дополнения приветствуются.