Для облегчения интеграции с программными продуктами фирмы «1С» разработан формат обмена данными EnterpriseData. Формат основан на XML и является бизнес-ориентированным – описанные в нем структуры данных соответствуют бизнес-сущностям (документам и элементам справочников), представленным в программах «1С», например: акт выполненных работ, приходный кассовый ордер, контрагент, договор и т. п. Это делает формат интуитивно понятным и легким в использовании.
Формат EnterpriseData предназначен для обмена данными внутри компании (в том числе между разнородными и территориально удаленными информационными системами) и призван покрыть все сферы деятельности предприятия – финансы, производство, закупки и продажи, складские операции и т. п.
Описание формата
Версия 1.0.1 формата включает в себя описание 94 типов бизнес-сущностей из различных областей бизнеса (подробное описание формата можно найти здесь). Формат является расширяемым – фирма «1С» будет добавлять в него описание новых бизнес-сущностей и расширять существующие сущности новыми полями. Поддержка формата в продуктах фирмы «1С» обеспечивает совместимость снизу вверх – все программы сторонних производителей, обменивающихся данными в формате EnterpriseData с продуктами «1С», при выходе новых версий формата корректно продолжат работу.
Формат предназначен для обмена информацией между любыми информационными системами: он не зависит от особенностей собственного программного обеспечения или структур информационных баз, которые участвуют в обмене и не содержит в себе явных ограничений использования.
Обмен данными с программами «1С»
Предварительная настройка на стороне «1С»
Чтобы начать обмен данными в формате EnterpriseData между приложением «1С» и сторонним приложением, надо на стороне «1С» настроить синхронизацию данных. В ходе настройки указывается уникальный код приложения, с которым будет производиться обмен, а также по какому каналу будет происходить обмен данными. В настоящий момент доступны следующие опции:
- веб-сервис,
- файловый обмен через каталог,
- файловый обмен через FTP.
Обмен через электронную почту
В случае обмена через веб-сервис стороннее приложение будет инициировать сеанс обмена данными путем вызова соответствующих веб-методов приложения «1С». В остальных случаях инициатором сеанса обмена будет приложение «1С».
Также на стороне «1С» настраивается, с какой периодичностью будет происходить синхронизация (для вариантов с файловым обменом через каталог и электронную почту):
по расписанию (с заданной периодичностью);
вручную; пользователь должен будет вручную запускать синхронизацию каждый раз, когда это ему потребуется.
Формат файлов обмена
В ходе синхронизации приложения «1С» и сторонние приложения обмениваются сообщениями – XML-файлами определенной структуры. Эти файлы состоят из двух секций –
Для облегчения интеграции с программными продуктами фирмы «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-файлами определенной структуры. Эти файлы состоят из двух секций –
Пример сообщения |
Секция
Если сообщение идет в обратном направлении – от стороннего приложения в приложение «1С», стороннее приложение должно соответствующим образом заполнить секцию
Приложения «1С» ведут учет отправленных и полученных сообщений синхронизации и ожидают того же от сторонних приложений. Для чего это делается – изложено ниже.
Механизм квитирования
Приложения «1С» в ходе синхронизации передают только информацию об изменениях, произошедших с бизнес-сущностями со времени последней синхронизации (чтобы минимизировать объем передаваемой информации). При первой синхронизации приложение «1С» выгрузит все бизнес-сущности в формате EnterpriseData в XML-файл (поскольку все они являются «новыми» для внешнего приложения). Следующий шаг за сторонним приложением –оно должно обработать информацию из XML-файла и при следующем сеансе синхронизации поместить в секцию
После получения сообщения-квитанции приложение «1С» помечает все изменения, переданные в предыдущем сообщении, как успешно синхронизированные. Лишь несинхронизированные изменения в бизнес-сущностях (создание новых, изменение и удаление существующих) будут отправлены во внешнее приложение при следующем сеансе синхронизации.
При передаче данных от внешнего приложения в приложение «1С» картина меняется на обратную. Приложение должно заполнить секцию
Приложение «1С» после обработки файла сформирует XML-файл, который будет содержать сообщение-квитанцию и новые данные для синхронизации со стороны «1С» (если такие есть со времени последнего сеанса синхронизации).
Обмен через веб-сервис
При использовании веб-сервиса инициатором сеанса обмена выступает стороннее приложение. Для получения данных от приложения «1С» ему нужно вызвать веб-метод GetData, передав в качестве параметров метода уникальный код приложения, введенный на . В ответ «1С» вернет файл, содержащий данные о бизнес-сущностях в формате EnterpriseData. Формат файла описан.
Чтобы передать данные в «1С», приложение должно вызвать веб-метод PutData, передав как параметры уникальный код приложения и заархивированный файл в описанном выше формате.
Обмен через другие каналы
В случае обмена данными через каталог/FTP каталог или электронную почту инициатором обмена будет выступать приложение «1С». Оно будет помещать в соответствующий канал (каталог или почтовый ящик) файл описанного выше формата и ожидать от стороннего приложения в этом же канале ответных файлов. В случае обмена каталог/FTP каталог имя файла должно быть составлено специальным образом, чтобы приложение «1С» смогло его обработать. В случае обмена по электронной почте тема письма должна быть составлена по определенному правилу, а заархивированный файл с данными должен быть приложен к письму.
Заключение
Набор сценариев интеграции с использованием формата EnterpriseData широк. Это и обмен данными в пределах одной организации, например, передача данных в «1С:Бухгалтерию» из других приложений для ведения целостного учета, или обмен данными между центральным офисом и удаленными складами. Подходит формат и для обмена данными между разными организациями.
В некоторых случаях (допустим при большом документообороте или при сложном учете) конечному пользователю гораздо удобнее распределить учет между несколькими приложениями, время от времени выполняя обмен данными между ними. До выхода в свет платформы 1С версии 8.3 стандартный обмен данными происходил исключительно по желанию пользователя через выгрузку-загрузку информации с использованием файлов формата XML. В последнее время все чаще используется механизм синхронизации данных в 1С.
Причин популярности синхронизации несколько:
- Не надо отдельно запускать процессы загрузки и выгрузки данных;
- Автоматическое выполнение обмена информацией не препятствует ручному обмену;
- Простота настройки (для стандартных конфигураций не надо даже создавать правила обмена;
- Достаточно единожды создать синхронизацию и объявить расписание ее выполнения.
Условия нашей задачи
На входе мы имеем две стандартных конфигурации базы данных:
- Зарплата и управление персоналом (редакция 3.1.3);
- Бухгалтерия сельскохозяйственного предприятия (редакция 3.0.52).
Обе базы работают в файловом режиме. Настройку синхронизации можно проводить из любой базы.
Если синхронизация будет настраиваться из «Бухгалтерии» в «ЗУП» должна быть активирован флажок «Синхронизация» и наоборот.
Где находятся настройки
В «Бухгалтерии» заходим в подсистему «Администрирование», в меню «Настройка» и находим пункт «Синхронизация данных» (Рис. 1)
Откроется окно настройки синхронизации (Рис. 2)
Рис. 2
Здесь мы можем:
- Включить или отключить синхронизацию;
- Запретить загрузку неактуальных данных;
- Установить префикс для идентификации перенесенных данных;
- Перейти к другим настройкам синхронизации.
Запустив синхронизацию установкой соответствующего флажка и определив префикс, мы можем закрывать бухгалтерию. Дальнейшая работа будет производиться в «Зарплате».
Окно настроек синхронизации данных представлено на Рис. 3
Рис. 3
Рассмотрим его подробнее.
Окно настроек синхронизации
Начнем по порядку:
Отдельно хотелось бы заострить внимание читателя на окне «Регистрация изменений» (Рис. 5). В верхней части которого есть номера отправленного и принятых сообщений, после удачного обмена номера в базе-источнике и базе-приемнике должны совпадать. В некоторых случаях (синхронизация произошла с копией базы, сбои в работе) нумерация в базах нарушается. Исправить эту ситуацию можно простым щелчком на гиперссылке с номерами. Это действие позволяет вручную установить текущий номер отправленного и входящего сообщений (Рис. 6)
Рис. 6
Настройки синхронизации
На закладке «Настройки синхронизации данных» есть две команды:
- Настроить;
- Загрузить правила.
Запуск команды «Загрузить правила» открывает форму (Рис. 7)
Рис. 7
Здесь мы можем выбрать, собираемся ли мы использовать типовые правила обмена, поставляемые в конфигурации, или будем выполнять синхронизацию по собственным правилам, хранящимся в архивном файле.
Остальные настройки происходят по щелчку по кнопке «Настроить» (Рис. 8).
Рис. 8
В первом открывшемся окне можно:
- Открыть форму настройки сценария синхронизации;
- Просмотреть события отправки и получения информации;
- Определить дату, с которой будет происходить обмен;
- Если учет ведется по нескольким организациям, можно указать, какие именно из них будут участвовать в обмене;
- Определить параметры выгрузки проводок по зарплате: с детализацией по сотрудникам или без нее (сводно).
Команда «Загрузить комплект правил» аналогична такой же команде в предыдущем окне настройки.
Подробнее стоит остановиться на параметрах подключения (Рис. 9)
Рис. 9
В нашем случае база приемник и база источник находятся на одном компьютере и работают в файловом режиме, поэтому синхронизация между ними происходит через прямое подключение.
Нам необходимо:
- Определить путь к базе-приемнику;
- Задать параметры авторизации (в базе-приемнике должен быть создан пользователь с правами администратора);
- После проверки подключения можно считать, что наша настройка закончена.
Если обмен происходит через другие типы подключения, необходимо настроить их параметры на соответствующих закладках.
Настройки расписания
И в конце пара слов про настройки расписания синхронизации, оно выполняется в соответствующей закладке окна (Рис. 3) и ничем не отличается от соответствующей формы настройки расписания прочих регламентных заданий.
В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат 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
- Управление торговлей
- Бухгалтерия предприятия
И показываем, как с ее помощью СИЛЬНО упростить решение своих задач
Сегодня мы разберем, как буквально за 10-15 минут настроить и сделать простой перенос справочников и начальных остатков.
А это – массовая и регулярная задача , которая практически неизбежна для большинства запускаемых новых конфигураций.
Поэтому позовите коллег, им это будет тоже очень полезно.
Особенно, если они уже видели КД 3 и успели испугаться:)
Да, когда ее видишь в первый раз – там вообще ни фига не понятно.
Но на самом деле – все ОЧЕНЬ просто. Настолько просто, что вам потом даже скучно будет:)
Что конкретно в сегодняшних видео
Это 4 видео по обмену данными через универсальный формат обмена EnterpriseData .
Кроме того, мы покажем пример доработки типовых правил обмена в 1С:Конвертации данных 3.0
Общая длительность – 34 минуты . Содержание:
- Настройка обмена на примере 1С:Бухгалтерии 8 и 1C:ERP
- Как сделать загрузку типовых правил и универсального формата обмена в Конвертации Данных 3.0
- Перенос структуры метаданных в КД 3.0
- Как выполнить первый обмен данными
- Доработка правил конвертации
- Как загрузить новые правила без изменения конфигурации (без снятия с поддержки )
Обратите внимание , что при решении этой задачи меняются правила загрузки только в конфигурации-приемнике. А конфигурация-источник работает по типовым правилам.
Если бы подобная задача решалась в Конвертации данных 2.0, то изменения пришлось бы вносить в правилах и источника, и приемника.
Данные видеоуроки актуальны для БСП редакции 2.3.2 (для любой сборки старше 2.3.2.43).
Если Вы используете более старшую версию БСП,0 сделайте «поправку» на изменившийся интерфейс и расширенную функциональность. Для этого самостоятельно повторите пример из видео.
Видео 1:
Загрузка правил обмена между типовыми конфигурациями в Конвертацию данных 3.0
В этом уроке выполним подготовительные действия при внесении изменений в правила обмена между типовыми конфигурациями:
- Загрузка в КД структуры формата обмена (
- Создание конвертации
- Выгрузка файлов правил из типовой конфигурации
- Выгрузка модуля менеджера обмена
Видео 2:
Доработка правил обмена в КД 3.0
В этом уроке мы покажем, как дозаполнить реквизиты объектов при загрузке данных.
Будет решена задача – при загрузке объектов из конфигурации-источника устанавливать комментарий “Загружено из БП 3.0”.
Для решения задачи потребуется внести изменения в правилах конвертации объектов , в событии “Перед записью полученных данных”.
Разработанные правила будут сохранены в виде внешней обработки для дальнейшего использования.
Видео 3:
Настройка универсального обмена между типовыми конфигурациями
В этом уроке мы покажем, как настраивать новый обмен между типовыми.
Настройки будут сделаны в конфигурации-источнике и затем загружены в конфигурацию-приемник.
Также в этом видео мы покажем, как без изменения конфигурации подгрузить новые правила обмена.
Видео 4:
Перенос начальных остатков с помощью правил обмена
В уроке покажем типовой функционал переноса начальных остатков.
P.S.
Да, обмены через txt / dbf / ole и т.д. имеют право на существование. В каких-то специальных случаях, типа стыковки с веб-сервером или переноса из готового формата внешнего приложения.
Однако для стандартных обменов – стандартные методы и быстрее, и сильно проще.
А если кто-то изобретает велосипед, когда есть готовое универсальное решение – это как написать себе на лбу “инструментом не владею, изучать не хочу, буду строить костыли за ваши деньги” .
P.P.S.
Мы хотим показать, что Конвертация Данных 3.0 – это не сложно.
Непривычно – да. Не все сразу понятно – да. Есть очень неоднозначные моменты – да.
Но с помощью готовых инструкций и видео ее можно освоить буквально за 1-2 недели.