Создание нового приложения
Перед созданием нового приложения вам необходимо получить код активации для регистрации приложения.
Для создания нового приложения воспользуйтесь методом СистемаВзаимодействия.СоздатьПриложение().
- КлючиПриложения
- Экземпляр типа КлючиПриложения, который хранит открытый и закрытый ключ создаваемого приложения.
- ИдентификаторПользователяПриложения
- Идентификатор пользователя приложения типа Ууид
- ИмяПользователяПриложения
- Краткое имя пользователя приложения типа Строка
- ПолноеИмяПользователяПриложения
- Полное имя пользователя приложения типа Строка
- КодАктивации
- Заранее полученный от сервера системы взаимодействия код для регистрации приложения
- АдресЭлектроннойПочты
- Адрес электронной почты пользователя, создающего приложение
- ИмяПриложения
- Имя приложения
После вызова метода СистемаВзаимодействия.СоздатьПриложение() сервер системы взаимодействия вернет набор реквизитов зарегистрированного приложения в экземпляре типа ПараметрыПриложенияСистемыВзаимодействия. Их нужно сохранить для дальнейшего использования:
- ИдентификаторПриложения — идентификатор приложения на сервере системы взаимодействия типа Ууид;
- ОткрытыйКлюч — открытый ключ системы взаимодействия типа Строка.
Все параметры можно сохранить как строки любым доступным способом (в зависимости от дальнейшего использования).
После создания приложения, перед выполнением метода СистемаВзаимодействия.Войти() нужно вызвать метод СистемаВзаимодействия.Отключиться(), чтобы отсоединиться от системы взаимодействия. Если не выполнить этого шага, сервер системы взаимодействия будет возвращать ошибку «пользователь уже авторизован».
Подключение и создание приложения
Проверка сертификатов при подключении к серверу системы взаимодействия
При установке соединения с сервером системы взаимодействия (СистемаВзаимодействия.Подключиться()) «1С:Шина» проверяет сертификаты. Если проверка сертификата закончилась неудачей, то попытка подключения будет завершена исключением ИсключениеСистемыВзаимодействия.
В целях отладки приложения можно воспользоваться более простым методом СистемаВзаимодействия.ПодключитьсяБезПроверкиСертификата, но мы не рекомендуем пользоваться этим методом при реальной эксплуатации.
пер КодАктивации : Строка = "417929"
пер АдресЭлектроПочты : Строка = "user@domain"
пер ИмяПриложения : Строка = "имяПриложения"
пер ИдентификаторПользователя : Ууид = Ууид{84eb3ebb-95ae-4dea-a025-adfa8961703c}
пер ИмяПользователя : Строка = "Иван"
пер ПолноеИмяПользователя : Строка = "Иванов Иван"
пер Ключи : КлючиПриложения = новый КлючиПриложения()
// подключение
СистемаВзаимодействия.Подключиться("wss://develop.ecs.test:9094?transport=websocket&version=4",
"C:\\keystore.jks",
"passpass",
"passpass")
// создание приложения получение его параметров
пер ПараметрыПриложенияСВ =
СистемаВзаимодействия.СоздатьПриложение(Ключи, ИдентификаторПользователя,
ИмяПользователя, ПолноеИмяПользователя,
КодАктивации, АдресЭлектроПочты,
ИмяПриложения)
//
// ... возможна дальнейшая работа с системой взаимодействия ...
//
// отключение
СистемаВзаимодействия.Отключиться()
Проверка сертификатов через хранилище сертификатов Java
Для упрощения работы можно подключаться к серверу системы взаимодействия без указания параметров ФайлХранилища, ПарольХранилища и ПарольКлюча в методе СистемаВзаимодействия.Подключиться(). Это возможно в том случае, если сертификат, используемый на сервере системы взаимодействия, подписан (выдан) доверенным удостоверяющим центром. Тогда будет использована встроенная проверка сертификата сервера с использованием входящих в его поставку jre-сертификатов.
Если проверку сертификата, используемого на сервере, нельзя провести с использованием встроенных в java сертификатов, вызов завершится исключением, а для успешного подключения необходимо будет указать параметры хранилища.
Поддержка файлов сертификатов в формате pkcs12
В параметре ФайлХранилища метода СистемаВзаимодействия.Подключиться() вы можете указывать путь к сертификату сервера взаимодействия формата pkcs12. Раньше поддерживался только формат jks.
Обновление приложения
пер КодАктивации = "417929"
пер АдресЭлектроПочты = "user@domain"
пер ИмяПриложения = "имяПриложения"
пер ИдПользователя = Ууид{84eb3ebb-95ae-4dea-a025-adfa8961703c}
пер КлючиПриложения = новый КлючиПриложения(
"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJMNOm9mUN60O/ylCd0yenNt06L54+x56d
Uq+ot8s+NnznsfkfY8ieNUqAN/T00kP4qMRKCVgdZbJP+pgSDykB0CAwEAAQ==",
"MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEAkw06b2ZQ3rQ7/KUJ3T
J6c23Tovnj7Hnp1Sr6i3yz42fOex+R9jyJ41SoA39PTSQ/ioxEoJWB1lsk/6mBIPKQ
HQIDAQABAkAqxpZRAXpUzikE/R05cw2btj7yEa7zgyM6Fx56pPPPGlpaUC4J11nOFu
EspEJFQLA0UJqqFjYGl4IQ4qFaYzYhAiEAxHwKpJGKEXd1aSA6CT2bVSzIAeOnIbUQ
P5rgLAb75VMCIQC/mAZP/BkDyhOuIq/2wkEwIIWk5AXmkJ7lR+7La1UWzwIhAL+mDe
t/WiC3WHp1yKYCxWRLDbtqBjdGmNaxhj7rgP+pAiEApdpYPI0iqmEXwDpO0PE/tQWy
Kxco9Hpk0l3+nSEAu4kCIQC0JJQGKrl69Jsuqo/WkFNJRfyMfqDARTVsw/Bfl6IRBA
==")
// параметры ранее созданного приложения СВ, ключ приложения знать не обязательно
пер ПараметрыПриложенияСВ = новый ПараметрыПриложенияСистемыВзаимодействия(
Ууид{6c659615-0741-4e56-0000-6705c2a35298},
"")
пер ИдПриложенияСВ : Ууид = ПараметрыПриложенияСВ.Идентификатор
// подключение например можно явно указать таймаут - 30 сек
try
СистемаВзаимодействия.Подключиться("wss://develop.ecs.test:9094?transport=websocket&version=4",
"C:\\keystore.jks", "passpass", "passpass", 30)
catch E : CollaborationSystemException
Консоль.WriteError("Не удалось 'Подключиться': " + E)
;
// обновление приложения получение его параметров (новый публичный ключ)
try
пер ПараметрыПриложенияСВ = СистемаВзаимодействия
.ОбновитьПриложение(ИдПриложенияСВ, КлючиПриложения,
ИдПользователя, ИмяПользователя,
ПолноеИмяПользователя, КодАктивации,
АдресЭлектроПочты, ИмяПриложения)
// или
пер ПараметрыПриложенияСВ = СистемаВзаимодействия
.ОбновитьПриложение(ПараметрыПриложенияСВ.Идентификатор,
КлючиПриложения,
ИдПользователя, ИмяПользователя,
ПолноеИмяПользователя, КодАктивации,
АдресЭлектроПочты, ИмяПриложения)
Консоль.WriteError("Сохраните параметры приложения.")
Консоль.WriteError("Идентификатор приложения : "
+ ПараметрыПриложенияСВ.ИдентификаторПриложения)
Консоль.WriteError("Открытый ключ приложения : " + ПараметрыПриложенияСВ.ОткрытыйКлюч)
catch E : CollaborationSystemException
Консоль.WriteError("Не удалось 'СоздатьИлиОбновитьПриложение': " + E)
;
//
// ... возможна дальнейшая работа с системой взаимодействия ...
//
// отключение
СистемаВзаимодействия.Отключиться()