Нефинансовые показатели бюджетов / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

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

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

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

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЭтоГруппа ИЛИ
	|	ЗначениеРазрешено(Ссылка)";

КонецПроцедуры

// Конец СтандартныеПодсистемы.УправлениеДоступом

#КонецОбласти

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

#Область Прочее

Функция ШаблоныСхемыКомпоновкиДанных() Экспорт
	
	Шаблоны = Новый Массив;
	
	ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
	
	Для каждого Макет Из Метаданные.Справочники.НефинансовыеПоказателиБюджетов.Макеты Цикл
		
		Если Макет.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.СхемаКомпоновкиДанных Тогда
			
			Продолжить;
			
		КонецЕсли;
		
		Если (Макет.Имя = "ЦеныНоменклатуры" И ИспользуетсяЦенообразование25) 
				Или (Макет.Имя = "ЦеныНоменклатуры2_5" И Не ИспользуетсяЦенообразование25) Тогда
			
			Продолжить;
			
		КонецЕсли;
		
		Шаблоны.Добавить(Новый Структура("Имя, Синоним", Макет.Имя, Макет.Синоним));
		
	КонецЦикла;
	
	Возврат Шаблоны;
	
КонецФункции

#КонецОбласти

#Область Отчеты

// Определяет список команд отчетов.
//
// Параметры:
//   КомандыОтчетов - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
//   Параметры - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры
//
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
	
	//++ НЕ УТ
	Отчеты.ЗначенияНефинансовыхПоказателей.ДобавитьКомандуОтчета(КомандыОтчетов);
	//-- НЕ УТ
	
КонецПроцедуры

#КонецОбласти

#КонецОбласти

#КонецЕсли

Связанные материалы