Механизм интеграции объектов предназначен для обмена объектными данными между приложениями 1С и внешними сервисами. Механизм обеспечивает транспортировку с гарантированной доставкой и не зависит от формата передаваемых данных, не знает об объектах прикладной логики и оперирует только идентификаторами объектов.
Примером обработки для эмуляции синхронизации является обработка ИнтеграцияОбъектовОбластейДанных.epf, встроенная в конфигурацию 1cv8_service.cf из дистрибутива Библиотеки технологии сервиса.
Получение данных из приложения
- Запрос – получатель запрашивает для себя изменения
- Ожидание – получатель проверяет готовность запрошенных данных
- Получение – получатель загружает данные к себе
- Подтверждение – получатель обрабатывает данные и подтверждает, что изменения загружены и обработаны.
Отправка данных в приложение
- Отправитель формирует пакет данных и отправляет файл данных для обработки
- Отправитель ожидает завершения обработки данных
Отправка оповещений из приложения 1С в приложение провайдера
- Приложение отправляет оповещение в приложение провайдера при изменении данных
- Приложение провайдера забирает изменения
- Приложение провайдера подтверждает изменения
Отправка команд в приложение
В прикладном решении может быть реализован механизм обработки команд от внешней учетной системы.
Примеры команд:
- Создание объектов (документов, справочников)
- Выполнение расчетов
Если в процессе выполнения команды был создан объект, то информация о нем будет возвращена в результате на 2-м шаге.
Программный интерфейс подсистемы
Программный интерфейс содержится в общем модуле ИнтеграцияОбъектовОбластейДанных. Объединяет интерфейс объектного хранилища и интерфейс для работы с объектами подсистемы.
Определяемый тип УчетныеСистемыИнтеграцииОбластейДанных предназначен для определения метаданных учетных систем.
По ссылке на объект этого типа будут сохраняться настройки в безопасное хранилище:
- Пароль (Строка) - пароль аутентификации в сервисе приема оповещений (используется при basic-аутентификации)
- ПарольСертификата (Строка) - пароль сертификата (используется, если задано свойство ИспользоватьСертификат);
- ДанныеСертификата (ДвоичныеДанные) - двоичные данные сертификата в Base64 (используется, если задано свойство ИспользоватьСертификат)
- КлючПодписи (Строка) - секретное слово, для подписи отправляемых данных. Подпись выполняется с помощью алгоритма HMACSHA256.
Также этот тип определяет:
- разрез хранения объектов к отправке в регистре сведений ОбъектыКОтправке.
- хранение настроек учетных систем в регистре сведений НастройкиУчетныхСистем.
В регистре сведений НастройкиУчетныхСистем хранятся настройки для определения учетной системы и для отправки оповещений.
- Пользователь (СправочникСсылка.Пользователи) - для определения учетной системы по авторизованному пользователю при обращении к API.
- ОповещатьОбИзменениях (Булево) - признак использования оповещений при создании/изменении данных в приложении
- АдресСервиса (Строка) - адрес сервиса приема оповещений об изменениях
- СпособАутентификации (ПеречислениеСсылка.СпособыАутентификации) - способ аутентификации в сервисе приема оповещений
- Логин (Строка) - логин аутентификации в сервисе приема оповещений (используется при basic-аутентификации)
- ИспользоватьСертификат (Булево) - признак использования сертификата при установке соединения с сервисом приема оповещений
- ИмяСертификата (Строка) - имя файла сертификата
- ПодписыватьДанные (Булево) - признак использования подписи данных при отправке их в сервис приема оповещений
Интерфейс объектного хранилища
Методы интерфейса объектного хранилища для DataTransfer.
- Описание - метод не поддерживается
- Данные - метод не поддерживается
- Загрузить - основной метод работы с объектным хранилищем интеграции объектов.
Поддерживаются идентификаторы данных для метода Загрузить:
- setup - для установки настроек учетной системы
- get - для получения данных из приложения
- post - для добавления данных в приложение
- confirm - для подтверждения получения данных от приложения
- execute - для отправки команды на выполнение действий
Методы программного интерфейса подсистемы
Находятся в общем модуле ИнтеграцияОбъектовОбластейДанных.
Процедура ДобавитьОбъектКОтправке
Позволяет добавить объект к отправке во внешнюю учетную систему.
Параметры метода:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных - учетная система.
- ИдентификаторОбъекта - Строка(50) - идентификатор объекта, должен соответствовать требованиям к именованию файлов операционной системы.
- Обработчик - Строка(50) - идентификатор обработчика объекта.
- ДанныеОбъекта - ДвоичныеДанные - данные объекта к отпрвке (если не указано, данные будут запрошены перед отправкой).
Процедура УдалитьОбъектКОтправке
Позволяет удалить объект из списка объектов к отправке в учетную систему.
Параметры метода:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных - учетная система.
- ИдентификаторОбъекта - Строка(50) - идентификатор объекта
- Обработчик - Строка(50) - идентификатор обработчика объекта.
Функция ОповеститьОбИзмененииОбъекта
Выполняет оповещение внешней учетной системы об изменении объекта в приложении в соответствие с настройками оповещения. При использовании оповещений нужно убедиться, что данные объекта подготовлены заранее. Если данные не подготовлены, отправка оповещения не выполняется.
Параметры метода:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных - учетная система.
- ИдентификаторОбъекта - Строка(50) - идентификатор объекта
- ВызыватьИсключение - Булево - признак вызова исключения при неудачной отправке оповещения.
Функция Настройки
Возвращает настройки учетной системы.
Параметры метода:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных - учетная система.
- КлючиНастроек - Строка, Массив - ключи настроек, по которым нужно вернуть значения.
Функция НовыйРезультатыВыполненияКоманды
Возвращает шаблон для помещения результатов выполнения команды.
Возвращаемое значение:
- ТаблицаЗначений - шаблон выполнения команды для возврата результатов. Содержит колонки:
- ИдентификаторОбъекта - Строка(50) - идентификатор объекта.
- Обработчик - Строка(50) - идентификатор обработчика.
Методы, возвращающие коды возврата по имени
Могут использоваться в коде учетной системы при выполнении обработки или подготовки данных, а также при обработке подтверждений.
Находятся в общем модуле ИнтеграцияОбъектовОбластейДанныхСловарь.
- КодВозвратаОшибкаДанных - возвращает число 10400
- КодВозвратаВнутренняяОшибка - возвращает число 10500
- КодВозвратаВыполненоСПредупреждениями - возвращает число 10240
- КодВозвратаВыполнено - возвращает число 10200
- КодВозвратаНеНайдено - возвращает число 10404
Возвращаемое значение
- Число - стандартный код возврата по имени метода
Реализация программного интерфейса учетной системы в прикладном решении
Программный интерфейс объекта учетной системы обеспечивает работу механизма интеграции и реализуется разработчиком при встраивании подсистемы ИнтеграцияОбъектовОбластейДанных.
При встраивании подсистемы в прикладное решение разработчик должен создать объект метаданных для хранения учетных систем. Это может быть справочник, документ или план видов характеристик.
Включить объект в состав определяемого типа УчетныеСистемыИнтеграцииОбластейДанных.
Установить для объекта признаки общих реквизитов:
- ОбластьДанныхВспомогательныеДанные = Автоматически
- ОбластьДанныхОсновныеДанные = Автоматически
В модуле менеджера объекта должен быть реализован программный интерфейс, включающий методы, приведенные ниже.
Процедура УстановитьНастройки
Предназначена для обработки устанавливаемых настроек учетной системы, полученных от внешней учетной системы.
Параметры:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных
- ПотокДанных - ФайловыйПоток, ПотокВПамяти - данные настроек (передаются в формате json)
- КодВозврата - Число - код возврата обработчика установки настроек (по умолчанию - 10200).
- Ошибка - Булево - признак ошибки (по умолчанию - Ложь)
- СообщениеОбОшибке - Строка - подробности ошибки (по умолчанию не заполнено).
- СтандартнаяОбработка - Булево - признак стандартной обработки.
Процедура УстановитьПраваДоступа
(при использовании БТС версии начиная с 2.0.1.6)
Устанавливает права пользователя, от имени которого обращается внешняя учетная система.
Параметры метода:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных - учетная система.
- Пользователь - СправочникСсылка.Пользователи - пользователь, от имени которого обращается внешняя учетная система.
Установка прав доступа должна быть определена прикладным разработчиком в соответствии с используемой ролевой моделью.
Для работы интеграции объектов пользователю нужно предоставить роль УдаленныйДоступПередачаДанных.
Функция ТипУчетнойСистемы
Возвращает идентификатор типа учетной системы для определения менеджера объекта, если ссылки на учетную систему с пользователем обратившейся внешней системы еще не существует.
Функция ДанныеОбъекта
Возвращает двоичные данныеобъекта, которые будут переданы в составе zip-архива во внешнюю учетную систему.
Параметры:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных
- ИдентификаторОбъекта - Строка(50) - идентификатор объекта.
- Обработчик - Строка(50) - обработчик данных объекта.
Возвращаемое значение:
- ДвоичныеДанные - данные объекта.
Процедура ОбработатьПодтверждения
Предназначена для обработки подтверждений, полученных от учетной системы после принятия ей файлов данных.
В ней можно определить действия с интегрируемыми объектами, по которым пришли подтверждения.
Параметры:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных
- Подтверждения - Соответствие
- Ключ - Строка - это идентификатор объекта
- Значение - Структура
- Версия - Строка - версия объекта
- КодВозврата - Число - код возврата, определяется во внешней учетной системе. Рекомендуемые коды возврата см. модуле ИнтеграцияОбъектовОбластейДанныхСловарь
- Ошибка - Булево - признак ошибки (по умолчанию - Ложь)
- СообщениеОбОшибке - Строка - подробности ошибки (по умолчанию не заполнено)
- СтандартнаяОбработка - Булево - признак стандартной обработки. Если Ложь, то у обработанные объекты не будут удалены из списка объектов к отправке.
Функция ОбработатьДанные
Предназначена для обработки данных объектов, получаемых от внешней учетной системы.
Параметры:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных - учетная система.
- ИдентификаторОбъекта - Строка(50) - идентификатор объекта для обработка
- ПотокДанных - ФайловыйПоток, ПотокВПамяти - данные объекта
- Обработчик - Строка - идентификатор обработчика
- КодВозврата - Число - код возврата обработчика (по умолчанию - 10200)
- Ошибка - Булево - признак ошибки (по умолчанию - Ложь)
- СообщениеОбОшибке - Строка - подробности ошибки (по умолчанию не заполнено).
Функция ВыполнитьКоманду
Обработчик выполнения команды от учетной системы.
Параметры:
- УчетнаяСистема - ОпределяемыйТип.УчетныеСистемыИнтеграцииОбластейДанных - учетная система.
- ПотокДанныхКоманды - ФайловыйПоток, ПотокВПамяти - данные команды.
- КодВозврата - Число - код возврата обработчика (по умолчанию - 10200)
- Ошибка - Булево - признак ошибки (по умолчанию - Ложь)
- СообщениеОбОшибке - Строка - подробности ошибки (по умолчанию не заполнено).
Возвращаемое значение:
- Неопределено - если не подразумевается создание объектов, или в процессе выполнения произошла ошибка.
или
ТаблицаЗначений - результаты выполнения команды, информация о созданных или измененных объектах
(см. ИнтеграцияОбъектовОбластейДанных.НовыйРезультатыВыполненияКоманды).
Собственные прикладные методы
Также в справочнике могут быть реализованы другие методы, например для вызов программного интерфейса по регистрации или удалению объектов к отправке.