Значения нефинансовых показателей / Модуль объекта

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

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	Ответственный = Пользователи.ТекущийПользователь();
	
КонецПроцедуры

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Перем МенеджерВТ;
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
	
	ПроведениеДокументов.ПередЗаписьюДокумента(ЭтотОбъект, РежимЗаписи, РежимПроведения);
	
	Показатели = Новый Массив;
	Если ВидОперации = Перечисления.ВидыОперацийУстановкиЗначенийНефинансовыхПоказателей.ВводЗначенийПоШаблону Тогда
		Если ЗначениеЗаполнено(ШаблонВвода) Тогда
			Документы.УстановкаЗначенийНефинансовыхПоказателей.ПодготовитьТаблицыШаблона(ШаблонВвода, МенеджерВТ);
			ВидПериода = Документы.УстановкаЗначенийНефинансовыхПоказателей.ВидПериодаФормыДокумента(ШаблонВвода, МенеджерВТ);
			ТаблицаПоказателей = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ШаблонВвода,
				"ПоказателиШаблона.Показатель").Выгрузить();
			Показатели = ТаблицаПоказателей.ВыгрузитьКолонку("Показатель");
		КонецЕсли;
	Иначе
		Если ЗначениеЗаполнено(НефинансовыйПоказатель) Тогда
			Документы.УстановкаЗначенийНефинансовыхПоказателей.ПодготовитьТаблицыШаблона(НефинансовыйПоказатель, МенеджерВТ);
			ВидПериода = Документы.УстановкаЗначенийНефинансовыхПоказателей.ВидПериодаФормыДокумента(
				НефинансовыйПоказатель, МенеджерВТ);
			Показатели.Добавить(НефинансовыйПоказатель);
		КонецЕсли;
	КонецЕсли;
	
	Если ВидПериода = "ДействуетС" Тогда
		ПредставлениеПериода = НСтр("ru = 'Действует с %1'");
		ПредставлениеПериода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			ПредставлениеПериода,
			Формат(НачалоПериода, "ДЛФ=D"));
	ИначеЕсли ВидПериода = "Период" Тогда
		ПредставлениеПериода = НСтр("ru = 'Период с %1 по %2'");
		ПредставлениеПериода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			ПредставлениеПериода,
			Формат(НачалоПериода, "ДЛФ=D"),
			Формат(ОкончаниеПериода, "ДЛФ=D"));
	Иначе
		Массив = Новый Массив;
		ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Массив, СтрокиДокумента.ВыгрузитьКолонку("Период"), Истина);
		ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Массив, КолонкиДокумента.ВыгрузитьКолонку("Период"), Истина);
		Список = Новый СписокЗначений;
		Список.ЗагрузитьЗначения(Массив);
		Список.СортироватьПоЗначению();
		Если Список.Количество() Тогда
			МинДата = Список[0].Значение;
			МаксДата = Список[Список.Количество() - 1].Значение;
			ПредставлениеПериода = НСтр("ru = 'Периоды с %1 по %2'");
			ПредставлениеПериода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				ПредставлениеПериода,
				Формат(МинДата, "ДЛФ=D"),
				Формат(МаксДата, "ДЛФ=D"));
		КонецЕсли;
	КонецЕсли;
	
	МаксимальноеКоличествоАналитик = БюджетированиеКлиентСервер.МаксимальноеКоличествоАналитик();
	ЗаменяемыеПустыеЗначенияАналитики = БюджетированиеВызовСервера.ЗаменяемыеПустыеЗначенияАналитики();
	РеквизитыПоискаПустыхАналитик = Новый Массив;
	
	Для Сч = 1 По МаксимальноеКоличествоАналитик Цикл
		РеквизитыПоискаПустыхАналитик.Добавить("Аналитика" + Сч);
		РеквизитыПоискаПустыхАналитик.Добавить("СтрокиДокумента.Аналитика" + Сч);
		РеквизитыПоискаПустыхАналитик.Добавить("КолонкиДокумента.Аналитика" + Сч);
	КонецЦикла;
	
	Для каждого СтрокаТЧ Из ЗначенияКолонок Цикл
		Если ЗначениеЗаполнено(СтрокаТЧ.Аналитика) Тогда
			Если НЕ ЗаменяемыеПустыеЗначенияАналитики.Найти(СтрокаТЧ.Значение) = Неопределено Тогда
				СтрокаТЧ.Значение = БюджетированиеКлиентСервер.ПустоеЗначениеАналитики();
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	БюджетированиеВызовСервера.ВыполнитьЗаменыЗначенийВОбъекте(ЭтотОбъект,
			РеквизитыПоискаПустыхАналитик,
			ЗаменяемыеПустыеЗначенияАналитики,
			БюджетированиеКлиентСервер.ПустоеЗначениеАналитики());
	
	ПредставлениеНефинансовыхПоказателей = СтрСоединить(Показатели, ", ");
	
КонецПроцедуры

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

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения(Отказ)
	
	ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

Процедура ПриКопировании(ОбъектКопирования)
	
	Ответственный = Пользователи.ТекущийПользователь();
	
КонецПроцедуры

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

#КонецЕсли

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