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

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

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

// Выполняет попытку получить количество свободных лицензий на использование уникальной услуги в системе тарификации сервиса.
//
// Параметры:
//  ИдентификаторПоставщика - Строка - уникальный строковый идентфикатор (код) поставщика услуг в сервисе.
//  ИдентификаторУслуги - Строка - уникальный строковый идентфикатор (код) услуги в сервисе.
//
// Возвращаемое значение:
//  Структура с ключами:
//    * ДоступноЛицензий - Число - максимально доступное абоненту количество лицензий на указанную услугу (если "-1", значит неограниченное количество).
//    * ЗанятоЛицензий - Число - количество уже полученных (использованных) лицензий на услугу.
//    * СвободноЛицензий - Число - количество свободных лицензий (если "-1", значит неограниченное количество).
//
Функция КоличествоЛицензийУникальнойУслуги(ИдентификаторПоставщика, ИдентификаторУслуги) Экспорт
	
	Попытка
		
		ОтветЗанятияУслуги = ОтветЗанятияЛицензий();
		
		ИмяЛицензии = Новый УникальныйИдентификатор;
		ИдентификаторОперации = Новый УникальныйИдентификатор;
		
		ИмяСобытия = ИмяСобытияЖР() + НСтр("ru = 'Получение количества свободных лицензий уникальной услуги из приложения'");
		ЗаголовокКомментария = ЗаголовокКомментария(ИдентификаторПоставщика,
			ИдентификаторУслуги,
			ИмяЛицензии,
			,
			ИдентификаторОперации,
			);
		
		// Предопределенные проверки, которые сразу помогают определить: есть доступ к услуге или нет.
		Результат = РезультатПредопределенныхПроверокОперацийСЛицензиями();
		Если Результат <> Неопределено Тогда
			ОтветЗанятияУслуги.Результат = Результат;
			ОтветЗанятияУслуги.ДоступноЛицензий = -1;
			ОтветЗанятияУслуги.СвободноЛицензий = -1;
			Возврат ОтветЗанятияУслуги;
		КонецЕсли;
		
		Пользователь = Пользователи.ТекущийПользователь();
		
		ПараметрыПодключения = ПараметрыПодключенияКHTTPСервисуТарификацииДляПриложений();
		ПараметрыЗапроса = ПараметрыЗапросаЛицензииУникальнойУслуги(ИдентификаторПоставщика,
			ИдентификаторУслуги,
			ИмяЛицензии,
			ИдентификаторОперации,
			Пользователь);
		
		Ответ = ПолучитьОтветОтHTTPСервиса(ПараметрыПодключения, "/ServiceLicenseStat", "POST", ПараметрыЗапроса);
		
		СтруктураОтвета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.47