Универсальный обмен правила обмена упп упп

Содержание

Обмен данными в программах 1С:Управление производственным предприятием (1С:УПП), 1С:Бухгалтерия 3.0, 1С:Управление торговлей 11.

Обмен данными – часто используемый механизм программах 1С. В данной статье подробно рассмотрим, как он происходит между различными конфигурациями.

Настройка обмена 1С:Бухгалтерия 3.0- 1С:Управление торговлей 11

Обработка Синхронизация данных в 1С:Бухгалтерия 3.0 находится в меню Администрирование –Синхронизация данных – Настроить синхронизацию данных. Затем выбираем нужную нам конфигурацию из выпадающего меню (Рис. 1).

Рис. 1

В появившемся диалоговом окне нажимаем «Далее» (Рис. 2).

Рис. 2

В следующем окне выбираем способ подключения в к сторонней программе и вводим учетные данные пользователя. Затем нажимаем «Далее» (Рис. 3).

Рис. 3

Данные в следующих окнах можно не изменять, нажимать «Далее». При успешной настройке появится следующее окно (Рис. 4)

Рис. 4

В данном диалоговом окне выбираем период, за который будут перенесены документы, организация (если нужно выгрузить данные по конкретной организации)(Рис. 5).

Рис. 5

После того, как синхронизация проведена, появится сообщение об этом (Рис. 6)

Рис. 6

Синхронизация между Бухгалтерией 3.0 и Управлением торговли 11.1 успешно завершена.

Настройка обмена 1С:Управление Торговлей 11- 1С:Бухгалтерия 3.0

Обратная синхронизация (1С:Управление Торговлей 11- 1С:Бухгалтерия 3.0). Обработку можно открыть из меню Администрирование – Настройка синхронизации данных – Синхронизация данных. Затем, так же как и в предыдущем разделе, выбираем Настроить синхронизацию данных и нужную конфигурацию (Бухгалтерия предприятия, ред. 3.0).

Настраиваем обработку точно также (выбираем путь к базе, производим аутентификацию пользователя и наживаем «Далее») (Рис. 7).

Рис. 7

Нажимаем «Далее». Если синхронизация выполнена успешно, появится соответствующее диалоговое окно (Рис. 6).

Настройка обмена 1С:Бухгалтерия 3.0 – 1С:Зарплата и Управление Персоналом 2.5.

Синхронизацию 1С:Бухгалтерия 3.0 с 1С:Зарплата и управление персоналом

рассматривать подробно не будем. Она выполняется по аналогии с первым пунктом данной статьи, но вместо 1С:Управление торговлей 11.1 выбираем 1С:Зарплата и управление персоналом 2.5.

Настройка обмена 1С:Зарплата и управление персоналом 2.5.- 1С:Бухгалтерия 3.0

Обработка для синхронизации данных из ЗУП 2.5 с БУХ 3.0 в меню Сервис – Выгрузка данных в бухгалтерскую программу. Откроется следующее диалоговое окно (Рис. 8). Заполняем форму (указываем организацию, период выгрузки, файл, куда будут записаны данные)

Рис. 8

После того, как данные записаны в файл, открываем в 1С:Бухгалтерия 3.0 обработку Универсальный обмен данными в формате XML. Заходим на вкладку Загрузка данных, выбираем наш файлик и нажимаем Загрузить данные (Рис. 9).

Рис. 9

Данные успешно перенесены.

5. Настройка обмена 1С:Управление производственным предприятием 1.3 (1С:УПП) – 1С:Бухгалтерия 3.0

В УПП 1.3 механизмы обмена данными с прочими конфигурациями находятся в интерфейс Полный, меню Сервис – Прочие обмены данными – Универсальный обмен данными в формате XML. Заходим на вкладку Выгрузка данных, выбираем заранее сконвертированные правила обмена между 1С:УПП 1.3 и 1С:Бухгалтерия 3.0, указываем файл, куда будут записаны выгруженные данные и нажимаем Выгрузить данные. Затем открываем 1С:Бухгалтерия 3.0, обработку Универсальный обмен данными в формате XML, вкладку Загрузить данные. (см. раздел 4)

