Page 1

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

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

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

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

Методы решения Этап 1. Соответствие объектов


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

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

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


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

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

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

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


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

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

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

Библиография 1. 2. 3. 4. 5.

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

№21(214)  

№21(214)