ОтключенныеВариантыОтчетов (БСП)

Автор: 1С
ОбщийМодуль.ВариантыОтчетов
БСП

Отключенные варианты отчетов.

Функция ОтключенныеВариантыОтчетов(Знач ОтчетыПользователя = Неопределено) Экспорт
	
	Если ОтчетыПользователя = Неопределено Тогда
		ОтчетыПользователя = Новый Массив(ВариантыОтчетовПовтИсп.ДоступныеОтчеты());
	КонецЕсли;
	
	// Получить варианты, недоступные по функциональным опциям.
	
	ТаблицаОпций = ВариантыОтчетовПовтИсп.Параметры().ТаблицаФункциональныхОпций;
	ТаблицаВариантов = ТаблицаОпций.СкопироватьКолонки("ПредопределенныйВариант, ИмяФункциональнойОпции");
	ТаблицаВариантов.Колонки.Добавить("ЗначениеОпции", Новый ОписаниеТипов("Число"));
	
	Для Каждого ОтчетСсылка Из ОтчетыПользователя Цикл
		Найденные = ТаблицаОпций.НайтиСтроки(Новый Структура("Отчет", ОтчетСсылка));
		Для Каждого СтрокаТаблицы Из Найденные Цикл
			СтрокаВариант = ТаблицаВариантов.Добавить();
			ЗаполнитьЗначенияСвойств(СтрокаВариант, СтрокаТаблицы);
			Значение = ПолучитьФункциональнуюОпцию(СтрокаТаблицы.ИмяФункциональнойОпции);
			Если Значение = Истина Тогда
				СтрокаВариант.ЗначениеОпции = 1;
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
	
	ТаблицаВариантов.Свернуть("ПредопределенныйВариант", "ЗначениеОпции");
	ТаблицаОтключенных = ТаблицаВариантов.Скопировать(Новый Структура("ЗначениеОпции", 0));
	ТаблицаОтключенных.Свернуть("ПредопределенныйВариант");
	ОтключенныеПоФункциональнымОпциям = ТаблицаОтключенных.ВыгрузитьКолонку("ПредопределенныйВариант");
	
	// Добавить варианты, отключенные разработчиком.
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ОтчетыПользователя", ОтчетыПользователя);
	Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
	
	Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ВариантыКонфигурации.Ссылка
	|ИЗ
	|	Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурации
	|ГДЕ
	|	(ВариантыКонфигурации.Включен = ЛОЖЬ
	|		ИЛИ ВариантыКонфигурации.ПометкаУдаления = ИСТИНА)
	|	И ВариантыКонфигурации.Отчет В (&ОтчетыПользователя)
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВариантыРасширений.Ссылка
	|ИЗ
	|	Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширений
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредопределенныеВариантыОтчетовВерсийРасширений КАК Версии
	|		ПО ВариантыРасширений.Ссылка = Версии.Вариант
	|			И ВариантыРасширений.Отчет = Версии.Отчет
	|			И (Версии.ВерсияРасширений = &ВерсияРасширений)
	|ГДЕ
	|	(ВариантыРасширений.Включен = ЛОЖЬ
	|		ИЛИ Версии.Вариант ЕСТЬ NULL)
	|	И ВариантыРасширений.Отчет В (&ОтчетыПользователя)";
	
	ОтключенныеПринудительно = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0);
	ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОтключенныеПоФункциональнымОпциям, ОтключенныеПринудительно);
	
	Возврат ОтключенныеПоФункциональнымОпциям;
	
КонецФункции

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

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

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

ОтключенныеВариантыПрограммы (БСП)

УдалитьВариантОтчета (БСП)

УдалитьПользовательскийВариантОтчета (БСП)

ПриУдаленииПользовательскихВариантовОтчета (БСП)

ТаблицаВариантовОтчетов (БСП)

ПредопределенныеВариантыОтчетов (БСП)

ВариантОтчета (БСП)

ПользовательскиеВариантыОтчетов (БСП)

НастроитьВариантыОтчетов (БСП)

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