Построение формы заполнения по разделу. Выполняет построение формы, согласно раздела шаблона анкеты.
// Выполняет построение формы, согласно раздела шаблона анкеты.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма для которой получается информация.
// ТекущиеДанныеДеревоРазделов - ДанныеФормыЭлементДерева - текущий раздел, для которого строится форма заполнения.
//
Процедура ПостроениеФормыЗаполненияПоРазделу(Форма,ТекущиеДанныеДеревоРазделов) Экспорт
ДобавляемыеРеквизиты = Новый Массив;
Форма.ТаблицаВопросовРаздела.Очистить();
Если ТекущиеДанныеДеревоРазделов.ТипСтроки = "Раздел" Тогда
Форма.Элементы.НадписьВступление.Заголовок = НСтр("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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПриЗаполненииРазделовДатЗапретаИзменения (БСП)
Заполнение реквизитов формы из ТЧ
ПоказатьФормуЗаполненияСсылок (БСП)