Освободить лицензию уникальной услуги. Выполняет попытку освободить лицензию на уникальную услугу в системе тарификации сервиса.
// Выполняет попытку освободить лицензию на уникальную услугу в системе тарификации сервиса.
//
// Параметры:
// ИдентификаторПоставщика - Строка - уникальный строковый идентфикатор (код) поставщика услуг в сервисе.
// ИдентификаторУслуги - Строка - уникальный строковый идентфикатор (код) услуги в сервисе.
// ИмяЛицензии - Строка - Строка(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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОсвободитьЛицензииЛимитированнойУслуги (БСП)
ЗанятьЛицензиюУникальнойУслуги (БСП)
КоличествоЛицензийУникальнойУслуги (БСП)
ЗапроситьЛицензииУникальныхУслуг_ОбработчикОбновления (БСП)
ЗапроситьЛицензииУникальныхУслуг_РегламентноеЗадание (БСП)
ЗарегистрированаЛицензияУникальнойУслуги (БСП)
ЗапроситьЛицензииУникальныхУслугУМенеджераСервиса (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)