ПостроениеФормыЗаполненияПоРазделу (БСП)

Автор: 1С
ОбщийМодуль.Анкетирование
БСП

Построение формы заполнения по разделу. Выполняет построение формы, согласно раздела шаблона анкеты.

// Выполняет построение формы, согласно раздела шаблона анкеты.
//
// Параметры:
//  Форма                       - ФормаКлиентскогоПриложения - форма для которой получается информация.
//  ТекущиеДанныеДеревоРазделов - ДанныеФормыЭлементДерева - текущий раздел, для которого строится форма заполнения.
//
Процедура ПостроениеФормыЗаполненияПоРазделу(Форма,ТекущиеДанныеДеревоРазделов) Экспорт
	
	ДобавляемыеРеквизиты = Новый Массив;
	Форма.ТаблицаВопросовРаздела.Очистить();
	
	Если ТекущиеДанныеДеревоРазделов.ТипСтроки = "Раздел" Тогда
		
		Форма.Элементы.НадписьВступление.Заголовок  = НСтр("ru = 'Раздел'") + " " + ТекущиеДанныеДеревоРазделов.Формулировка;
		Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
			Форма.Элементы.НадписьВступление.ЦветТекста = WebЦвета.НейтральноКоричневый;
			Форма.Элементы.НадписьВступление.Шрифт = Новый Шрифт(, 8, Истина, , , );
		Иначе
			Форма.Элементы.НадписьВступление.ЦветТекста = Новый Цвет(0, 150, 70);
			Форма.Элементы.НадписьВступление.Шрифт = Новый Шрифт(, 12, Ложь, , , );
		КонецЕсли;
		
		Раздел = ТекущиеДанныеДеревоРазделов.Ссылка;
		ПолныйКодРаздела = ТекущиеДанныеДеревоРазделов.ПолныйКод;
		
		// получение вопросов раздела
		Форма.ТаблицаВопросовРаздела.Очистить();
		ПолучитьИнформациюПоВопросамАнкеты(Форма,Форма.ШаблонАнкеты,Раздел,ПолныйКодРаздела);
		СформироватьДобавляемыеРеквизитыДляРаздела(ДобавляемыеРеквизиты,Форма);
		
	Иначе
		
		Вступление = ?(ПустаяСтрока(Форма.Вступление), НСтр("ru = 'Нажмите далее для заполнения анкеты.'"), Форма.Вступление);
		Заключение = ?(ПустаяСтрока(Форма.Заключение), НСтр("ru = 'Спасибо за то что заполнили анкету.'"), Форма.Заключение);
		
		Форма.Элементы.НадписьВступление.Заголовок = ?(ТекущиеДанныеДеревоРазделов.ТипСтроки = "Вступление", Вступление, Заключение);
		Форма.Элементы.НадписьВступление.ЦветТекста = ЦветаСтиля.ЦветТекстаПоля;
		Форма.Элементы.НадписьВступление.Шрифт = Новый Шрифт(, 8, Ложь, , , );
		
	КонецЕсли;
	
	Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты,Форма.ДобавленныеДинамическиРеквизиты.ВыгрузитьЗначения());
	
	// Удаление ранее динамически сформированных элементов формы.
	УдалитьЭлементыФормыЗаполнения(Форма,Форма.ДобавленныеДинамическиРеквизиты);
	Форма.ДобавленныеДинамическиРеквизиты.Очистить();
	Для каждого ДобавленныйРеквизит Из ДобавляемыеРеквизиты Цикл
		Если ПустаяСтрока(ДобавленныйРеквизит.Путь) Тогда
			Форма.ДобавленныеДинамическиРеквизиты.Добавить(ДобавленныйРеквизит.Имя);
		КонецЕсли;
	КонецЦикла;
	
	Если ТекущиеДанныеДеревоРазделов.ТипСтроки = "Раздел" Тогда
		// добавление элементов формы
		СформироватьЭлементыФормыДляРаздела(Форма);
	КонецЕсли;
	
КонецПроцедуры

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

Рекомендации

Похожие публикации

ЗаполнитьДеревоРазделов (БСП)

ПриЗаполненииРазделовДатЗапретаИзменения (БСП)

Заполнение реквизитов формы из ТЧ

ПоказатьФормуЗаполненияСсылок (БСП)

РазделитьВерсию (БСП)

ПриПолученииФормыВыполненияЗадачи (БСП)

ПоказатьФормуЗагрузки (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз