Сценарии работы с приложениями системы взаимодействия
Создание нового приложения
Перед созданием нового приложения вам необходимо получить код активации для регистрации приложения.
Для создания нового приложения используйте метод УправлениеПриложениямиВзаимодействия.СоздатьПриложениеВзаимодействия()
.
Для создания приложения нужно указать следующие параметры:
-
КлючиПриложенияВзаимодействия
Экземпляр типа КлючиПриложен ияВзаимодействия
, который хранит открытый и закрытый ключ создаваемого приложения.
Ключи могут быть сгенерированы «1С:Исполнителем» автоматически при конструировании экземпляра типа КлючиПриложенияВзаимодействия
:
новый КлючиПриложенияВзаимодействия()
Также вы можете генерировать ключи внешними утилитами, например keytool.
Можно создать экземпляр КлючиПриложенияВзаимодействия
с сохраненными ранее параметрами:
новый КлючиПриложенияВзаимодействия(ОткрытыйКлюч, ЗакрытыйКлюч)
Здесь ОткрытыйКлюч
и ЗакрытыйКлюч
— это пара ключей в формате:
- массива байтов;
- строк в формате Base64.
-
ИдПользователяПриложения
Ууид
. Идентификатор пользователя приложения.
-
ИмяПользователяПриложения
Строка
. Краткое имя пользователя приложения.
-
ПолноеИмяПользователяПриложения
Строка
. Полное имя пользователя приложения.
-
КодАктивации
Заранее полученный от сервера системы взаимодействия код для регистрации приложения.
-
ПочтаАбонента
Адрес электронной почты пользователя, создающего приложение.
-
ИмяПриложения
Имя приложения.
После вызова метода УправлениеПриложениямиВзаимодействия.СоздатьПриложениеВзаимодействия()
сервер системы взаимодействия вернет набор реквизитов зарегистрированного приложения в экземпляре типа ПараметрыПриложенияВзаимодействия
. Их нужно сохранить для дальнейшего использования:
Все параметры можно сохранить как строки любым доступным способом (в зависимости от дальнейшего использования).
После создания приложения и перед выполнением метода СистемаВзаимодействия.Войти()
нужно вызвать метод СистемаВзаимодействия.Отключиться()
, чтобы отсоединиться от системы взаимодействия. Если не выполнить этого шага, сервер системы взаимодействия будет возвращать ошибку «пользователь уже авторизован».
Подключение и создание приложения
Проверка сертификатов при подключении к серверу системы взаимодействия
При соединении с сервером системы взаимодействия (СистемаВзаимодействия.Подключиться()
) «1С:Исполнитель» проверяет сертификаты. Если проверка сертификата заканчивается неудачей, то выбрасывается исключение ИсключениеСистемыВзаимодействия
.
В целях отладки приложения можно воспользоваться более простым методом СистемаВзаимодействия.ПодключитьсяБезПроверкиСертификата()
, но мы не рекомендуем пользоваться этим методом в реальных приложениях.
знч КодАктивации: Строка = "417929"
знч АдресЭлектроннойПочты: Строка = "ivanov@company.com"
знч ИмяПриложения: Строка = "ИмяПриложения"
знч ИдентификаторПользователя: Ууид = {84eb3ebb-95ae-4dea-a025-adfa8961703c}
знч ИмяПользователя: Строка = "Иван"
знч ПолноеИмяПользователя: Строка = "Иванов Иван"
знч Ключи: КлючиПриложенияВзаимодействия = новый КлючиПриложенияВзаимодействия()
СистемаВзаимодействия.Подключиться("wss://1cdialog.com:443",
"C:\\keystore.jks",
"keystorePassword",
"certPassword")
знч ПараметрыПриложенияСВ =
УправлениеПриложениямиВзаимодействия.СоздатьПриложениеВзаимодействия(Ключи, ИдентификаторПользователя,
ИмяПользователя, ПолноеИмяПользователя,
КодАктивации, АдресЭлектроннойПочты,
ИмяПриложения)
СистемаВзаимодействия.Отключиться()
Проверка сертификатов через хранилище сертификатов Java
Для упрощения работы можно подключаться к серверу системы взаимодействия без указания параметров ФайлХранилища
, ПарольХранилища
и ПарольКлюча
в методе СистемаВзаимодействия.Подключиться()
. Это возможно в том случае, если сертификат, используемый на сервере системы взаимодействия, подписан (выдан) доверенным удостоверяющим центром. Тогда будет использована встроенная проверка сертификата сервера с использованием входящих в его поставку JRE-сертификатов.
Если проверку сертификата, используемого на сервере, нельзя провести с использованием встроенных в Java сертификатов, вызов завершится исключением, а для успешного подключения необходимо будет указать параметры хранилища.
Поддержка файлов сертификатов в формате PKCS12
В параметре ФайлХранилища метода СистемаВзаимодействия.Подключиться()
вы можете указывать путь к сертификату сервера взаимодействия формата PKCS12. Раньше подде рживался только формат JKS.
Получение кода активации и регистрация приложения в «1С:Диалог»
знч ПочтаАбонента = "admin@company.ru"
УправлениеПриложениямиВзаимодействия.ЗапроситьКодАктивации(ПочтаАбонента)
знч КодАктивации = "КодИзПочты"
СистемаВзаимодействия.ЗарегистрироватьПриложение(
ПочтаАбонента = ПочтаАбонента,
ИмяПриложения = "Приложение для торговли",
КодАктивации = КодАктивации)
Ручная установка данных регистрации приложения в системе взаимодействия
Данный способ предназначен для миграции приложения или восстановления данных подключения из резервной копии.
знч ОткрытыйКлюч = "QWERTYU4567=..."
знч ЗакрытыйКлюч = "QWERTYU4567=..."
знч КлючиПриложения = новый КлючиПриложенияВзаимодействия(ОткрытыйКлюч.ВБайты(), ЗакрытыйКлюч.ВБайты())
знч ДанныеРегистрации = новый ДанныеРегистрацииПриложенияВзаимодействия(
Сервер = "wss://1cdialog.com:443",
ИдПриложения = {86669b56-32c9-49bb-9b5b-31cde9a79538},
КлючиПриложения = КлючиПриложения,
ОткрытыйКлючСервера = "QWERTYU4567=...")
СистемаВзаимодействия.УстановитьДанныеРегистрацииПриложен ия(ДанныеРегистрации)
Объединение приложений взаимодействия
Объединение приложений позволяет пользователям этих приложений вести переписку между собой.
знч ТекущееПриложение = СистемаВзаимодействия.ПолучитьТекущееПриложение()
знч ИдВторогоПр иложения = {6c79fc60-2373-11ed-861d-0242ac120002}
знч ОбъединениеПриложений = новый ОбъединениеПриложенийВзаимодействия(ТекущееПриложение.Ид, ИдВторогоПриложения,
РежимСопоставленияПользователейВзаимодействия.ПоПолномуИмени)
СистемаВзаимодействия.ОбъединитьПриложения(ОбъединениеПриложений)
Отмена всех объединений приложений взаимодействия у абонента
знч ОбъединенияПриложений = СистемаВзаимодействия.ПолучитьОбъединенияПриложений()
для Объединение из ОбъединенияПриложений
СистемаВзаимодействия.ОтменитьОбъе динениеПриложений(Объединение.ИдПриложения, Объединение.ИдПарногоПриложения)
;
Получение необъединенных приложений взаимодействия
знч СписокПриложений = СистемаВзаимодействия.ПолучитьПриложенияАбонента()
знч ОбъединенияПриложений = СистемаВзаимодействия.ПолучитьОбъединенияПриложений()
пер ПриложенияБезОбъединения = новый Массив<ПриложениеВзаимодействия>()
для Приложение из СписокПриложений
пер ОбъединениеНайдено = Ложь
для Объединение из ОбъединенияПриложений
если Приложение.Ид != Объединение.ИдПриложения или Приложение.Ид != Объединение.ИдПарногоПриложения
ОбъединениеНайдено = Истина
прервать
;
;
если не ОбъединениеНайдено
ПриложенияБезОбъединения.Добавить(Приложение)
;
;