Анализ опроса / Расшифровка простых ответов / Модуль формы

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Не ОбработатьПараметрыФормы() Тогда
		Отказ = Истина;
		Возврат;
	КонецЕсли;
	
	ШаблонЗаголовка =  НСтр("ru = 'Ответы на вопрос № %1 опроса %2 +  от %3.'");
	Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка, ПолныйКод, НаименованиеОпроса, Формат(ДатаОпроса,"ДЛФ=D"));
	
	СформироватьОтчет();
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантОтчетаПриИзменении(Элемент)
	
	СформироватьОтчет();
	
КонецПроцедуры

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

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

&НаСервере
Процедура СформироватьОтчет()
	
	ТаблицаОтчета.Очистить();
	СКД = Отчеты.АнализОпроса.ПолучитьМакет("ПростыеВопросы");
	Настройки = СКД.ВариантыНастроек[ВариантОтчета].Настройки;
	
	СКД.Параметры.ВопросШаблонаАнкеты.Значение = ВопросШаблонаАнкеты;
	СКД.Параметры.Опрос.Значение               = Опрос;
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,Настройки);
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ТаблицаОтчета);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
	ТаблицаОтчета.ОтображатьСетку = Ложь;
	ТаблицаОтчета.ОтображатьЗаголовки = Ложь;
	
КонецПроцедуры

&НаСервере
Функция ОбработатьПараметрыФормы()

	Если Параметры.ВопросШаблонаАнкеты.Пустая() Тогда	
		Возврат Ложь;
	КонецЕсли;
	ВопросШаблонаАнкеты = Параметры.ВопросШаблонаАнкеты; 

	Если Параметры.Опрос.Пустая() Тогда
		Возврат Ложь;
	КонецЕсли;
	Опрос = Параметры.Опрос; 
	
	Если ПустаяСтрока(Параметры.ПолныйКод) Тогда
		Возврат Ложь;
	КонецЕсли;
	ПолныйКод = Параметры.ПолныйКод;
	
	Если ПустаяСтрока(Параметры.НаименованиеОпроса) Тогда
		Возврат Ложь;
	КонецЕсли;
	НаименованиеОпроса = Параметры.НаименованиеОпроса;
	
	Если Не ЗначениеЗаполнено(Параметры.ДатаОпроса) Тогда
		Возврат Ложь;
	КонецЕсли;
	ДатаОпроса = Параметры.ДатаОпроса;
	
	Если ПустаяСтрока(Параметры.ВариантОтчета) Тогда
		Возврат Ложь;
	КонецЕсли;
	ВариантОтчета = Параметры.ВариантОтчета;

	Возврат Истина;
	
КонецФункции

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

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