Универсальный формат обмена 1с настройка. Обмен через универсальный формат

27.08.2015

Фирма "1С" выпустила первую версию нового формата обмена бизнес-данными EnterpriseData, базирующегося на XML. Формат позволяет эффективно организовать обмен данными между разнородными системами автоматизации бизнеса, использующимися в компании, независимо от того, кто является их разработчиком и для каких сфер деятельности они предназначены.

Выпуск стандарта стал для фирмы "1С" очередным шагом на пути повышения открытости своих продуктов для интеграции с ПО сторонних производителей. Фирма "1С" всегда уделяла особое внимание этому направлению. Продукты "1С" поддерживают формат CommerceML , используемый для обмена коммерческой информацией в формате XML. Заслуживает отдельного упоминания формат обмена финансовыми документами между системой "1С:Предприятие" и модулями систем дистанционного банковского обслуживания ("Клиент-банк"), разработанный фирмой "1С" совместно c ведущими разработчиками информационных банковских систем. Этот формат, который поддерживают на сегодня сотни российских банков (включая Сбербанк России, ВТБ 24, Газпромбанк, Россельхозбанк) стал, по сути, стандартом индустрии. Дальнейшее развитие это направление получило в технологии прямого обмена DirectBank , делающей взаимодействие с банком из 1С:Предприятие еще более удобным и безопасным.

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

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

В настоящее время формат Enterprise Data уже применяется для синхронизации данных между программными продуктами самой фирмы "1С", он поддерживается в продуктах:

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

Одним из наиболее распространенных случаев интеграции продуктов "1С" является тандем "1С:Бухгалтерия" - "1С:Управление торговлей"; эти два популярных продукта компании обмениваются 73 типами документов в формате EnterpriseData, что позволяет поддерживать их данные в актуальном, синхронизированном между собой состоянии. Разработчики фирмы "1С" отмечают, что принятие формата EnterpriseData позволило повысить качество и скорость разработки прикладных решений системы "1С:Предприятие" за счет унификации кода.

Для сторонних продуктов, интегрирующихся с продуктами "1С", использование формата позволит снизить как объем разработки, так и трудозатраты на внедрение и поддержку систем. Раньше, когда каждый продукт поддерживал свой формат обмена данными, при наличии в системе обмена данными N продуктов добавление нового продукта требовало 2*N изменений (см рис.1); каждый существующий продукт нуждался в изменениях, чтобы поддержать импорт данных из нового продукта, и новый продукт должен был поддержать импорт данных из существующих продуктов. После введения единого формата добавление нового продукта потребует лишь реализации в нем импорта и экспорта в формате EnterpriseData и не вызовет изменений в существующих продуктах.

Рисунок 1 Обмен данными в отсутствие единого формата

Рисунок 2 Обмен данными через формат EnterpriseData

Формат поддерживает совместимость "снизу вверх" - все программы сторонних производителей, обменивающихся данными в формате EnterpriseData с ПО фирмы "1С", при выходе новых версий формата продолжат работу.

  • для интеграции собственных разработок на платформе "1С:Предприятие" (как заказных, так и тиражных) с типовыми решениями 1С
  • для интеграции других (не-1С) систем с решениями на платформе 1С:Предприятие
  • для организации взаимодействия других (не-1С) систем между собой.

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

Компания уже давно практикует создание и использование открытых стандартов для информационного взаимодействия своих приложений с ПО независимых разработчиков, но до сих пор это касалось только отдельных специализированных предметных направлений. Именно таким является созданный почти пятнадцать лет назад формат CommerceML для решения задача электронной коммерции, а также «Клиент-банк» и DirectBank для общения приложений «1С» с внешними банковскими системами. EnterpriseData же представляется собой именно универсальный механизм, которые способен покрыть все сферы деятельности предприятия - финансы, производство, закупки и продажи, складские операции и т. п. Первая версия формата включает в себя описание 94 типов документов из различных областей бизнеса. «1С» планирует добавлять в него новые документы и детализировать существующие.

Как поясняют представители «1С», появление EnterpriseData объясняется необходимостью не только интеграции приложений фирмы в ПО других разработчиков, но и - возможно даже в первую очередь - создания унифицированного механизма информационного общения внутри семейства ПО «1С:Предприятие». До недавнего времени для решения этих задач использовался широкий спектр решений, часто создаваемых для каждого конкретного случая. Перевод продуктов «1С» на EnterpriseData уже начался, он применяется во всех последних версиях ее ключевых приложений («1C:ERP Управление предприятием 2.0», «1С:Бухгалтерия 8» 3.0, «1С:Бухгалтерия 8 КОРП» 3.0, «1С:Розница» 2.0, «1С:Управление торговлей» 11). В то же время, замена уже используемых стандартов (CommerceML, работа с банками) на EnterpriseData не предполагается, поскольку проверенные временем специализированные алгоритмы работают более эффективно, чем универсальные средства.

«1С» полагает, что новый формат найдет широкое применение среди независимых разработчиков, создающих приложения на платформе «1С:Предприятие», для них предлагаются готовые программные компоненты в составе Библиотеки стандартных подсистем (что-то вроде SDK для «1С:Предприятия»).

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

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

В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат EnterpriseData.

В моём случае обмен настраивается между конфигурациями "Управление торговлей 11.2" (далее УТ) и "Бухгалтерия предприятия 3.0.43" (далее БП). Обмен односторонний, из УТ в БП. До обновления "Управление торговлей 11.1" на версию "11.2" обмен данными был настроен с помощью конфигурации "Конвертация данных 2.0". Однако после перехода на "11.2" в "Управление торговлей" появились ошибки при работе пользователей. Процедура обновления правил обмена была проведена, но результата это не дало. Отладчик показывал, что проблема в обмене данными. Было решено удалить настройку обмена данными в обеих конфигурациях и настроить заново.

И "Управление торговлей", и "Бухгалтерия предприятия" у нас работают в клиент-серверном варианте. Настройку синхронизации я начал с УТ. Выполнил её таким образом, чтобы данные выгружались из УТ в файл. То есть синхронизация через сетевой каталог. В БП настроил обмен таким образом, чтобы из БП никакие данные не выгружались.

Ошибка при вызове метода контекста (Проверить): Ошибка проверки данных XDTO:
Структура объекта "/БанковскийСчетКонтрагента/Банк" не соответствует типу: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.1}КлючевыеСвойстваБанк
Проверка свойства "БИК":
форма: Элемент
имя: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.1}БИК
тип:
Отсутствует обязательное свойство
Объект: ДоговорСКонтрагентом № ...

Для анализа ошибки нажал на пиктограмму "Состав отправляемых данных" и в списке зарегистрированных к отправке договоров контрагентов нашёл договор, по которому появилась ошибка. Открыл договор, запомнил банковский счёт контрагента, указанный в договоре. Затем перешёл к зарегистрированным к отправке банковским счетам. Оказалось, что нужного счёта нет в списке зарегистрированных. Я перепровёл проблемный банковский счёт и договор. После этого зарегистрировал вручную нужный банковский счёт.

Повторил попытку синхронизировать данные из УТ. На этот раз данные успешно выгрузились. В сетевой папке сформировался XML файл, содержащий данные для переноса из УТ в БП.

Следующий этап - загрузить данные из файла в Бухгалтерию предприятия. В конфигурации "Бухгалтерия предприятия" я нажал кнопку "Синхронизировать", открылась форма обработки с сообщением "Выполняется анализ данных". Чуть позже сообщение сменилось на "Выполняется выгрузка данных". При этом индикатор и счётчик показывали, что из БП выгружается более 80-ти тысяч объектов. Это меня смутило, ведь я указывал в настройках, что из БП ничего не должно выгружаться. Обработка выполнялась довольно долго и завершилась ошибкой:

Событие: Обмен данными
{ОбщийМодуль.ДлительныеОперации.Модуль(371)}: Аварийно завершился рабочий процесс фонового задания
ВызватьИсключение(ТекстОшибки);

