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

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

#Область ОбработчикиСобытий

Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
	
	Если ЭтоГруппа Тогда
		Возврат;
	КонецЕсли;
	
	БюджетированиеСервер.ЗаполнитьВспомогательныеРеквизитыПередЗаписью(ЭтотОбъект);
	
	Если Не ЭтоНовый() Тогда
		РеквизитыСравнения = СтрРазделить("Код,Наименование,Описание", ",");
		ИсходныеЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, РеквизитыСравнения);
		Для Каждого РеквизитСравнения Из РеквизитыСравнения Цикл
			Если ЭтотОбъект[РеквизитСравнения] <> ИсходныеЗначенияРеквизитов[РеквизитСравнения] Тогда
				ДополнительныеСвойства.Вставить("ОбновитьЭлементыФинансовыхОтчетов", Наименование);
				Прервать;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	МаксимальноеКоличествоАналитик = БюджетированиеКлиентСервер.МаксимальноеКоличествоАналитик();
	Для Сч = 1 По МаксимальноеКоличествоАналитик Цикл
		Если ЭтотОбъект["ЗаполнятьУказаннымЗначениемАналитику" + Сч]
		   И ЗначениеЗаполнено(ЭтотОбъект["ВидАналитики" + Сч]) Тогда
			ВидАналитики = ЭтотОбъект["ВидАналитики" + Сч];
			ТипАналитики = ВидАналитики.ТипЗначения;
			ЭтотОбъект["ЗначениеАналитики" + Сч] = БюджетированиеКлиентСервер.ПриведенноеЗначениеАналитики(
				ЭтотОбъект["ЗначениеАналитики" + Сч],
				ТипАналитики);
		Иначе
			ЭтотОбъект["ЗначениеАналитики" + Сч] = БюджетированиеКлиентСервер.ПустоеЗначениеАналитики();
		КонецЕсли;
	КонецЦикла;
	
	УстановкаРеквизитовИсторииПереходаНаНовыеФормулы();
	
	Если ЗагружатьИзДругихПодсистем Тогда
		// Сделаем слепок настроек для будущего сравнения их между собой без анализа каждого элемента.
		НастройкиКД = Неопределено;
		Если Не ДополнительныеСвойства.Свойство("НастройкиКД", НастройкиКД) Тогда
			НастройкиКД = ХранилищеНастроекКомпоновкиДанных.Получить();
		КонецЕсли;
			
		ХешНастроек = ОбщегоНазначенияУТ.ХешСуммаСериализуемогоОбъекта(НастройкиКД, ХешФункция.MD5);
	КонецЕсли;
	
КонецПроцедуры

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

	КонецЕсли;
	
	ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, ПроверенныеРеквизитыОбъекта);
	
КонецПроцедуры

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

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

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

Процедура УстановкаРеквизитовИсторииПереходаНаНовыеФормулы()
	
	Если НЕ ЭтоГруппа Тогда
		
		Если ПустаяСтрока(ВыражениеЗаполненияАналитики1ИсторияПереходаНаНовыеФормулы)
			И НЕ ПустаяСтрока(ВыражениеЗаполненияАналитики1) Тогда
			ВыражениеЗаполненияАналитики1ИсторияПереходаНаНовыеФормулы = ВыражениеЗаполненияАналитики1;
		КонецЕсли;
		Если ПустаяСтрока(ВыражениеЗаполненияАналитики2ИсторияПереходаНаНовыеФормулы)
			И НЕ ПустаяСтрока(ВыражениеЗаполненияАналитики2) Тогда
			ВыражениеЗаполненияАналитики2ИсторияПереходаНаНовыеФормулы = ВыражениеЗаполненияАналитики2;
		КонецЕсли;
		Если ПустаяСтрока(ВыражениеЗаполненияАналитики3ИсторияПереходаНаНовыеФормулы)
			И НЕ ПустаяСтрока(ВыражениеЗаполненияАналитики3) Тогда
			ВыражениеЗаполненияАналитики2ИсторияПереходаНаНовыеФормулы = ВыражениеЗаполненияАналитики3;
		КонецЕсли;
		Если ПустаяСтрока(ВыражениеЗаполненияАналитики4ИсторияПереходаНаНовыеФормулы)
			И НЕ ПустаяСтрока(ВыражениеЗаполненияАналитики4) Тогда
			ВыражениеЗаполненияАналитики4ИсторияПереходаНаНовыеФормулы = ВыражениеЗаполненияАналитики4;
		КонецЕсли;
		Если ПустаяСтрока(ВыражениеЗаполненияАналитики5ИсторияПереходаНаНовыеФормулы)
			И НЕ ПустаяСтрока(ВыражениеЗаполненияАналитики5) Тогда
			ВыражениеЗаполненияАналитики5ИсторияПереходаНаНовыеФормулы = ВыражениеЗаполненияАналитики5;
		КонецЕсли;
		Если ПустаяСтрока(ВыражениеЗаполненияАналитики6ИсторияПереходаНаНовыеФормулы)
			И НЕ ПустаяСтрока(ВыражениеЗаполненияАналитики6) Тогда
			ВыражениеЗаполненияАналитики6ИсторияПереходаНаНовыеФормулы = ВыражениеЗаполненияАналитики6;
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

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

#КонецЕсли

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