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

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

Зарегистрирована лицензия уникальной услуги. Проверяет, зарегистрирован ли в системе тарификации сервиса указанный идентифкатор

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

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

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

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

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

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

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

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

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

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

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

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

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

Синтакс-помощник БСП с нейросетевым ассистентом