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