Формат EnterpriseData

29.04.2015 Формат EnterpriseData предназначен для обмена данными внутри компании (в том числе между разнородными и территориально удаленными информационными системами) и призван покрыть все сферы деятельности предприятия – финансы, производство, закупки и продажи, складские операции и т. п.

Описание формата

Версия 1.0.1 формата включает в себя описание 94 типов бизнес-сущностей из различных областей бизнеса (подробное описание формата можно найти здесь). Формат является расширяемым – фирма «1С» будет добавлять в него описание новых бизнес-сущностей и расширять существующие сущности новыми полями. Поддержка формата в продуктах фирмы «1С» обеспечивает совместимость снизу вверх – все программы сторонних производителей, обменивающихся данными в формате EnterpriseData с продуктами «1С», при выходе новых версий формата корректно продолжат работу.

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



Документ (акт выполненных работ) в программе «1С»






Тот же документ (акт выполненных работ) в формате EnterpriseData

Формат используется для синхронизации данных между программными продуктами самой фирмы «1С». На настоящий момент этот формат поддерживают следующие продукты:

«1C:ERP Управление предприятием 2.0»,
«Бухгалтерия предприятия», редакция 3.0,
«Бухгалтерия предприятия КОРП», редакция 3.0,
«Розница», редакция 2.0,
«Управление торговлей базовая», редакция 11,
«Управление торговлей», редакция 11.


Возможный вариант обмена данными

Обмен данными с программами «1С»

Предварительная настройка на стороне «1С»

Чтобы начать обмен данными в формате EnterpriseData между приложением «1С» и сторонним приложением, надо на стороне «1С» настроить синхронизацию данных. В ходе настройки указывается уникальный код приложения, с которым будет производиться обмен, а также по какому каналу будет происходить обмен данными. В настоящий момент доступны следующие опции:

веб-сервис,
файловый обмен через каталог,
файловый обмен через FTP.
Обмен через электронную почту

В случае обмена через веб-сервис стороннее приложение будет инициировать сеанс обмена данными путем вызова соответствующих веб-методов приложения «1С». В остальных случаях инициатором сеанса обмена будет приложение «1С».

Также на стороне «1С» настраивается, с какой периодичностью будет происходить синхронизация (для вариантов с файловым обменом через каталог и электронную почту):

по расписанию (с заданной периодичностью);
вручную; пользователь должен будет вручную запускать синхронизацию каждый раз, когда это ему потребуется.
Формат файлов обмена

В ходе синхронизации приложения «1С» и сторонние приложения обмениваются сообщениями – XML-файлами определенной структуры. Эти файлы состоят из двух секций – <Header> и <Body>. Секция <Header> содержит сообщение-квитанцию <Confirmation> (о ней ниже), а <Body> – информацию об измененных бизнес-сущностях в формате EnterpriseData.



Пример сообщения

Секция <Confirmation> (квитанция) содержит служебную информацию (для простоты предположим, что сообщение идет из приложения «1С» в стороннее приложение):

ExchangePlan. Строка, определяющая порядок обмена данными на стороне «1С». Для обмена с внешними приложениями всегда равна значению «СинхронизацияДанныхЧерезУниверсальныйФормат», для обмена между приложениями «1С» может настраиваться. Подробности для настройки при обмене между приложениями «1С» – в документации «1С».
To. Уникальный код приложения, с которым осуществляется обмен (см. Предварительная настройка на стороне «1С»).
From. Код приложения – источника данных. В случае если это приложение «1С», код по умолчанию будет заполнен автоматически (УП для «1С:Управление предприятием», БП для «1С:Бухгалтерия предприятия» и т. д.), но его значение можно будет изменить вручную в мастере настройки.
MessageNo. Номер последнего сообщения, отправленного из «1С» в приложение.
ReceivedNo. Номер последнего сообщения, принятого «1С» от приложения
Если сообщение идет в обратном направлении – от стороннего приложения в приложение «1С», стороннее приложение должно соответствующим образом заполнить секцию <Confirmation>.

