Доступно подключение тестового периода. Выполняет проверку возможности подключения тестового периода для пользователя.
// Выполняет проверку возможности подключения тестового периода для пользователя.
// Перед запросом доступных тестовых периодов происходит проверка кэша, если данные
// о доступных тестовых периодах были получены в течение 24 часов, используется информация
// из кэша. В противном случае производится запрос на получение обновленной информации
// из сервисов Портала 1С:ИТС. Функцию необходимо использовать для определения
// потребности в отображении элемента управления подключения тестового периода.
// Функцию следует использовать, если целевой сервис не подключен.
//
// Параметры:
// Идентификаторы - Массив - содержит идентификаторы сервисов в системе Портал 1С:ИТС.
//
// Возвращаемое значение:
// Структура - содержит информацию о доступных тестовых периодах сервисов сопровождения:
// *Ошибка - Булево - Истина, если при обновлении кэша были ошибки;
// Ошибка может возникнуть в случае:
// - на текущий момент существую запросы на подключение тестового периода;
// - ошибка при получении данных из сервиса;
// - передан некорректный идентификатор сервиса;
// *СообщениеОбОшибке - Строка - информация об ошибке для пользователя;
// *СервисыСопровождения - Соответствие - информация о доступности подключения сервисов:
// **Ключ - Строка - идентификатор сервиса;
// **Значение - Строка - содержит результат проверки возможности подключения. Возможны значения:
// - "Подключение" если в текущий момент обрабатываются запросы
// на подключение тестового периода.
// - "Доступно" если подключение тестового периода доступно;
// - "Недоступно" если подключение тестового периода недоступно;
// Подключение может быть недоступно:
// - пользователь уже использовал тестовый период;
// - у сервиса отсутствуют тестовые периоды периода;
// - у пользователя нет прав для подключения тестового периода.
//
// Пример:
//
// ИдентификаторСервиса = СПАРКРискиКлиентСервер.ИдентификаторСервиса();
// Идентификаторы = Новый Массив;
// Идентификаторы.Добавить(ИдентификаторСервиса);
// РезультатПроверки = ПодключениеСервисовСопровождения.ДоступноПодключениеТестовогоПериода(Идентификаторы);
// СтатусПодключения = РезультатПроверки.СервисыСопровождения.Получить(ИдентификаторСервиса);
// Если СтатусПодключения = "Подключение" Тогда
// Элементы.ДекорацияПодключить.Видимость = Ложь;
// Элементы.ДекорацияПодключение.Видимость = Истина;
// ИначеЕсли СтатусПодключения = "Доступно" Тогда
// Элементы.ДекорацияПодключить.Видимость = Истина;
// Элементы.ДекорацияПодключение.Видимость = Ложь;
// ИначеЕсли СтатусПодключения = "Недоступно" Тогда
// Элементы.ДекорацияПодключить.Видимость = Ложь;
// Элементы.ДекорацияПодключение.Видимость = Ложь;
// КонецЕсли;
//
Функция ДоступноПодключениеТестовогоПериода(Идентификаторы) Экспорт
ОписательДоступности = Новый Структура;
ОписательДоступности.Вставить("Ошибка", Ложь);
ОписательДоступности.Вставить("СообщениеОбОшибке", "");
ОписательДоступности.Вставить("СервисыСопровождения", Новый Соответствие);
// Подключение может быть недоступно если:
// - у пользователя нет прав для подключения тестового периода,
// считается, что тестовые периоды недоступны для всех сервисов;
// - конфигурация работает в модели сервиса.
Если Не РазрешеноПодключениеТестовыхПериодов() Тогда
Для Каждого Идентификатор Из Идентификаторы Цикл
ОписательДоступности.СервисыСопровождения.Вставить(Идентификатор, "Недоступно");
КонецЦикла;
Возврат ОписательДоступности;
КонецЕсли;
// Подключение может быть недоступно, если существуют необработанные
// запросы на подключение,т.к. невозможно определить доступные тестовые периоды;
ЗапросыНаПодключение = АктивныеЗапросыНаПодключение(Идентификаторы);
Если ЗапросыНаПодключение.Количество() > 0 Тогда
Для Каждого Идентификатор Из Идентификаторы Цикл
ОписательДоступности.СервисыСопровождения.Вставить(Идентификатор, "Подключение");
КонецЦикла;
Возврат ОписательДоступности;
КонецЕсли;
// Если при обновлении данных кэша тестовых периодах были ошибки,
// считается, что недоступны все сервисы.
РезультатОбновления = ОбновитьКэшТестовыхПериодов(Идентификаторы);
Если РезультатОбновления.Ошибка Тогда
ОписательДоступности.Ошибка = РезультатОбновления.Ошибка;
ОписательДоступности.СообщениеОбОшибке = РезультатОбновления.ИнформацияОбОшибке;
Для Каждого Идентификатор Из Идентификаторы Цикл
ОписательДоступности.СервисыСопровождения.Вставить(Идентификатор, "Недоступно");
КонецЦикла;
Возврат ОписательДоступности;
КонецЕсли;
ОписательДоступности.СервисыСопровождения = СервисыСопровожденияДоступныеДляПодключения(Идентификаторы);
Возврат ОписательДоступности;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПодключитьТестовыйПериод (БСП)
ПодключениеТестовыхПериодов_ПроверитьСостояниеЗапроса (БСП)
ПодключениеТестовыхПериодов (БСП)
ПроверитьСостояниеЗапроса (БСП)
ПроверитьСостояниеЗапросаНаПодключение (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)