&НаСервере Процедура ИзменитьНаСервере(ИмяРеквизита) // проверяем нужно ли создавать новый реквизит Если Элементы.Найти(ИмяРеквизита) = Неопределено Тогда МассивРеквизитов = Новый Массив; // добавляем реквизиты МассивРеквизитов.Добавить(Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов("ДинамическийСписок"),,"Поле таблицы")); // изменяем реквизиты формы ЭтаФорма.ИзменитьРеквизиты(МассивРеквизитов); // устанавлиеваем основную таблицу ЭтаФорма[ИмяРеквизита].ОсновнаяТаблица = "РегистрСведений." + ИмяРеквизита; // добавляем динамический список на форму Элемент = Элементы.Добавить(ИмяРеквизита, Тип("ТаблицаФормы"), ЭтаФорма); Элемент.ПутьКДанным = ИмяРеквизита; Элемент.Видимость = Истина; //добавляем колонки динамического списка КолонкаКод = Элементы.Добавить("Код" + ИмяРеквизита, Тип("ПолеФормы"), Элементы[ИмяРеквизита]); КолонкаКод.Вид = ВидПоляФормы.ПолеВвода; КолонкаКод.ПутьКДанным = ИмяРеквизита + ".Код"; КолонкаНаименование = Элементы.Добавить("Наименование" + ИмяРеквизита, Тип("ПолеФормы"), Элементы[ИмяРеквизита]); КолонкаНаименование.Вид = ВидПоляФормы.ПолеВвода; КолонкаНаименование.ПутьКДанным = ИмяРеквизита + ".Наименование"; КонецЕсли; // если реквизит создан ранее меняем его видимость на форме Если ТекущийСписок <> ИмяРеквизита Тогда // при первом выполнении, реквизита нет Если НЕ ПустаяСтрока(ТекущийСписок) Тогда Элементы[ТекущийСписок].Видимость = Ложь; конецЕсли; Элементы[ИмяРеквизита].Видимость = Истина; // промежуточная переменная, для определения текущего списка ТекущийСписок = ИмяРеквизита; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура АдресныеСокращения(Команда) ИзменитьНаСервере("АдресныеСокращения"); КонецПроцедуры &НаКлиенте Процедура АдресныйКлассификатор(Команда) ИзменитьНаСервере("АдресныйКлассификатор"); КонецПроцедуры
Пример