Табличное поле ~ Программное создание и управление табличным полем на форме Рассмотрим пример, когда это может действительно пригодиться. Допустим у нас есть свойства объекта в виде отдельного иерархического справочника. Нам необходимо в форме самого объекта выводить эти данные, но не просто списком а с разбивкой по группам - сколько групп, столько и закладок с таблицами. Проблема в том что мы не знаем сколько будт закладок с таблицами заранее. Чтобы это реализовать мы должны динамически создавать необходимые таблицы. Сделать это несложно. Разберемся как:
Код 1C v 8.х
ПолеТаблицы = ЭлементыФормы. Добавить( Тип( "ТабличноеПоле" ) , "Таблица" , Истина , ЭлементыФормы. Панель2 ) ;
ПолеТаблицы. Ширина = ЭлементыФормы. Панель2 . Ширина;
ПолеТаблицы. Высота = ЭлементыФормы. Панель2 . Высота;
ПолеТаблицы. Значение = РезультатЗапроса. Скопировать( ) ;
ДействиеОбработкаВыбора = Новый Действие( "ОбработкаВыбораЗнач" ) ;
ЭлементыФормы["Таблица" ]. УстановитьДействие( "ПередОкончаниемРедактирования" , ДействиеОбработкаВыбора) ;
ЭлементыФормы["Таблица" ]. УстановитьПривязку( ГраницаЭлементаУправления. Низ,
ЭлементыФормы. Панель2 , ГраницаЭлементаУправления. Низ) ;
ЭлементыФормы["Таблица" ]. УстановитьПривязку( ГраницаЭлементаУправления. Право,
ЭлементыФормы. Панель2 , ГраницаЭлементаУправления. Право) ;
Процедура ОбработкаВыбораЗнач(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
КонецПроцедуры
Написал Валецкий Станислав Категория:
Работа с Формой (Диалог) и её элементами Как программно установить событие для элемента формы? Код 1C v 8.х
ДействиеОбработкаВыбора = Новый Действие( "ОбработкаВыбораЗнач" ) ;
ЭлементыФормы["Таблица" ]. УстановитьДействие( "ПередОкончаниемРедактирования" , ДействиеОбработкаВыбора) ;
Код 1C v 8.х
тмпСтраницы = ЭлементыФормы. ОсновнаяПанель. Страницы;
СтраницаПанелиОПЗС = тмпСтраницы. Добавить( "Производство" , "Производство" ) ;
ЭлементыФормы. ОсновнаяПанель. ТекущаяСтраница = СтраницаПанелиОПЗС;
ПолеДокументов = ЭлементыФормы. Добавить( Тип( "ТабличноеПоле" ) , "ап_Призводство" , Истина , ЭлементыФормы. ОсновнаяПанель) ;
ПолеДокументов. Данные = "ап_Производство" ;
ПолеДокументов. УстановитьДействие( "ПередУдалением" , Новый Действие( "апПроизводствоПередУдалением" ) ) ;
ПолеДокументов. УстановитьДействие( "ПередНачаломДобавления" , Новый Действие( "апПроизводствоПередНачаломДобавления" ) ) ;
ПолеДокументов. УстановитьДействие( "ПриПолученииДанных" , Новый Действие( "апПроизводствоПриПолученииДанных" ) ) ;
Код 1C v 8.х Колонка.ЭлементУправления.УстановитьДействие("НачалоВыбора",Новый Действие(Действие"));
Код 1C v 8.х ЭлементыФормы. РасшифровкаПлатежа. Колонки. СтатьяДвиженияДенежныхСредств. ЭлементУправления. УстановитьДействие( "НачалоВыбора" , Новый Действие( "_СтатьяДвиженияДенежныхСредствНачалоВыбора" ) )
Категория:
Работа с Формой (Диалог) и её элементами Универсальная форма для выбора пользователем значения из списка значений В данной статье описан пример создания универсальной Формы работы со списком значений:
1. Создадим в общих формах новую форму "ФормаРаботыСоСпискомЗначений", добавим на ней Табличное поле (Имя - СписокЗначений) и КоманднаяПанельСписокЗначений
На закладке Реквизиты, появится реквизит СписокЗначений
2. Привяжем КоманднаяПанельСписокЗначений к Источнику действий - СписокЗначений
3. В свойствах табличного поля пропишем События - Выбор и ПередНачаломДобавления
4. В модуле Формы пропишем обработку событий
Код 1C v 8.х Процедура ОсновныеДействияФормыВыбрать(Кнопка)
ТекущаяСтрока = ЭлементыФормы. СписокЗначений. ТекущиеДанные;
Если ТекущаяСтрока < > Неопределено Тогда
Закрыть( ТекущаяСтрока) ;
КонецЕсли ;
КонецПроцедуры
Процедура СписокЗначенийПередНачаломДобавления(Элемент, Отказ, Копирование)
Отказ = Истина ;
КонецПроцедуры
Процедура СписокЗначенийВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
ТекущаяСтрока = ЭлементыФормы. СписокЗначений. ТекущиеДанные;
Если ТекущаяСтрока < > Неопределено Тогда
Закрыть( ТекущаяСтрока) ;
КонецЕсли ;
КонецПроцедуры
Процедура ЗакрытьФорму(Кнопка) //процедура действия кнопки закрыть
Закрыть( ) ;
КонецПроцедуры
Все, форма создана
Использовать ее для выбора значения, можно с помощью кода:
Код 1C v 8.х
Массив = ТаблицаНачислений. ВыгрузитьКолонку( "Видрасчета" ) ;
Список = Новый СписокЗначений;
Список. ЗагрузитьЗначения( Массив) ;
ФормаРаботыСоСпискомЗначений = ПолучитьОбщуюФорму( "ФормаРаботыСоСпискомЗначений" ) ;
ФормаРаботыСоСпискомЗначений. СписокЗначений = Список;
ЭлементСписка = ФормаРаботыСоСпискомЗначений. ОткрытьМодально( ) ;
Если ЭлементСписка < > Неопределено Тогда
ВидРасчета= ЭлементСписка. Значение;
иначе
СписокВидовРасчетов = ФормаРаботыСоСпискомЗначений. СписокЗначений;
КонецЕсли ;
Пользователь увидит окно выбора значения:
Категория:
Работа с Списком Значений