Как сделать форму списка в 1с

Добавил пользователь Morpheus
Обновлено: 10.09.2024

Перед прочтением данной статьи рекомендуется ознакомиться с первой частью, в которой описаны примеры программного создания элементов, команд, реквизитов управляемой формы, а также описание стандартных возможностей для работы с ними.

В данной же части будет рассмотрено программное создание динамических списков, таблиц значений на форме, их вывод в элементы формы и стандартные возможности для работы.

Модифицировать формы рекомендуется программно для удобного обновления конфигураций и исключения конфликтов, а также для удобной поддержки кода. Со статьями о механизмах модификации можно ознакомиться в разделе полезных ссылок.

Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.
Примеры программного создания элементов, команд, реквизитов управляемой формы, а также описание стандартных возможностей для работы с ними можно будет посмотреть в части 1.

Создание реквизита типа таблица значений и вывод на форму

Добавление условного оформления таблицы формы

Создаем условное оформление для таблицы:

В процедуру команды добавим вызов серверной процедуры для заполнения таблицы цен в зависимости от выбранной номенклатуры и характеристики:

Добавляем в процедуру ПриСозданииНаСервере процедуры:


Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.


Создание реквизита типа динамический список с заданными настройками и вывод на форму

На странице 3 создадим динамический список с выводом всех цен выбранной номенклатуры и характеристики.
Добавим Условное Оформление дин. списка, отбор и сортировку программно.

Вывести динамический список в элементы управляемой формы 1С

Для вывода дин. списка воспользуемся процедурами, которые использовали при выводе таблицы значений, так как это один тип — ДанныеФормыКоллекция.

Обновление параметров динамического списка программно

Если в запросе дин. списка используются параметры, то их необходимо обновлять при изменении соответствующих реквизитов.

Добавляем в процедуру ПриСозданииНаСервере процедуры:


Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.


Содержимое регистра сведений ЦеныНоменклатуры:


Динамический список на форме:

СписокРезультат_ВЗ

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

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

СозданиеРеквизита_ВЗ


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

РежимВыбораИзСписка_ВЗ

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

И программно заполняем СписокВыбора нужными нам значениями:

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

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

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

Узнав о формах 1с, перейдем к более глубокому ознакомлению. Для начала создадим форму, это может быть форма любого объекта, в данном примере это справочник. Способов создать форму существует несколько:

1. Из конструктора объекта 2 способа

Создание формы из объекта

2. Из дерева конфигурации через контекстное меню (правой кнопкой мыши на выделенном синим на рисунке объекте).

Создание формы из дерева конфигурации. Способ 1.

Создание формы из дерева конфигурации. Способ 2.

Конструктор форм

При создании новой формы появляется окно конструктора формы:

Конструктор формы шаг 1

Тип формы, который предлагает выбрать конструктор повлияет, на начальное заполнение элементами. Основными вариантами типов являются:

Командные панели снизу и сверху

Конструктор расположения элементов управления

Свойство

Основной реквизит формы выделяется жирным шрифтом


Как добавить выпадающий список на форме. Типа этого:

А очень просто.
Добавим реквизит формы ВыборИзСписка тип СТРОКА (!)


Перетащим реквизит мышкой влево, создастся элемент формы ВыборИзСписка. Зайдем в его свойства и установим флажок РежимВыбораИзСписка.


Список выбора будет доступен из свойств элемента ВыборИзСписка, которое так и называется СписокВыбора - туда можно ручками забить значения. Если нужено сделать это программно, то это делается через конструкцию Элементы.ВыборИзСписка.СписокВыбора.Добавить

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

Anything in here will be replaced on browsers that support the canvas element

Читайте также: