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