Приложения «1С» ведут учет отправленных и полученных сообщений синхронизации и ожидают того же от сторонних приложений. Для чего это делается – изложено ниже.

Механизм квитирования

Приложения «1С» в ходе синхронизации передают только информацию об изменениях, произошедших с бизнес-сущностями со времени последней синхронизации (чтобы минимизировать объем передаваемой информации). При первой синхронизации приложение «1С» выгрузит все бизнес-сущности в формате EnterpriseData в XML-файл (поскольку все они являются «новыми» для внешнего приложения). Следующий шаг за сторонним приложением –оно должно обработать информацию из XML-файла и при следующем сеансе синхронизации поместить в секцию <Confirmation> информацию, что сообщение от «1С» за определенным номером успешно принято (поместить в поле ReceivedNo номер полученного от «1С» сообщения). Сообщение-квитанция является для приложения «1С» сигналом, что все бизнес-сущности успешно обработаны внешним приложением и информацию о них передавать больше не нужно. Помимо квитанции XML-файл от стороннего приложения также может содержать данные для синхронизации (в секции <Body>).



После получения сообщения-квитанции приложение «1С» помечает все изменения, переданные в предыдущем сообщении, как успешно синхронизированные. Лишь несинхронизированные изменения в бизнес-сущностях (создание новых, изменение и удаление существующих) будут отправлены во внешнее приложение при следующем сеансе синхронизации.

При передаче данных от внешнего приложения в приложение «1С» картина меняется на обратную. Приложение должно заполнить секцию <Confirmation> соответствующим образом, а в секцию <Body> поместить бизнес-данные для синхронизации в формате EnterpriseData.

Приложение «1С» после обработки файла сформирует XML-файл, который будет содержать сообщение-квитанцию и новые данные для синхронизации со стороны «1С» (если такие есть со времени последнего сеанса синхронизации).



Обмен через веб-сервис

При использовании веб-сервиса инициатором сеанса обмена выступает стороннее приложение. Для получения данных от приложения «1С» ему нужно вызвать веб-метод GetData, передав в качестве параметров метода уникальный код приложения, введенный на этапе настройки. В ответ «1С» вернет файл, содержащий данные о бизнес-сущностях в формате EnterpriseData[1]. Формат файла описан выше.

Чтобы передать данные в «1С», приложение должно вызвать веб-метод PutData, передав как параметры уникальный код приложения и заархивированный файл в описанном выше формате.

Обмен через другие каналы

В случае обмена данными через каталог/FTP каталог или электронную почту инициатором обмена будет выступать приложение «1С». Оно будет помещать в соответствующий канал (каталог или почтовый ящик) файл описанного выше формата и ожидать от стороннего приложения в этом же канале ответных файлов. В случае обмена каталог/FTP каталог имя файла должно быть составлено специальным образом, чтобы приложение «1С» смогло его обработать. В случае обмена по электронной почте тема письма должна быть составлена по определенному правилу, а заархивированный файл с данными должен быть приложен к письму.

Заключение

Набор сценариев интеграции с использованием формата EnterpriseData широк. Это и обмен данными в пределах одной организации, например, передача данных в «1С:Бухгалтерию» из других приложений для ведения целостного учета, или обмен данными между центральным офисом и удаленными складами. Подходит формат и для обмена данными между разными организациями.

В планах «1С» – дальнейшее развитие формата EnterpriseData и его поддержка во все большем количестве приложений, разрабатываемых фирмой.

Ресурсы

Описание формата EnterpriseData 1.0

XSD схемы формата EnterpriseData 1.0

[1] В реальности ситуация чуть сложнее. Поскольку размер передаваемой через веб-сервисы информации ограничен, приложению нужно будет получать от «1С» файл в виде архива, разделенного на части. В случае передачи файла от стороннего приложения в приложение «1С» приложению нужно будет заархивировать файл с данными и передать архив по частям, используя методы веб-сервиса.



Все новости