Чтобы локализовать ошибку, попробовал изменять настройки синхронизации и вараанты работы базы БП. В итоге, когда я перевёл базу в файловый вариант, система отработала адекватно: открылась форма сопоставления двух баз. После сопоставления объектов начальная синхронизация прошла успешно. Затем я снова перевёл базу в клиент-серверный вариант.

При дальнейшей "обкатке" синхронизации, потребовалось внести кое-какие изменения в правила конвертации объектов. Настало время воспользоваться конфигурацией "Конвертация данных 3.0". Во встроенной справке конфигурации описан порядок работы. Также помогли статьи на сайте ИТС.

В итоге я загрузил в "Конвертация данных 3.0" следующие данные:

  • Тексты общего модуля "МенеджерОбменаДаннымиЧерезУниверсальныйФормат" из двух баз
  • Схема обеих баз
  • Описание формата EnterpriseData (из одной любой базы)
  • Правила конвертации

После загрузки открыл в "Конвертация данных 3.0" правила конвертации данных, объектов, свойств. Внёс необходимые мне правки. Затем воспользовался кнопкой "Выгрузить модуль менеджера обмена". Текст модуля скопировался в буфер обмена. Осталось только вставить его в конфигурацию.

Поэксперементировав с настройкой правил в "Конвертация данных 3.0", я для себя заключил, что в случае, когда вносимые правки незначительны, проще настраивать правила непосредственно в конфигурациях УТ и БП, в общем модуле "МенеджерОбменаДаннымиЧерезУниверсальныйФормат". Если же правки серъёзные, такие как, например, добавление нового объекта в обмен, тогда стоит воспользоваться конфигурацией "Конвертация данных 3.0".

Задачу по добавлению документа "Заказ поставщику" в план обмена я выполнял с помощью " Конвертация данных 3.0". В стандартном варианте УТ - БП этого документа в плане обмена нет.

Будем помнить, что правила регистрации объектов для выгрузки попрежнему настраиваются в конфигурации "Конвертация данных 2.0".

Вот такие первые впечатления о синхронизации данных через универсальный формат EnterpriseData.

P.S. Если есть вопросы и собственные наблюдения по обмену данными через Универсальный формат и конфигурации " Конвертация данных 3.0", пишите в комментариях. Будем обмениваться опытом.

  • Синхронизация данных
  • Универсальный формат EntepriseData
  • Конвертация данных 3.0
  • Конвертация данных 2.0
  • Управление торговлей
  • Бухгалтерия предприятия

Для облегчения интеграции с программными продуктами фирмы «1С» разработан формат обмена данными EnterpriseData. Формат основан на XML и является бизнес-ориентированным – описанные в нем структуры данных соответствуют бизнес-сущностям (документам и элементам справочников), представленным в программах «1С», например: акт выполненных работ, приходный кассовый ордер, контрагент, договор и т. п. Это делает формат интуитивно понятным и легким в использовании.

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

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

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

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

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

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

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

  • веб-сервис,
  • файловый обмен через каталог,
  • файловый обмен через FTP.

Обмен через электронную почту

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

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

по расписанию (с заданной периодичностью);

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

Формат файлов обмена

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

и . Секция
содержит сообщение-квитанцию (о ней ниже), а – информацию об измененных бизнес-сущностях в формате EnterpriseData.

Для облегчения интеграции с программными продуктами фирмы «1С» разработан формат обмена данными EnterpriseData. Формат основан на XML и является бизнес-ориентированным – описанные в нем структуры данных соответствуют бизнес-сущностям (документам и элементам справочников), представленным в программах «1С», например: акт выполненных работ, приходный кассовый ордер, контрагент, договор и т. п. Это делает формат интуитивно понятным и легким в использовании.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Формат файлов обмена

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

и . Секция
содержит сообщение-квитанцию (о ней ниже), а – информацию об измененных бизнес-сущностях в формате EnterpriseData.

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

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

Если сообщение идет в обратном направлении – от стороннего приложения в приложение «1С», стороннее приложение должно соответствующим образом заполнить секцию .

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

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

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

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

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

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

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

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

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

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

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

Заключение

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