Профессия — 1С

Рукопашный бой Карташ

Категории

Список значений на форме

рубрики: Работа с формами | Дата: 22 Январь, 2016
Скачать обработку с примерами из статьи: professia1c_ListValue.epf
Платформа: 8.3; Тип формы: управляемая.

Рассмотрим как разместить выпадающий список значений на форме. Практиковаться будем на платформе 1С:Предприятие 8.3 на управляемых формах. Предположим, что нам надо разместить на форме список значений как показано на рисунке.
СписокРезультат_ВЗ

Итак, создаем внешнюю обработку. Создаем для формы реквизит в котором будет содержаться выбранное из списка значение.




Назовем его к примеру – СписокВариантов. Выберем для него тип значения. В нашем случае это будет строка, хотя в зависимости от задачи это может быть и СправочникСсылка, ПеречислениеСсылка и т.д. Хочется только подчеркнуть, что тип не список значений, что на первый взгляд кажется логичным, а именно тот тип, значения которого будут в этом списке отображаться. Далее размещаем наш реквизит на форме как поле ввода.
СозданиеРеквизита_ВЗ

А для работы со списком значений будем использовать свойство поля ввода – СписокВыбора.
Для этого в свойствах поля ввода включаем флажок РежимВыбораИзСписка
РежимВыбораИзСписка_ВЗ
И программно заполняем СписокВыбора нужными нам значениями:



&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Список = Новый СписокЗначений;
	Список.Добавить("Вариант 1");
	Список.Добавить("Вариант 2");
	Список.Добавить("Вариант 3");
	
	Элементы.СписокВариантов.СписокВыбора.ЗагрузитьЗначения(Список.ВыгрузитьЗначения());
	СписокВариантов = Элементы.СписокВариантов.СписокВыбора[0].Значение;
	
КонецПроцедуры




Для обычной (не управляемой формы) принцип реализации точно такой же.

6 комментариев на «“Список значений на форме”»

  1. Юрий:

    Все бы ничего, но если СписокВариантов Строка … то выражение
    СписокВариантов = Элементы.СписокВариантов.СписокВыбора[0].Значение;
    не работает при ПриСозданииНаСервере
    При открытии формы это значение обнуляется
    На других типах (Спр. Документ …) не проверял
    И … было бы неплохо писать для какой версии 1С Вы пишете описание. Может быть, для какой-то версии это и работает

    • Owner:

      Дома делал вот на этой версии 1С:Предприятие 8.3, учебная версия (8.3.6.2014). Работает. Правда режим файловый, код то все равно на клиенте выполняется. Но на работе тоже такое делал на 8.2. Там серверный вариант. Проверю, отпишусь.
      Можно и в ПриОткрытии() этот код затолкать.

  2. Дмитрий:

    Спасибо

  3. Роман:

    Как сделать что бы отображалось не значение а представление?
    Период — Реквизит обработки, тип ДАТА.
    И на форме поле Период

    Пока Выборка.Следующий() Цикл
    Список = Новый СписокЗначений;
    Список.Добавить(НачалоМесяца(Выборка.Дата), ПредставлениеПериода(НачалоМесяца(Выборка.Дата),КонецМесяца(Выборка.Дата)));
    КонецЦикла;

    Элементы.Период.СписокВыбора.ЗагрузитьЗначения(Список.ВыгрузитьЗначения());
    Объект.Период = Элементы.Период.СписокВыбора[0].Значение;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

   

2018г. Профессия — 1С. Обмен опытом по программированию в 1С