ЗанятьЛицензиюУникальнойУслуги (БСП)

Автор: 1С
ОбщийМодуль.Тарификация
БСП

Занять лицензию уникальной услуги. Выполняет попытку получить лицензию на использование уникальной услуги в системе тарификации сервиса.

// Выполняет попытку получить лицензию на использование уникальной услуги в системе тарификации сервиса.
//
// Параметры:
//  ИдентификаторПоставщика - Строка - уникальный строковый идентфикатор (код) поставщика услуг в сервисе.
//  ИдентификаторУслуги - Строка - уникальный строковый идентфикатор (код) услуги в сервисе.
//  ИмяЛицензии - Строка - Строка(200) уникальное строковое представление лицензии, ПОНЯТНОЕ ПОЛЬЗОВАТЕЛЮ.
//  ИдентификаторОперации - УникальныйИдентификатор - уникальный идентификатор операции, потребуется для подтверждения.
//  КонтекстЛицензии - Строка - Строка(200) контекст лицензия, указывающий уникальность лицензии.
//
// Возвращаемое значение:
//  Структура с ключами:
//    * Результат - Булево - результат выполнения (Истина = лицензия успешно получена).
//    * ДоступноЛицензий - Число - максимально доступное абоненту количество лицензий на указанную услугу (если "-1", значит неограниченное количество).
//    * ЗанятоЛицензий - Число - количество уже полученных (использованных) лицензий на услугу.
//    * СвободноЛицензий - Число - количество свободных лицензий (если "-1", значит неограниченное количество).
//
Функция ЗанятьЛицензиюУникальнойУслуги(ИдентификаторПоставщика, ИдентификаторУслуги, ИмяЛицензии, ИдентификаторОперации, КонтекстЛицензии = "") Экспорт
	
	Попытка
		
		ОтветЗанятияУслуги = ОтветЗанятияЛицензий();
		
		ИмяСобытия = ИмяСобытияЖР() + НСтр("ru = 'Заем лицензии уникальной услуги из приложения'");
		ЗаголовокКомментария = ЗаголовокКомментария(ИдентификаторПоставщика,
			ИдентификаторУслуги,
			ИмяЛицензии,
			,
			ИдентификаторОперации,
			,
			КонтекстЛицензии);
		
		// Предопределенные проверки, которые сразу помогают определить: есть доступ к услуге или нет.
		Результат = РезультатПредопределенныхПроверокОперацийСЛицензиями();
		Если Результат <> Неопределено Тогда
			ОтветЗанятияУслуги.Результат = Результат;
			ОтветЗанятияУслуги.ДоступноЛицензий = -1;
			ОтветЗанятияУслуги.СвободноЛицензий = -1;
			Возврат ОтветЗанятияУслуги;
		КонецЕсли;
		
		Пользователь = Пользователи.ТекущийПользователь();
		
		ПараметрыПодключения = ПараметрыПодключенияКHTTPСервисуТарификацииДляПриложений();
		ПараметрыЗапроса = ПараметрыЗапросаЛицензииУникальнойУслуги(ИдентификаторПоставщика,
			ИдентификаторУслуги,
			ИмяЛицензии,
			ИдентификаторОперации,
			Пользователь,
			,
			КонтекстЛицензии);
		
		Ответ = ПолучитьОтветОтHTTPСервиса(ПараметрыПодключения, "/UniqueServiceLicense", "POST", ПараметрыЗапроса);
		
		Если Ответ.КодСостояния = 200 Или Ответ.КодСостояния = 400 Тогда
			СтруктураОтветаHTTP = СтруктураОтветаHTTP(Ответ.ПолучитьТелоКакСтроку());
		КонецЕсли;
		
		Если Ответ.КодСостояния = 200 Тогда
			СформироватьОтветЗанятияЛицензий(ОтветЗанятияУслуги, СтруктураОтветаHTTP);
			ЗаписатьИнформацию(ИмяСобытия, ЗаголовокКомментария, НСтр("ru = 'Успех'"));
			Возврат ОтветЗанятияУслуги;
		ИначеЕсли Ответ.КодСостояния = 400 Тогда
			ВызватьИсключение СтруктураОтветаHTTP.ErrorMessage;
		Иначе
			ВызватьИсключение НСтр("ru = 'Код возврата веб-сервера:'") + Строка(Ответ.КодСостояния);
		КонецЕсли;
		
	Исключение
		Комментарий = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
		ЗаписатьОшибку(ИмяСобытия, ЗаголовокКомментария, Комментарий);
		ВызватьИсключение Комментарий;
	КонецПопытки;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ОсвободитьЛицензиюУникальнойУслуги (БСП)

КоличествоЛицензийУникальнойУслуги (БСП)

ЗапроситьЛицензииУникальныхУслуг_ОбработчикОбновления (БСП)

ЗапроситьЛицензииУникальныхУслуг_РегламентноеЗадание (БСП)

ЗанятьЛицензииЛимитированнойУслуги (БСП)

ЗарегистрированаЛицензияУникальнойУслуги (БСП)

ЗапроситьЛицензииУникальныхУслугУМенеджераСервиса (БСП)

ОсвободитьЛицензииЛимитированнойУслуги (БСП)

КоличествоЛицензийЛимитированнойУслуги (БСП)

TurboConf ИР адаптер 2.63