Ограничение типа в списке значений
Титков О.
16.06.2017
38 понравилось
458 просмотров

Ограничение типа в списке значений

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

                Для этой цели у реквизита формы с типом "Список значений" существует свойство "Тип значения". Однако, если мы хотим вывести на форму таблицу (или поле), связанную с реквизитом объекта (не формы), такого свойства в палитре свойств не окажется. Что делать?

                Рассмотрим пример, в котором мы хотим вывести на форму значение отбора варианта отчета. У нас будет один элемент отбора, с видом сравнения "В списке", поэтому выводить на форму стандартный отбор компоновки данных нецелесообразно. Для этого создадим новый реквизит отчета с типом "Список значений", через него будем управлять значением отбора компоновки. Но у реквизита отчета нет свойства "Тип значения".

                Создадим на форме еще один реквизит с типом "Список значений". У него уже будет это свойство. Выберем в этом свойстве нужный нам тип данных и выведем этот реквизит на форму.

У вас есть вопрос, нужна помощь консультанта?

Оставьте номер телефона и мы перезвоним!

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

                Замечу, что передача элементов списка по одному в цикле сделана не случайно. Если написать

                ЭтаФорма.ЗначениеОтбора = ЭлементОтбора.ПравоеЗначение;

по аналогии с

                Отчет.ЗначениеОтбора = ЭлементОтбора.ПравоеЗначение;

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

Эта статья помогла вам?

Теги:

Комментарии ( 0 )

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