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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз