Обмен данными в конфигурациях 1С



В статье описываются современные (для платформы 1С:Предприятие 8.2) механизмы, используемые для обмена между различными конфигурациями. Статья предназначена для начинающих программистов, создающих свои обмены или анализирующих типовые.

 

Введение

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

Постановка задачи обмена данными

Обмен происходит между двумя различными конфигурациями, условно назовем их Источником и Приемником. По умолчанию считаем направление обмена односторонним. Структура метаданных конфигураций Источника и Приемника различны. Необходимо регулярно обмениваться некоторыми видами документов.

В общем виде, задача двустороннего обмена разбивается на две задачи одностороннего обмена, только меняются местами источник и приемник.

Трудности

  1. Документы в конфигурации имеют различный набор и состав реквизитов
  2. Некоторые реквизиты документов составного типа (справочники).
  3. Если уже переданный документ был изменен документ в конфигурации Источник, его необходимо повторно передать в конфигурацию Приемник
  4. Возможно дублирование элементов в том случае, если справочники заполнялись в двух базах одновременно. Как вариант, при наличие дублей в справочнике (элементов справочника с одинаковым набором реквизитов), в документ попадет “ненужный” элемент — например, давно не используемый и помеченный на удаление.

Методы решения

Этап 1. Соответствие объектов

Для составления правил отображения реквизитов документа конфигурации Источника в реквизиты документов конфигурации Приемника создаются правила обмена. Правила обмена специальный файл в формате XML описывающий соответствия и правила преобразования объектов Источника в объекты Приемника. Автоматизируется создание правил обмена с помощью конфигурации “Конвертация данных”.  Из конфигураций Приемника и Источника с помощью специальной обработки выгружаются XML файлы, описывающие структуру метаданных соответствующих конфигураций и загружаются в “Конвертацию данных”.

При описании правил обмена необходимо указать реквизиты (так называемые ключевые реквизиты) по которым система будет искать в Приемнике объекты соответствующие объектам Источника.

В современных схемах обмена, сопоставление по реквизитам используется только при начальной настройке обмена. В процессе работы ключевые реквизиты справочников могут меняться, а терять связь объекты между собой не должны. Для этого в конфигурации Приемника заполняется регистр “Соответствие объектов обмена”. В регистре указаны: уникальный идентификатор объекта (GUID) конфигурации Источника и глобальный уникальный идентификатор объекта, соответствующего ему в Приемнике.

Этап 2. Регистрация измененных объектов

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

В самом простом виде, План обмена (не использующий механизм распределенных баз данных) можно представить в виде таблицы из двух колонок: идентификатора узла-приемника данных и идентификатора объекта, предназначенного для выгрузки. План обмена настраивается на мониторинг определенных объектов метаданных. При изменении какого-либо объекта метаданных, включенного в план обмена, глобальный идентификатор измененного объекта попадает в план обмена с признаком измененности. После выгрузки данных признак измененности сбрасывается.

Этап 3. Транспорт

Топологии обменов данными очень причудливы. Возможен как прямой доступ к базе-Приемнику из Источника, так и опосредованный. В первом случае возможно использовать ADO-соединение — прямое подключение из Источника к Приемнику. Вариант очень удобный с пользовательской точки зрения: один раз настроив параметры обмена и авторизацию пользователя в Приемнике, одним нажатием кнопки (или по расписанию) провести обмен.

Когда прямой доступ к Приемнику невозможен, данные выгружаются в промежуточный файл XML, передаются на сторону приемника и загружается. Также, возможно, использование общего ftp-ресурса.

Перед тем как настроить обмен

Дубли и объекты, помеченные на удаление

Перед тем как настроить обмен — избавьтесь от дублирующихся элементов в справочниках. Удалите объекты, помеченные на удаление.

Ввод справочников и регистров сведений

Источник ввода справочников и регистров сведений должен быть один. Тогда вы избавитесь от необходимости постоянно исправлять неверно синхронизированные элементы, из-за которых в оборотно-сальдовой ведомости не “схлопываются”, казалось бы идентичные движения.

Заключение

В итоге, создание схемы обмена выглядит следующий образом:

  1. Создаются правила обмена в конфигурации “Конвертация данных”
  2. Создается и инициализируется план обмена
  3. Информационные базы подготавливаются к обмену. Удаление дублей
  4. При инициализации обмена, заполняется регистр сведений “Соответствие объектов обмена”
  5. Выбирается соответствующий транспорт (прямой доступ, через файл)
  6. Выполняется регулярный обмен данными

Библиография

  1. http://v8.1c.ru/overview/ObmenUniversal.htm
  2. http://v8.1c.ru/overview/ExchangePlans.htm
  3. http://v8.1c.ru/overview/ObmenMain.htm
  4. http://www.gotdotnet.ru/blogs/denish/1965/
  5. http://ru.wikipedia.org/wiki/GUID

P.S. Конструктивная критика и дополнения приветствуются.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *