Dev ›
1С 8 управляемая форма. Сохранение настроек ширины колонок ›
#1
29.08.23 12:03
Есть управляемая форма документа в шапке документа есть реквизит "Шаблон" (в нем описываются дополнительные реквизиты табличной части) и табличная часть документа с несколькими реквизитами которые всегда есть. В зависимости от выбранного шаблона в табличную часть добавляются новые дополнительные реквизиты
МассивРеквизитов = Новый Массив;
СписокУдаляемыхРеквизитов.Очистить();
Для Каждого СтрПок из Объект.Шаблон.Показатели Цикл
Если СтрПок.ТекстовоеПоле Тогда
Описание=Новый ОписаниеТипов("Строка");
ИначеЕсли СтрПок.Булево Тогда
Описание=Новый ОписаниеТипов("Булево");
Иначе
КвалификаторыЧисла = Новый КвалификаторыЧисла(20,?(КодСимвола(СтрПок.ТочностьДляЧисла)>=48 и КодСимвола(СтрПок.ТочностьДляЧисла)<=57,СтрПок.ТочностьДляЧисла,8), ДопустимыйЗнак.Любой);
Описание=Новый ОписаниеТипов("Число", КвалификаторыЧисла);
КонецЕсли;
Если КраткоеПредставлениеПеременныхШаблона Тогда
Рекв=Новый РеквизитФормы(СтрПок.Код, Описание, "Объект.ТЧ",СтрПок.Имя, Ложь);
Иначе
Рекв=Новый РеквизитФормы(СтрПок.Код, Описание, "Объект.ТЧ", СтрПок.Представление+" ("+СтрПок.Имя+")", Ложь);
Конецесли;
МассивРеквизитов.Добавить(Рекв);
СписокУдаляемыхРеквизитов.Добавить(Рекв.Путь + "." + Рекв.Имя);
СписокУдаляемыхЭлементов.Добавить(Рекв.Имя);
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);
//Потом добавляются группы и поля с данными реквизитов.
Если ЗначениеЗаполнено(СтрПок.Группа) и ПовторГрупп<>СтрПок.Группа Тогда
//Добавляем новую группу
СчГрупп=СчГрупп+1;
ГруппаФормы = Элементы.Вставить("ГруппаКолонок"+Строка(СчГрупп), Тип("ГруппаФормы"),Элементы.ТЧ, Элементы.ТЧРезультатКонтроляПовторяемости);
ГруппаФормы.ОтображатьЗаголовок = Ложь;
ГруппаФормы.РастягиватьПоГоризонтали=Ложь;
ГруппаФормы.РастягиватьПоВертикали=Ложь;
СписокУдаляемыхЭлементов.Добавить("ГруппаКолонок"+Строка(СчГрупп));
КонецЕсли;
Если ЗначениеЗаполнено(СтрПок.Группа) Тогда
Элт = Элементы.Добавить(СтрПок.Код, Тип("ПолеФормы"), ГруппаФормы);
Иначе
Элт = Элементы.Вставить(СтрПок.Код, Тип("ПолеФормы"), Элементы.ТЧ, Элементы.ТЧРезультатКонтроляПовторяемости);
КонецЕсли;
Элт.Вид = ВидПоляФормы.ПолеВвода;
Элт.ПутьКДанным = "Объект.ТЧ."+СтрПок.Код;
Элт.ГоризонтальноеПоложениеВШапке=ГоризонтальноеПоложениеЭлемента.Центр;
Элт.Подсказка=СтрПок.Представление;
Элт.АвтоМаксимальнаяШирина=Ложь;
Элт.АвтоМаксимальнаяВысота=Ложь;
Элт.РастягиватьПоГоризонтали=Ложь;
Элт.ВысотаЗаголовка=2;
Элт.Ширина=5;
ПовторГрупп=СтрПок.Группа;
1С сама настраивает ширину колонок (это не всегда удобно, но смирились) , далее пользователи меняют настройку колонок (ширину) под себя,чтобы было удобнее работать с данными.
Программа сохраняет эту ширину при повторном открытии. Но если работать с разными шаблонами, то все сбивается. Как сделать чтобы настройки ширины колонок сохранялись и автоматически открывались в разрезе шаблона из шапки документа.