Спасибо!

Какие важнейшие требования предъявляются к бизнес-приложениям? Одними из самых главных являются следующие задачи:

  • Легкость изменения/адаптации логики работы приложения к меняющимся бизнес-задачам.
  • Легкость интеграции с другими приложениями.

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

Интеграционные задачи

Интеграционные задачи могут быть разными. Для решения одних достаточно простого интерактивного обмена данными – например, для передачи в банк списка сотрудников для оформления зарплатных пластиковых карт. Для более сложных задач может быть необходим полностью автоматизированный обмен данными, возможно, с обращением к бизнес-логике внешней системы. Есть задачи, носящие специализированный характер, вроде интеграции с внешним оборудованием (например, торговым оборудованием, мобильными сканерами и т.д.) или с унаследованными или узкоспециализированными системами (например, с системами распознавания RFID-меток). Крайне важно для каждой задачи выбрать наиболее подходящий механизм интеграции.

Возможности интеграции с 1С

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

  1. Реализация на основе механизмов интеграции, предоставляемых платформой, своего собственного специализированного API на стороне приложения 1С (например, набора Web- или HTTP-сервисов, которые будут вызывать сторонние приложения для обмена данными с приложением 1С). Плюс этого подхода – устойчивость API к изменению реализации на стороне приложения 1С. Особенность подхода — требуется менять исходный код типового решения 1С, что может потенциально потребовать усилий при слиянии исходных кодов при переходе на новую версию конфигурации. В этом случае может прийти на помощь новая прогрессивная функциональность — расширения конфигурации. Расширения – это, по сути, механизм плагинов, который позволяет создавать дополнения прикладных решений, не меняя самих прикладных решений. Вынос интеграционного API в расширение конфигурации позволит избежать сложностей при слиянии конфигураций при переходе на новую версию типового решения.
  2. Использование механизмов интеграции платформы, которые предоставляют доступ снаружи к объектной модели приложения и не требуют доработки приложения или создания расширения. Плюс такого подхода – не нужно менять приложение 1С. Минус – если приложение 1С было доработано, то могут потребоваться доработки в интегрируемом приложении. Пример такого подхода – использование для интеграции протокола OData, реализованного на стороне платформы 1С:Предприятие (подробнее о нем ниже).
  3. Использование готовых прикладных протоколов, реализованных в типовых решениях 1С. Многие типовые решения от 1С и партнеров реализуют на основе механизмов интеграции, предоставляемых платформой, свои собственные прикладные протоколы, ориентированные на конкретные задачи. При использовании этих механизмов не требуется написание кода на стороне приложения 1С, т.к. мы пользуемся штатными возможностями прикладного решения. На стороне приложения 1С нам нужно лишь выполнить определенные настройки.

Механизмы интеграции в платформе 1С:Предприятие

Импорт/экспорт файлов

Предположим, перед нами стоит задача двунаправленного обмена данными между приложением 1С и произвольным приложением. Например, нам нужно синхронизировать список товаров (справочник Номенклатура) между приложением 1С и произвольным приложением.

Для решения такой задачи можно написать расширение, которое выгружает справочник Номенклатура в файл определенного формата (текстовый, XML, JSON, …) и умеет считывать этот формат.
В платформе реализован механизм сериализации прикладных объектов в XML как напрямую, через методы глобального контекста ЗаписатьXML/ЧтениеXML, так и с помощью вспомогательного объекта XDTO (XML Data Transfer Objects).
Любой объект в системе 1С:Предприятие может быть сериализован в XML представление и наоборот.
Эта функция вернет представление объекта в виде XML:
Функция Объект_В_XML(Объект) ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); ЗаписатьXML(ЗаписьXML, Объект); Возврат ЗаписьXML.Закрыть(); КонецФункции
так будет выглядеть экспорт справочника Номенклатура в XML при помощи XDTO:
&НаСервере Процедура ЭкспортXMLНаСервере() НовыйСериализаторXDTO = СериализаторXDTO; НоваяЗаписьXML = Новый ЗаписьXML(); НоваяЗаписьXML.ОткрытьФайл(«C:\Data\Номенклатура.xml», «UTF-8»); НоваяЗаписьXML.ЗаписатьОбъявлениеXML(); НоваяЗаписьXML.ЗаписатьНачалоЭлемента(«СправочникНоменклатура»); Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл ОбъектНоменклатура = Выборка.ПолучитьОбъект(); НовыйСериализаторXDTO.ЗаписатьXML(НоваяЗаписьXML, ОбъектНоменклатура, НазначениеТипаXML.Явное); КонецЦикла; НоваяЗаписьXML.ЗаписатьКонецЭлемента(); НоваяЗаписьXML.Закрыть(); КонецПроцедуры
Путем несложной переделки кода экспортируем справочник в JSON. Товары будут записаны в массив; для разнообразия приведем англоязычный вариант синтаксиса:
&AtServer Procedure ExportJSONOnServer() NewXDTOSerializer = XDTOSerializer; NewJSONWriter = New JSONWriter(); NewJSONWriter.OpenFile(«C:\Data\Номенклатура.json», «UTF-8»); NewJSONWriter.WriteStartObject(); NewJSONWriter.WritePropertyName(«СправочникНоменклатура»); NewJSONWriter.WriteStartArray(); Selection = Catalogs.Номенклатура.Select(); While Selection.Next() Do NomenclatureObject = Selection.GetObject(); NewJSONWriter.WriteStartObject(); NewJSONWriter.WritePropertyName(«Номенклатура»); NewXDTOSerializer.WriteJSON(NewJSONWriter, NomenclatureObject, XMLTypeAssignment.Implicit); NewJSONWriter.WriteEndObject(); EndDo; NewJSONWriter.WriteEndArray(); NewJSONWriter.WriteEndObject(); NewJSONWriter.Close(); EndProcedure
Далее останется только передать данные конечному потребителю. Платформа 1С:Предприятие поддерживает основные интернет-протоколы HTTP, FTP, POP3, SMTP, IMAP, включая их безопасные версии. Также для передачи данных можно использовать HTTP и/или Web-сервисы.

HTTP- и веб-сервисы


Приложения 1С могут реализовывать свои HTTP- и веб-сервисы, а также вызывать HTTP- и веб-сервисы, реализованные сторонними приложениями.

REST интерфейс и протокол OData

