Шаблоны ввода нефинансовых показателей / Форма демонстрации / Модуль формы

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	Если НЕ Параметры.Свойство("Шаблон")
	 ИЛИ НЕ Параметры.Свойство("Наименование", ТекстШаблона) Тогда
		ТекстСообщения = НСтр("ru='Непосредственное открытие этой формы не предусмотрено. Для открытия формы можно воспользоваться командой ""Просмотреть форму документа"" в форме настройки шаблона ввода нефинансовых показателей.'");
		ВызватьИсключение ТекстСообщения;
	КонецЕсли;
	
	СтруктураШаблона = ПолучитьИзВременногоХранилища(Параметры.Шаблон);
	
	ТекущаяДатаСеанса = ТекущаяДатаСеанса();
	ПараметрыПериода = Новый Структура("НачалоПериода, ОкончаниеПериода", 
										НачалоГода(ТекущаяДатаСеанса), КонецГода(ТекущаяДатаСеанса));
	СтруктураОписанияВвода = Документы.УстановкаЗначенийНефинансовыхПоказателей.СтруктураОписанияПолейДокументаВвода(
		Перечисления.ВидыОперацийУстановкиЗначенийНефинансовыхПоказателей.ВводЗначенийПоШаблону,
		Неопределено,
		СтруктураШаблона,
		СтруктураШаблона.ЗначенияСложнойТаблицыПоУмолчанию,
		ПараметрыПериода);
	
	ОтразитьСтруктуруШаблона(СтруктураОписанияВвода);
	
	УправлениеФормой(СтруктураОписанияВвода);
	
	ВидОперации = Перечисления.ВидыОперацийУстановкиЗначенийНефинансовыхПоказателей.ВводЗначенийПоШаблону;
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ТабличнаяЧастьПриИзменении(Элемент)
	
	Для Каждого СтрокаОбхода Из ТабличнаяЧасть Цикл
		СтрокаОбхода.НомерСтрокиДокумента = ТабличнаяЧасть.Индекс(СтрокаОбхода) + 1;
	КонецЦикла;
	
КонецПроцедуры

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

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

&НаСервере
Процедура ОтразитьСтруктуруШаблона(СтруктураОписанияВвода)
	
	Если СтруктураОписанияВвода = Неопределено Тогда
		
		Возврат;
		
	КонецЕсли;
	
	ДобавленныеЭлементы = Новый Массив;
	ЭлементыКУдалению = Новый Массив;
	
	Документы.УстановкаЗначенийНефинансовыхПоказателей.ОтразитьРеквизитыШапкиДокумента(СтруктураОписанияВвода, 
																						Элементы, ДобавленныеЭлементы);
	
	ЗначенияПоказателей.Очистить();
	Документы.УстановкаЗначенийНефинансовыхПоказателей.ОтразитьПоказателиРедактируемыеВШапке(СтруктураОписанияВвода, 
																				Элементы, ДобавленныеЭлементы, ЗначенияПоказателей);
	
	Документы.УстановкаЗначенийНефинансовыхПоказателей.ОтразитьТабличнуюЧастьДокумента(СтруктураОписанияВвода,
																				Элементы, ЭтаФорма, ДобавленныеЭлементы, ЭлементыКУдалению);
	
КонецПроцедуры

&НаСервере
Процедура УправлениеФормой(СтруктураОписанияВвода)
	
	Если СтруктураОписанияВвода <> Неопределено Тогда
		Если СтруктураОписанияВвода.Период = "Период" Тогда
			Элементы.НачалоПериода.Заголовок = НСтр("ru = 'Период с'");
			Элементы.НачалоПериода.Видимость = Истина;
			Элементы.СтраницыОкончаниеПериода.ТекущаяСтраница = Элементы.ОкончаниеПериода;
		ИначеЕсли СтруктураОписанияВвода.Период = "ДействуетС" Тогда
			Элементы.НачалоПериода.Заголовок = НСтр("ru = 'Действует с'");
			Элементы.НачалоПериода.Видимость = Истина;
			Элементы.СтраницыОкончаниеПериода.ТекущаяСтраница = Элементы.ДействуетПо;
		Иначе
			Элементы.НачалоПериода.Видимость = Ложь;
			Элементы.СтраницыОкончаниеПериода.ТекущаяСтраница = Элементы.ОкончаниеПериодаНет;
		КонецЕсли;
	КонецЕсли;
	
	Если Элементы.Показатели.ПодчиненныеЭлементы.Количество()
		И Элементы.ТабличнаяЧасть.Видимость Тогда
		
		Элементы.Показатели.Отображение = ОтображениеОбычнойГруппы.СлабоеВыделение;
		Элементы.Показатели.ОтображатьЗаголовок = Истина;
	
		Элементы.ЗначенияПоказателей.Отображение = ОтображениеОбычнойГруппы.СлабоеВыделение;
		Элементы.ЗначенияПоказателей.ОтображатьЗаголовок = Истина;
		
	Иначе
		
		Элементы.Показатели.Отображение = ОтображениеОбычнойГруппы.Нет;
		Элементы.Показатели.ОтображатьЗаголовок = Ложь;
	
		Элементы.ЗначенияПоказателей.Отображение = ОтображениеОбычнойГруппы.Нет;
		Элементы.ЗначенияПоказателей.ОтображатьЗаголовок = Ложь;
		
	КонецЕсли;
	
КонецПроцедуры

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

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