Интеграция различных приложений с платформой 1С:Предприятие по протоколу OData | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 27 апреля, печатный экземпляр отправим 1 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №40 (226) октябрь 2018 г.

Дата публикации: 06.10.2018

Статья просмотрена: 485 раз

Библиографическое описание:

Фаридонов, Р. К. Интеграция различных приложений с платформой 1С:Предприятие по протоколу OData / Р. К. Фаридонов. — Текст : непосредственный // Молодой ученый. — 2018. — № 40 (226). — С. 25-29. — URL: https://moluch.ru/archive/226/52712/ (дата обращения: 19.04.2024).



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

Ключевые слова: 1С:Предприятие, технология COM, REST-интерфейс, протокол OData, XML, JSON.

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

Существует множество подходов для интеграции платформы 1С:Платформы со сторонними приложениями. Рассмотрим распространенные три метода:

  1. Интеграция с помощью технологии COM (Component Object Model — модель компонентного объекта)
  2. Использование встроенных механизмов интеграции платформы.
  3. Использование подхода REST (Representational State Transfer — передача представительного состояния)

1. Технология COM является одной из первых технологий по интеграции данных между приложениями. Она используется в пакете программ Microsoft Office.

Достоинство подхода: Этот метод поддерживается множеством приложений, так как продвигается компанией Microsoft, у которой данная технология используется во взаимодействии программ, входящих в состав Microsoft Office.

Недостатки подхода: Устаревший способ. Для его работы необходимо функционирование сервера 1С:Предприятие в системе Windows. В случае написания интерфейсов необходимо использование двух языков программирования (С и.idl). [1]

Пример кода: производим соединение к другой базе: [2]

НовыйСервер = "МойСервер";

НоваяБазаДанных = "МояБазаДанных";

Пользователь = "Администратор";

Пароль = "123";

V82 = Новый COMобъект("V82.ComConnector");

СтрокаПодключения = "srvr='" + СокрЛП(НовыйСервер)

+ "'; ref='" + СокрЛП(НоваяБазаДанных)

+ "'; usr='" + СокрЛП(Пользователь)

+ "'; pwd='" + СокрЛП(Пароль) + "';";

БазаИсточник = V82.Connect(СтрокаПодключения);

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

СсылкаНаКонтрагент=БазаИсточник.Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", ИНН);

КонтрагентГоловной=БазаИсточник.Справочники.Контрагенты.СоздатьЭлемент();

Предопределенные реквизиты COM-объекта имеют англоязычную транскрипцию, остальные – русскую.

КонтрагентСОМ=БазаИсточник.Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", ИНН);

Код = КонтрагентСОМ.Code;

Наименование = КонтрагентСОМ.Description;

НаименованиеПолное = КонтрагентСОМ.НаименованиеПолное;

При получении предопределенных реквизитов в русскоязычном представлении может некорректно отработать метод:

БазаИсточник.ЗаполнитьЗначениеСвойств(ТекущийКонтрагент, КонтрагентCOM);

Где ТекущийКонтрагент – имеет тип обычной переменной, а КонтрагентCOM – COM-объект.

Конструкторы в базе создаются через метод NewObject:

СтрокаUID = БазаИсточник.XMLСтрока(СсылкаНаКонтрагента);

Запрос = БазаИсточник.NewObject("Запрос");

Запрос.УстановитьПараметр("UID",БазаИсточник.NewObject("УникальныйИдентификатор", СтрокаUID));

Запрос.Текст = "Текст";

2. Встроенные механизмы дают программисту возможность произвести вручную выгрузку данных в формате XML или JSON. Затем эти данные можно отправить конечному пользователю через основные протоколы HTTP, FTP. [3]

Пример извлечения данных в формат XML:

Функция Объект_В_XML(Объект)

ЗаписьXML = Новый ЗаписьXML();

ЗаписьXML.УстановитьСтроку();

ЗаписатьXML(ЗаписьXML, Объект);

Возврат ЗаписьXML.Закрыть();

КонецФункции

Извлечение XML через механизм XML Data Transfer Objects (XDTO):

&НаСервере

Процедура XMLНаСервере()

НовыйСериализаторXDTO = СериализаторXDTO;

НоваяЗаписьXML = Новый ЗаписьXML();

НоваяЗаписьXML.ОткрытьФайл("C:\Номенклатура.xml", "UTF-8");

НоваяЗаписьXML.ЗаписатьОбъявлениеXML();

НоваяЗаписьXML.ЗаписатьНачалоЭлемента("СправочникНоменклатура");

Выборка = Справочники.Номенклатура.Выбрать();

Пока Выборка.Следующий() Цикл

ОбъектНоменклатура = Выборка.ПолучитьОбъект();

НовыйСериализаторXDTO.ЗаписатьXML(НоваяЗаписьXML, ОбъектНоменклатура, НазначениеТипаXML.Явное);

КонецЦикла;

НоваяЗаписьXML.ЗаписатьКонецЭлемента();

НоваяЗаписьXML.Закрыть();

КонецПроцедуры

Небольшое переписывание данного кода даст возможность экспортировать данные в формате JSON.

При выполнении программного кода данные XML выглядят так:

Рис. 1. XML-данные.

Данные в формате JSON выглядят более просто:

{

"СправочникНоменклатура": [ {

"Номенклатура": {

"#value": {

"IsFolder": false,

"Ref": "86bff087-8f2e-11e8-8d00-eefe535894eb",

"DeletionMark": false,

"Parent": "a80961a5-9d48-11e8-8d51-f46d04a4dd84",

"Code": "000000003",

"Description": "Витая пара",

"ОсновнаяЕдиницаИзмерения": "dfd7a36f-8e7f-11e8-8cfd-f46d04a4dd84",

"ОсновнаяЦена": 15,

"ОсновнойПоставщик": "b5d4fa4d-9c5e-11e8-8d46-f46d04a4dd84",

"Валюта": "e92411a3-8dc6-11e8-8cf9-f46d04a4dd84"} } }

Достоинство подхода: использование распространенных и хорошо читаемых человеком форматов XML и JSON. Не требуется создание “связи” между интегрируемыми приложениями, что обеспечивает надежность обмена данными.

Недостатки подхода: отсутствует автоматическая обработка данных со стороны стороннего приложения.

3. REST — это подход к обработке и представлению данных, которая использует для обмена данными протокол OData. Для связи с приложениями протокол OData отправляет HTTP-запросы и получает от них данные в формате XML и JSON. Данные форматы и протоколы являются стандартными инструментами для обеспечения взаимодействия компонентов в Интернете, этим и объясняется универсальность применения подхода среди приложений.

Преимущество подхода: в большинстве случаев не требуется написание программного кода, использование стандартных HTTP-запросов, получение данных в формате XML или JSON.

Недостатки подхода: требуется установить веб-сервер и модуль расширения веб-сервера из поставки платформы.

В качестве веб-сервера возможно использовать Apache. Затем в конфигураторе выбираем меню “Администрирование”, выбираем команду “Публикация на веб-сервере”. В возникшем окне требуется на латинском языке указать имя базы, к которой будет предоставляться доступ, используемый веб-сервер, путь к каталогу публикации. Соответственно выбираем галочку “Публиковать стандартный интерфейс OData”. [4]

скриншот публикации

Рис. 2. Скриншот окна «Публикация на веб-сервере».

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

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

Литература:

  1. Оберг, Р. Д.. Технология COM+/ Р. Д. Оберг. // Основы и программирование — М.: «Вильямс», 2000. — С. 480.
  2. Гайдабура, В. Три кита работы с COM-объектами. Работать через COM-соединение проще, чем вы думаете. / В. Гайдабура // Программирование: практика программирования. — URL: https://infostart.ru/public/170424/ (дата обращения: 07.09.2018).
  3. Способы интеграции с 1С. — URL: https://habr.com/company/1c/blog/308420/ (дата обращения: 07.09.2018).
  4. Кинащ Д. Практика доступа в базу 1С через протокол OData. Чтение данных. / Д. Кинаш // Администрирование: сервисные утилиты. — URL: https://infostart.ru/public/711302/ (дата обращения: 07.09.2018).
Основные термины (генерируются автоматически): XML, JSON, COM, HTTP, REST, данные, недостаток подхода, формат, FTP, программный код.


Ключевые слова

JSON, 1С:Предприятие, технология COM, REST-интерфейс, протокол OData, XML

Похожие статьи

Разработка мобильного приложения для таксатора

В xml-файле описано в виде xml-кода расположение визуализируемых объектов. При запуске активности система Android автоматически распознает размер экрана мобильного устройства и приводит выводимый контент в соответствие с разметкой, описанной в xml-файле.

Похожие статьи

Разработка мобильного приложения для таксатора

В xml-файле описано в виде xml-кода расположение визуализируемых объектов. При запуске активности система Android автоматически распознает размер экрана мобильного устройства и приводит выводимый контент в соответствие с разметкой, описанной в xml-файле.

Задать вопрос