Начиная с версии 8.3.5 платформа 1С:Предприятие может автоматически формировать REST интерфейс для всего прикладного решения. Любой объект конфигурации (справочник, документ, регистр сведений и т.д.) можно сделать доступным для получения и модификации данных через REST интерфейс. В качестве протокола доступа платформа использует протокол OData версии 3.0. Публикация сервисов OData выполняется из меню Конфигуратора «Администрирование -> Публикация на веб-сервере», флажок «Публиковать стандартный интерфейс OData» должен быть помечен. Поддерживаются форматы atom/XML и JSON. После того, как прикладное решение опубликовано на веб-сервере, сторонние системы могут обращаться к нему через REST интерфейс с помощью HTTP запросов. Для работы с приложением 1С через протокол OData программирование на стороне 1С не требуется.
Так, URL вида http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура вернет нам содержимое каталога Номенклатура в формате XML — коллекцию элементов entry (заголовок сообщения пропущен для краткости):
<entry> <id>http://server/Config/odata/standard.odata/Catalog_Номенклатура(guid’35d1f6e4-289b-11e6-8ba4-e03f49b16074′)</id> <category term=»StandardODATA.Catalog_Номенклатура» scheme=»http://schemas.microsoft.com/ado/2007/08/dataservices/scheme»/> <title type=»text»/> <updated>2016-06-06T16:42:17</updated> <author/> <summary/> <link rel=»edit» href=»Catalog_Номенклатура(guid’35d1f6e4-289b-11e6-8ba4-e03f49b16074′)» title=»edit-link»/> <content type=»application/xml»> <m:properties xmlns:d=»http://schemas.microsoft.com/ado/2007/08/dataservices» xmlns:m=»http://schemas.microsoft.com/ado/2007/08/dataservices/metadata»> <d:Ref_Key>35d1f6e4-289b-11e6-8ba4-e03f49b16074</d:Ref_Key> <d:DataVersion>AAAAAgAAAAA=</d:DataVersion> <d:DeletionMark>false</d:DeletionMark> <d:Code>000000001</d:Code> <d:Description>Кондиционер Mitsubishi</d:Description> <d:Описание>Мощность 2,5 кВт, режимы работы: тепло/холод</d:Описание> </m:properties> </content> </entry> <entry> <id>http://server/Config/odata/standard.odata/Catalog_Номенклатура(guid’35d1f6e5-289b-11e6-8ba4-e03f49b16074′)</id> <category term=»StandardODATA.Catalog_Номенклатура» scheme=»http://schemas.microsoft.com/ado/2007/08/dataservices/scheme»/> …
Прибавляя к URL-у строку «?$format=application/json», получим содержимое каталога Номенклатура в формате JSON (URL вида http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура?$format=application/json ):
{ «odata.metadata»: «http://server/Config/odata/standard.odata/$metadata#Catalog_Номенклатура», «value»: [{ «Ref_Key»: «35d1f6e4-289b-11e6-8ba4-e03f49b16074», «DataVersion»: «AAAAAgAAAAA=», «DeletionMark»: false, «Code»: «000000001», «Description»: «Кондиционер Mitsubishi», «Описание»: «Мощность 2,5 кВт, режимы работы: тепло/холод» },{ «Ref_Key»: «35d1f6e5-289b-11e6-8ba4-e03f49b16074», «DataVersion»: «AAAAAwAAAAA=», «DeletionMark»: false, «Code»: «000000002», «Description»: «Кондиционер Daikin», «Описание»: «Мощность 3 кВт, режимы работы: тепло/холод» }, …

Внешние источники данных


В некоторых случаях обмен данными через внешние источники данных может оказаться оптимальным решением. Внешние источники данных – это прикладной объект конфигурации 1С, позволяющий взаимодействовать с любой ODBC-совместимой базой данных как на чтение, так и на запись. Внешние источники данных доступны как в Windows, так и на Linux.

Механизм обмена данными

Механизм обмена данными предназначен как для создания территориально распределенных систем на основе 1С:Предприятия, так и для организации обмена данными с другими информационными системами, не основанными на 1С:Предприятии.
Этот механизм активно используется во внедрениях 1С, и спектр задач, решаемых с его помощью, весьма широк. Это и обмен данными между приложениями 1С, установленными в филиалах организации, и обмен между приложением 1С и сайтом интернет-магазина, и обмен данными между серверным приложением 1С и мобильным клиентом (созданным с помощью мобильной платформы 1С:Предприятия), и многое другое.
Одно из ключевых понятий в механизме обмена данными – это план обмена. План обмена – это особый тип объекта прикладного платформы 1С, определяющий, в частности, состав данных, которые будут участвовать в обмене (какие именно справочники, документы, регистры и т.п.). План обмена содержит также информацию об участниках обмена (так называемых узлах обмена).
Вторая составляющая механизма обмена данными – механизм регистрации изменений. Данный механизм автоматически отслеживает в системе изменения данных, которые должны быть переданы конечным потребителям в рамках плана обмена. С помощью этого механизма платформа отслеживает изменения, произошедшие со времени последней синхронизации, и позволяет минимизировать объем данных, передаваемый в рамках очередного сеанса синхронизации.
Обмен данными происходит при помощи XML сообщений определенной структуры. Сообщение содержит данные, изменившиеся со времени последней синхронизации с узлом, и некоторую служебную информацию. Структура сообщений поддерживает нумерацию сообщений и позволяет получать подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя, в виде номера последнего принятого сообщения. Нумерация сообщений позволяет понять платформе, какие данные уже были успешно переданы на узел-получатель, и избежать повторной передачи, передавая лишь данные, измененные со времени приема узлом-отправителем последнего сообщения с квитанцией о полученных узлом-получателем данных. При такой схеме работы обеспечивается гарантированная доставка даже при ненадежных каналах передачи и потере сообщений.

Внешние компоненты

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

Устаревшие механизмы интеграции

В платформе доступны механизмы интеграции, которые не рекомендуется использовать в новых решениях; они оставлены из соображений обратной совместимости, а также на случай, если другая сторона не может работать с более современными протоколами. Один из них – работа с файлами формата DBF (поддерживается во встроенном языке с помощью объекта XBase).
Другой устаревший механизм интеграции – использование технологии COM (доступно только на платформе Windows). Платформа 1С:Предприятие предоставляет два способа интеграции для Windows, использующие технологию COM: Automation-сервер и Внешнее соединение. Они очень похожи, но одним из принципиальных отличий является то, что в случае Automation-сервера запускается полноценное клиентское приложение 1С:Предприятие 8, а в случае внешнего соединения запускается относительно небольшой внутрипроцессный COM-сервер. То есть в случае работы через Automation сервер можно задействовать функционал клиентского приложения, выполнять действия, аналогичные интерактивным действиям пользователя. При использовании внешнего соединения можно использовать только функции бизнес-логики, причем их можно выполнять как на клиентской стороне соединения, где создается внуприпроцессный COM-сервер, так и осуществлять вызов бизнес-логики на стороне сервера 1С:Предприятия.
Также технологию COM можно использовать для обращения к внешним системам из кода приложения на платформе 1С:Предприятие. В данном случае приложение 1С выступает в качестве COM-клиента. Но следует напомнить, что данные механизмы будут работать только в том случае, если сервер 1С функционирует в среде Windows.

Механизмы интеграции, реализованные в типовых конфигурациях

Формат EnterpriseData


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

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

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

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

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

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

Квитирование сообщений

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

Упрощенный обмен данными без квитирования

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

Специализированные интеграционные решения

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

Интеграция с банковскими решениями

Стандарт «Клиент банк», разработанный специалистами 1С более 10 лет назад, фактически стал стандартом индустрии в России. Следующий шаг в этом направлении – технология DirectBank, позволяющая отправлять платежные документы в банк и получать выписки из банка непосредственно из программ системы «1С:Предприятия» нажатием одной кнопки в программе «1С»; при этом не требуется установка и запуск дополнительных программ на клиентский компьютер.
Есть также стандарт по обмену данными в зарплатных проектах.

Прочее

Заслуживают упоминания протокол обмена между системой 1С:Предприятие и сайтом, стандарт обмена коммерческой информацией CommerceML (разработанный совместно с Microsoft, Intel, Price.ru и другими компаниями), стандарт обмена данными по операциям эквайринга.

Интеграция с 1С: основные способы

Главные требования, которые предъявляют клиенты к бизнес-приложению, – возможность быстро и просто адаптировать функциональность продукта под потребности компании и постоянно меняющиеся бизнес-задачи, а также способность легко интегрироваться с другими приложениями. В статье коснемся вопросов интеграции продуктов 1С.

Интеграционные задачи

Интеграционные задачи могут быть разного уровня сложности. Примером несложной задачи может быть передача в банк списка сотрудников, которым нужно открыть счет. Для этого достаточно осуществить интерактивный обмен данными. Решение более сложных задач потребует автоматизированный обмен данными. В каждой области бизнеса есть свои специализированные задачи, например, установка связи с внешними устройствами (Bluetooth-принтер для печати чеков, торговое оборудование и др.). Поэтому очень важно выбрать правильный способ интеграции.

Возможности интеграции с 1С

Компания «1С» предоставила несколько способов интеграции со своими продуктами. Выбор одного из них зависит от того, какая перед пользователем поставлена задача.

1. Механизмы интеграции дают возможность реализовать собственный API на стороне приложения 1С. Преимуществом данного метода является стабильность функционирования API, даже если меняется способ реализации в приложении 1С. Но механизм интеграции требует доработки исходного кода продукта 1С, а это влечет за собой трудности при последующем обновлении конфигурации. Для решения этой проблемы были созданы расширения – уникальный механизм, позволяющий надстраивать изменения, не затрагивая конфигурацию. API можно вынести в расширения, тем самым избежав возможных проблем при слиянии конфигураций во время установки новой версии приложения.

2. Механизмы интеграции предоставляют возможность доступа снаружи к модели. При использовании этого метода не требуется создание расширения или изменение конфигурации, что является неоспоримым преимуществом. Однако есть и недостаток: если в конфигурацию были внесены изменения, то придется вносить доработки и в интегрируемое приложение.

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

Механизмы интеграции

Импортирование/экспортирование файлов

Поставим задачу: осуществить двунаправленный обмен данными, например, синхронизация списка товаров. Участники процесса обмена – решение 1С и произвольное приложение.

Решение: написание расширение, способное выгрузить справочник в файл, имеющий определенный формат, и уметь определять этот формат. В платформу заложен механизм сериализации файлов в XML. Сделать это можно, используя метод глобального контекста или посредством объекта XDTO. Метод сериализации можно применять как для импорта, так и для экспорта файлов.

Пример экспорта справочника в XML, используя XDTO:

После небольшого изменения кода справочник отправляется в JSON. Товары записываются в массив, вариант синтаксиса – англоязычный:

Selection = Catalogs.Номенклатура.Select();
While Selection.Next() Do
NomenclatureObject = Selection.GetObject();

NewJSONWriter.WriteStartObject();

NewJSONWriter.WritePropertyName(«Номенклатура»);
NewXDTOSerializer.WriteJSON(NewJSONWriter,
NomenclatureObject, XMLTypeAssignment.Implicit);
NewJSONWriter.WriteEndObject();
EndDo;
NewJSONWriter.WriteEndArray();
NewJSONWriter.WriteEndObject();
NewJSONWriter.Close();
EndProcedure

Все, что остается, – передача данных заинтересованному лицу. Для этого можно использовать интернет-протоколы, которые поддерживает платформа: HTTP, SMTP и другие. Кроме этого, передача данных организуется посредством HTTP и Web-сервисов.

Протокол OData и интерфейс REST

В платформу 1С:Предприятие (с версии 8.3.5) встроена функция автоматического формирования REST интерфейса. Благодаря REST интерфейсу объект из конфигурации становится доступным для получения и редактирования. Протоколом доступ становится OData. Публикация OData осуществляется следующим образом: «Администрирование -> Публикация на веб-сервере». Не забудьте пометить флажок Поддерживаются форматы atom/XML и JSON. После публикации прикладного приложения на веб-сервере к ним открыт доступ для сторонних систем. Для этого достаточно воспользоваться через REST интерфейс HTTP-запросом.

Источники данных

Одним из механизмов обмена являются внешние источники данных (ВИД). Посредством этого объекта конфигурации можно осуществлять обмен с ODBC-совместимой БД. ВИД можно найти в одной из операционных систем – Windows или Linux.

Механизм обмена данными

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

Спектр выполняемых механизмом задач широк. Кроме обмена данными между приложениями, расположенными в разных офисах компании, можно осуществлять обмен данными с интернет-магазином или мобильным приложением.

Одно из основных понятий в МОД – план обмена. Он представляет собой специфичный тип объекта, который определяет состав обмениваемых данных (справочники, документы и т.д.). В плане обмена содержится и информация о том, какие узлы участвовали в обмене. Еще одна важная составляющая МОД – механизм, регистрирующий изменения. Его функция – автоматическое отслеживание изменений данных, что будут переданы пользователям во время обмена данными. Кроме этого, механизм регистрирует изменения, которые были сделаны во время последней синхронизации, тем самым минимизируя количество данных, которые нужно передать при следующей синхронизации.

Механизм осуществляет обмен данными посредством XML-сообщений. В этих сообщениях находится новая информация, которая была создана после последней синхронизации, а также служебные данные. От узла-получателя приходит подтверждение о получении сообщения. Это возможно благодаря функции нумерации сообщений. Нумерация сообщений позволяет избежать такой неприятной ситуации, как повторная передача данных, ведь передаются лишь данные, измененные или созданные после того, как узел-отправитель получил сообщение от узла-получателя о полученных данных. Нумерация сообщений гарантирует надежную передачу информации, даже если сообщение было потеряно или не отправлено.

Внешние компоненты

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

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

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

Архаичные механизмы интеграции

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

Один из таких методов – интеграция с файлами DBF. Второй – технология COM, которая поддерживается ОС Windows. Есть два способа интеграции, использующие COM. Они практически не отличаются друг от друга, за исключением того, что Automation-сервер запускает приложение 1С: Предприятие, а при использовании внешнего соединения запускается лишь COM-сервер.

Кроме этого, COM-технология используется для того, чтобы из кода приложения обратиться к внешним системам, т.е. 1С в этом случае играет роль СОМ-клиента. Но возможно это, еще раз напомним, только на ОС Windows.

Интеграция в типовых конфигурациях

Формат EnterpriseData

EnterpriseData – механизм интеграции с внешними приложениями. Несомненным достоинством этого механизма является то, что он не требует менять исходный код конфигурации. Реализуется EnterpriseData во многих прикладных решениях от компании «1С» («1C:ERP Управление предприятием 2.0», «Комплексная автоматизация 2» и т.д.).

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

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

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

Квитирование сообщений

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

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

Таким образом, приложение 1С при следующей синхронизации отправит лишь те данные, которые будут либо созданы, либо изменены за промежуток времени между синхронизациями.

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

Обмен данными без квитирования

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

Специальные интеграционные решения

Одно из специализированных решений «1С: Конвертация данных» используется и для конвертации между приложениями 1С, и для обмена данными со сторонними приложениями.

Обмен данными с банковскими решениями

Приложение для интеграции с банковскими бизнес-приложениями была разработана давно – это «Клиент-банк». С новой технологией 1С DirectBank можно отправлять документы в банк одним нажатием кнопки прямо из «1С: Предприятие». Для этого не понадобится помощь или установка дополнительных программ или приложений.

Правила конвертации объектов оглавление Обработчики событий

Учебник по 1С Конвертации данных (редакция 2) Правила конвертации свойств

Автор учебника: Фирма «1С»

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

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

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

Отключить обработку данного правила — флаг, позволяет отключить обработку данного свойства, не удаляя его из правил конвертации объектов.

Не замещать значение данного свойства у существующих объектов ИБ — флаг, позволяет отключить обработку данного для объектов информационной базы приемника, которые были найдены по уникальному идентификатору или по полям поиска.

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

ТОЛЬКО ДЛЯ ОБМЕНА V8 — V8

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

Передавать данные в приемник — флаг определяет куда будут помещены данные при загрузке. Непосредственно в найденный для изменения объект.

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

Доступ к этим данным возможен в событии правила конвертации объекта «После загрузки». Например, так:

Если ПараметрыОбъекта <> Неопределено тогда ИмяКонтрагента = ПараметрыОбъекта; КонецЕсли; // Например, если нужен доступ к параметрам табличной части с именем «Товары» Если ПараметрыОбъекта <> Неопределено тогда ТаблицаПараметровТовары = ПараметрыОбъекта; Если ТаблицаПараметровТовары <> Неопределено Тогда Для Каждого СтрокаПараметров Из ТаблицаПараметровТовары Цикл ИмяНоменклатуры = СтрокаПараметров.ИмяНоменклатуры; КонецЦикла; КонецЕсли; КонецЕсли;

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

На закладке «Дополнительно» можно редактировать вхождение правила в определенную группу, а так же его описание. Наименование правила формируется автоматически и недоступно для изменения.

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Правила конвертации объектов оглавление Обработчики событий