ДоступноПодключениеТестовогоПериода (БСП)

Автор: 1С
ОбщийМодуль.ПодключениеСервисовСопровождения
БСП

Доступно подключение тестового периода. Выполняет проверку возможности подключения тестового периода для пользователя.

// Выполняет проверку возможности подключения тестового периода для пользователя.
// Перед запросом доступных тестовых периодов происходит проверка кэша, если данные
// о доступных тестовых периодах были получены в течение 24 часов, используется информация
// из кэша. В противном случае производится запрос на получение обновленной информации
// из сервисов Портала 1С:ИТС. Функцию необходимо использовать для определения
// потребности в отображении элемента управления подключения тестового периода.
// Функцию следует использовать, если целевой сервис не подключен.
//
// Параметры:
//  Идентификаторы - Массив - содержит идентификаторы сервисов в системе Портал 1С:ИТС.
//
// Возвращаемое значение:
//  Структура - содержит информацию о доступных тестовых периодах сервисов сопровождения:
//    *Ошибка - Булево - Истина, если при обновлении кэша были ошибки;
//              Ошибка может возникнуть в случае:
//               - на текущий момент существую запросы на подключение тестового периода;
//               - ошибка при получении данных из сервиса;
//               - передан некорректный идентификатор сервиса;
//    *СообщениеОбОшибке - Строка - информация об ошибке для пользователя;
//    *СервисыСопровождения - Соответствие - информация о доступности подключения сервисов:
//      **Ключ - Строка - идентификатор сервиса;
//      **Значение - Строка - содержит результат проверки возможности подключения. Возможны значения:
//                    - "Подключение" если в текущий момент обрабатываются запросы
//                      на подключение тестового периода.
//                    - "Доступно" если подключение тестового периода доступно;
//                    - "Недоступно" если подключение тестового периода недоступно;
//                      Подключение может быть недоступно:
//                       - пользователь уже использовал тестовый период;
//                       - у сервиса отсутствуют тестовые периоды периода;
//                       - у пользователя нет прав для подключения тестового периода.
//
// Пример:
//
//  ИдентификаторСервиса = СПАРКРискиКлиентСервер.ИдентификаторСервиса();
//  Идентификаторы       = Новый Массив;
//  Идентификаторы.Добавить(ИдентификаторСервиса);
//  РезультатПроверки = ПодключениеСервисовСопровождения.ДоступноПодключениеТестовогоПериода(Идентификаторы);
//  СтатусПодключения = РезультатПроверки.СервисыСопровождения.Получить(ИдентификаторСервиса);
//  Если СтатусПодключения = "Подключение" Тогда
//    Элементы.ДекорацияПодключить.Видимость  = Ложь;
//    Элементы.ДекорацияПодключение.Видимость = Истина;
//  ИначеЕсли СтатусПодключения = "Доступно" Тогда
//    Элементы.ДекорацияПодключить.Видимость  = Истина;
//    Элементы.ДекорацияПодключение.Видимость = Ложь;
//  ИначеЕсли СтатусПодключения = "Недоступно" Тогда
//    Элементы.ДекорацияПодключить.Видимость  = Ложь;
//    Элементы.ДекорацияПодключение.Видимость = Ложь;
//  КонецЕсли;
//
Функция ДоступноПодключениеТестовогоПериода(Идентификаторы) Экспорт
	
	ОписательДоступности = Новый Структура;
	ОписательДоступности.Вставить("Ошибка",               Ложь);
	ОписательДоступности.Вставить("СообщениеОбОшибке",    "");
	ОписательДоступности.Вставить("СервисыСопровождения", Новый Соответствие);
	
	// Подключение может быть недоступно если:
	//  - у пользователя нет прав для подключения тестового периода,
	//    считается, что тестовые периоды недоступны для всех сервисов;
	//  - конфигурация работает в модели сервиса.
	Если Не РазрешеноПодключениеТестовыхПериодов() Тогда
		Для Каждого Идентификатор Из Идентификаторы Цикл
			ОписательДоступности.СервисыСопровождения.Вставить(Идентификатор, "Недоступно");
		КонецЦикла;
		Возврат ОписательДоступности;
	КонецЕсли;
	
	// Подключение может быть недоступно, если существуют необработанные
	// запросы на подключение,т.к. невозможно определить доступные тестовые периоды;
	ЗапросыНаПодключение = АктивныеЗапросыНаПодключение(Идентификаторы);
	Если ЗапросыНаПодключение.Количество() > 0 Тогда
		Для Каждого Идентификатор Из Идентификаторы Цикл
			ОписательДоступности.СервисыСопровождения.Вставить(Идентификатор, "Подключение");
		КонецЦикла;
		Возврат ОписательДоступности;
	КонецЕсли;
	
	// Если при обновлении данных кэша тестовых периодах были ошибки,
	// считается, что недоступны все сервисы.
	РезультатОбновления = ОбновитьКэшТестовыхПериодов(Идентификаторы);
	Если РезультатОбновления.Ошибка Тогда
		ОписательДоступности.Ошибка            = РезультатОбновления.Ошибка;
		ОписательДоступности.СообщениеОбОшибке = РезультатОбновления.ИнформацияОбОшибке;
		Для Каждого Идентификатор Из Идентификаторы Цикл
			ОписательДоступности.СервисыСопровождения.Вставить(Идентификатор, "Недоступно");
		КонецЦикла;
		Возврат ОписательДоступности;
	КонецЕсли;
	
	ОписательДоступности.СервисыСопровождения = СервисыСопровожденияДоступныеДляПодключения(Идентификаторы);
	
	Возврат ОписательДоступности;
	
КонецФункции

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

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

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

ПодключитьТестовыйПериод (БСП)

ПодключениеТестовыхПериодов_ПроверитьСостояниеЗапроса (БСП)

ПодключениеТестовыхПериодов (БСП)

ПроверитьСостояниеЗапроса (БСП)

ПроверитьСостояниеЗапросаНаПодключение (БСП)

ЗакрытьФормуПодключенияТестовыхПериодов (БСП)

ТестовыеПериодыСервисаСопровождения (БСП)

1С Менеджер конфигураций