helpf.pro
Регистрация
 +5 
Распечатать

Программное создание динамического списка для регистра сведений

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

&НаКлиенте
Процедура АдресныеСокращения(Команда)
ИзменитьНаСервере("АдресныеСокращения");
КонецПроцедуры

&НаКлиенте
Процедура АдресныйКлассификатор(Команда)
ИзменитьНаСервере("АдресныйКлассификатор");
КонецПроцедуры

Пример 

Разместил:   Версии: | 8.3 |  Дата:   Прочитано: 5466
 +5 
Распечатать
Возможно, вас также заинтересует
1C медленно работает по сети с базой на SQL Server 8
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для...
1C: Enterprise Development Tools 35
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Cклонения по падежам 4
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) ...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.