No Image

Управляемая форма параметры выбора

СОДЕРЖАНИЕ
2 просмотров
11 марта 2020

Автор: Admin 25 сентября, 2019 0 комментария

Продолжаем наполнять рубрику ‘Джуниор 1с’ полезными заметками. Сегодня у нас так на рассмотрении такое простое свойства элемента формы как ‘Связи параметров выбора’ (ChoiceParameterLinks), которое облегчает жизнь пользователю при выборе значений реквизита формы.

По простому – это свойство отвечает за формирование списка элементов в форме выбора по установленном отбору. Рассмотрим простой пример.

У нас есть справочник [Футбольные клубы] и у него есть реквизит [Страна]:

Пользователь хочет, что бы при выборе футбольного клуба в обработке, появлялся только список из клубов, указанной ранее страны:

Делается это очень просто через свойство элемента формы ‘Клуб’ / ‘Связи параметров выбора’:

Программа нам уже сама подсказывает, через какие поля мы сможем сделать нужный нам отбор. В данном примере делаем отбор через реквизит формы ‘Страна’:

По-простому: указываем какой отбор мы будем применять в списке выбора и реквизит, откуда отбор возьмет необходимое значение. Параметр ‘Режим изменения связанного значения’ определяет, будет ли при изменении реквизита отбора ‘Страна’ очищаться значение в реквизите ‘Клуб’.

Так же стоит заметить что здесь мы можем задать одновременно несколько необходимых нам отборов!

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

Все параметры формы можно разделить на две группы: стандартные и заданные разработчиком. Большим плюсом стандартных параметров является отсутствие необходимости какой-либо обработки: задал параметр — получил результат. Список этих параметров, определяется типом объекта.

Например, параметр «ТекущееЗначение», позволяет позиционировать форму выбора справочника на определенном элементе. Большим плюсом является, что в самой форме не требуется писать обработчиков для предопределенных параметров, сокращает количество кода.

Также у разработчика есть возможность определять свои параметры на вкладке «Параметры» конструктора управляемой формы. Время жизни параметров ограничено обработчиком ПриСозданииНаСервере() , что логично т.к. параметры требуются только при создании формы. Но, если данный параметр определяет уникальность формы (установлен флаг «ключевой параметр» в свойствах параметра), он будет доступен и в других обработчиках.

Передача параметров при открытии формы:

Обработка передаваемого параметра в модуле открываемой формы:

Стандартные параметры

Стандартные параметры формы динамического списка

  • ВыборГруппИЭлементов . Тип: ИспользованиеГруппИЭлементов . По данному параметру устанавливается свойство ВыборГруппИЭлементов таблицы основного реквизита формы.
  • ДополнительныеПараметры . Тип: Структура . Дополнительные параметры формы, открываемой при нажатии кнопки «Создать».
  • КлючПользовательскихНастроек . Тип: Произвольный . Содержит ключ пользовательских настроек, которые нужно использовать для основного динамического списка формы. Если не установлен параметр ПользовательскиеНастройки , то будут загружены пользовательские настройки по указанному ключу.
  • МножественныйВыбор . Тип: Булево . Устанавливает для основной таблицы свойства МножественныйВыбор и РежимВыделения .
  • Отбор . Тип: Структура . Используется для установки отбора в динамическом списке. Ключ структуры — имя поля основной таблицы. Значение элемента структуры содержит значение отбора. Если значение является массивом, фиксированным массивом или списком значений с не одним элементом, то отбор будет применяться с видом сравнения ВСписке .
  • ПользовательскиеНастройки . Тип: ПользовательскиеНастройкиКомпоновкиДанных . Пользовательские настройки, которые будут использоваться в основном динамическом списке формы.
  • РазрешитьВыборКорня . Тип: Булево . Определяет возможность выбора корня в форме с динамическим списком, отображаемом в виде дерева.
  • РежимВыбора . Тип: Булево . Открывать форму в режиме выбора.
  • ТекущаяСтрока . Строка динамического списка, на которую будет установлен курсор после открытия формы. В качестве значения для параметра используются значения ссылок на объекты, которые содержит главная таблица динамического списка. Например, СправочникСсылка.Товары .
  • ФиксированныеНастройки . Тип : НастройкиКомпоновкиДанных. Настройки, помещаемые в фиксированные настройки отчета.

Стандартные параметры формы документа

  • ДополнительныеПараметры . Тип: Структура . Дополнительные параметры формы, открываемой при нажатии кнопки «Создать».
  • ЗначениеКопирования . Значение для копирования. Тип параметра соответствует типу объекта, копия которого будет создана.
  • ЗначенияЗаполнения . Тип: Структура . Параметры заполнения нового объекта. Ключ структуры — имя реквизита формы, значение — заполняемое значение.
  • Ключ . Тип: ДокументСсылка.ИмяДокумента . Ключ объекта. В случае отсутствия или неверного значения создается новый объект с использованием остальных параметров.
  • Основание . Тип: Произвольный . Объект, являющийся основанием для создания нового объекта.
  • ПараметрыВыбора . Тип: Структура . Содержит значения, по которым проверяется возможность выбора для форм, находящихся в режиме выбора.
  • РежимВыбора . Тип: Булево . Позволяет открывать форму в режиме выбора.
  • ТекстЗаполнения . Тип: Строка . Текст, введенный в поле ввода, при открытии формы в режиме выбора.
Читайте также:  Тип матрицы ccd или cmos

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

  • ДополнительныеПараметры . Тип: Структура . Дополнительные параметры формы, открываемой при нажатии кнопки «Создать».
  • ЗначениеКопирования . Значение для копирования. Тип параметра соответствует типу объекта, копия которого будет создана.
  • ЗначенияЗаполнения . Тип: Структура . Параметры заполнения нового объекта.
  • Ключ . Тип: СправочникСсылка.ИмяСправочника . Ключ объекта. В случае отсутствия или неверного значения создается новый объект с использованием остальных параметров.
  • Основание . Тип: Произвольный . Объект, являющийся основанием для создания нового объекта.
  • ПараметрыВыбора . Тип: Структура . Содержит значения, по которым проверяется возможность выбора для форм, находящихся в режиме выбора.
  • РежимВыбора . Тип: Булево . Позволяет открывать форму в режиме выбора.
  • ТекстЗаполнения . Тип: Строка . Текст, введенный в поле ввода, при открытии формы в режиме выбора.
  • ЭтоГруппа . Тип: Булево . Определяет вид нового объекта — группа или элемент.

Стандартные параметры формы плана видов характеристик

  • ДополнительныеПараметры . Тип: Структура . Дополнительные параметры формы, открываемой при нажатии кнопки «Создать».
  • ЗначениеКопирования . Значение для копирования. Тип параметра соответствует типу объекта, копия которого будет создана.
  • ЗначенияЗаполнения . Тип: Структура . Параметры заполнения нового объекта.
  • Ключ . Тип: ПланВидовХарактеристикСсылка.ИмяПВХ . Ключ объекта. В случае отсутствия или неверного значения создается новый объект с использованием остальных параметров.
  • ОбъектОтбораВидовХарактеристик . Тип: Произвольный . Содержит объект отбора видов характеристик. Если значение данного параметра не равно Неопределено , то определяется тип значения.
  • Основание . Тип: Произвольный . Объект, являющийся основанием для создания нового объекта.
  • ПараметрыВыбора . Тип: Структура . Содержит значения, по которым проверяется возможность выбора для форм, находящихся в режиме выбора.
  • РежимВыбора . Тип: Булево . Позволяет открывать форму в режиме выбора.
  • ТекстЗаполнения . Тип: Строка . Текст, введенный в поле ввода, при открытии формы в режиме выбора.
  • ЭтоГруппа . Тип: Булево . Определяет вид нового объекта — группа или элемент.

Справка

  • ИмяФормы (обязательный, тип: Строка ). Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта" , "ОбщаяФорма.ФормаСохраненияФайла" ) или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора" ).
  • Параметры (необязательный, тип: Структура ). Ключ структуры — имя параметра, а значение — значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
  • Владелец (необязательный). Форма или элемент управления другой формы.
  • Уникальность (необязательный, тип: Произвольный ). В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма.
  • Ложь — искать форму с ключом уникальности по умолчанию
  • Истина — не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск
  • Значение по умолчанию: Ложь
  • Окно (необязательный, тип: ОкноКлиентскогоПриложения ; ВариантОткрытияОкна ). Окно приложения, в котором будет открыта форма. Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы. Если указан тип ВариантОткрытияОкна , окно формы будет создано согласно выбранному варианту.
  • НавигационнаяСсылка (необязательный, тип: Строка ; Неопределено ). Если содержит значение, отличное от Неопределено , то это значение присваивается свойству НавигационнаяСсылка формы, полученной в результате вызова данного метода, и свойство АвтоНавигационнаяСсылка этой формы устанавливается в Ложь . Значение по умолчанию: Неопределено .
    • Тип: Форма ; УправляемаяФорма ; Неопределено . Неопределено — если в обработчике ПриСозданииНаСервере установлен признак отказа от создания формы.
    • Получает форму или управляемую форму. Перед получением осуществляется поиск уже открытой такой же формы. Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности. Если в параметре Уникальность передано значение Истина , то поиск уже открытых форм не осуществляется.
    • Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение (клиент). Вызов метода выполняет обращение к серверу.
    • Отказ (Тип: Булево ). Признак отказа от создания формы. Если в теле процедуры-обработчика установить данному параметру значение Истина , то форма создана не будет. Значение по умолчанию: Ложь .
    • СтандартнаяОбработка (Тип: Булево ). В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь , стандартная обработка события производиться не будет. Значение по умолчанию: Истина .
    • Возникает на сервере при создании формы.
    Читайте также:  Core i3 2350m чем заменить

    Параметры формы

    1. Общая информация

    Параметры формы (закладка Параметры ) служат двум целям:
    ● Описать набор данных, которые будут влиять на открытие формы (параметризация формы). Для этого нужно перечислить все необходимые параметры и указать их типы.
    ● Определить параметры, которые будут влиять на ключ уникальности формы. Для этого необходимо установить свойство Ключевой параметр у тех параметров, которые должны участвовать в формировании ключа уникальности формы. При попытке открыть форму система производит поиск существующей формы с помощью сформированного ключа уникальности формы. Если в системе существует форма с полученным ключом
    уникальности, возвращается именно эта форма; если нет – создается новая форма.
    При вызове формы значения параметров, созданных разработчиком, можно указывать в структуре параметров наряду с системными параметрами форм (если таковые имеются).
    Параметры формы можно передать в форму в момент ее создания. Анализ переданных параметров можно выполнить в событии ПриСозданииНаСервере() (коллекция Параметры является свойством объекта УправляемаяФорма ):

    // В месте вызова.
    // Формируем параметр формы .
    Параметры = Новый Структура ();
    Параметры.Вставить (“Важность”, ПредопределенноеЗначение (“Перечисление.Важность.Важно”));
    // Открываем форму с указанием параметров.
    ОткрытьФорму (“ОбщаяФорма.ФормаПросмотра”, Параметры );

    // В модуле формы.
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Важность = Перечисления.Важность.Важн о Тогда

    КонецЕсли;
    КонецПроцедуры

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

    2. Стандартные параметры формы

    Для того чтобы поддерживать автоматическое взаимодействие между формами, система предоставляет ряд стандартных параметров, которые используются для управления формами при их открытии. С помощью этих параметров системой реализуется в полях форм выбор из форм выбора, открытие форм объектов, работа стандартных команд и т. д. То есть они обеспечивают различные заложенные в систему сценарии работы интерфейса.
    Но разработчик также может использовать эти параметры во встроенном языке, передавая их при вызове метода ОткрытьФорму().
    Перечень стандартных параметров форм в зависимости от вида расширения формы можно посмотреть в разделах Встроенный язык – Интерфейс
    (управляемый) – Управляемая форма – Расширение… встроенной справки.

    Читайте также:  Emoji перевод на русский

    3. Пример работы с параметрами формы

    Для демонстрации работы параметров формы рассмотрим реализацию выбора элемента в поле ввода. Сутью примера будет реализация механизма выбора элемента из списка на встроенном языке.
    К моменту начала работы с примером нужно иметь конфигурацию, обладающую следующими свойствами:
    ● имеется справочник Товары с иерархией групп и элементов;
    ● имеется справочник Аналоги с реквизитом ВыбранныйТовар типа СправочникСсылка.Товары ;
    ● оба справочника имеют формы элементов.
    Теперь реализуем в этой конфигурации все механизмы, которые использует платформа для выбора элемента из списка, на встроенном языке. При этом мы увидим:
    ● как происходит использование стандартных параметров формы;
    ● каким образом их использует сама система;
    ● как их может использовать разработчик.
    Добавим дополнительный параметр, который будет управлять закрытием формы выбора после выбора элемента. Назовем этот параметр ЗакрыватьПослеВыбора (тип Булево ). Добавим его в качестве параметра формы ФормаВыбора справочника Товары .
    Для того чтобы открыть форму выбора элемента, необходимо в форме элемента справочника Аналоги создать обработчик события НачалоВыбора у элемента формы ВыбранныйТовар .

    &НаКлиенте
    Процедура ВыбранныйТоварНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь ;
    ПараметрыВыбора = Новый Структура ;
    ПараметрыВыбора.Вставить (“РежимВыбора”, Истина );
    ПараметрыВыбора.Вставить (“ВыборГруппИЭлементов”, ИспользованиеГруппИЭлементов.Элементы );
    ПараметрыВыбора.Вставить (“РазрешитьВыборКорня”, Ложь );
    ПараметрыВыбора.Вставить (“ТекущаяСтрока”, Объект.ВыбранныйТовар );
    ПараметрыВыбора.Вставить (“ЗакрыватьПослеВыбора”, Ложь );
    ОткрытьФорму( “Справочник.Товары.ФормаВыбора”, ПараметрыВыбора , Элементы.ВыбранныйТовар );
    КонецПроцедуры
    Следует отдельно остановиться на третьем параметре метода ОткрытьФорму() . Этот параметр определяет, кто будет владельцем формы выбора и кому будет приходить оповещение о сделанном выборе. В данном случае мы указали владельцем формы выбора сам элемент формы, но также мы можем указать этим параметром и саму форму. В этом случае будет необходимо реализовывать обработчик ОбработкаВыбора модуля формы и в нем решать, в какой реквизит формы помещать выбранные данные.
    ПРИМЕЧАНИЕ. Если мы не будем реализовывать обработчик события НачалоВыбора , то его действия выполнит сама система. Это справедливо и для всех дальнейших обработчиков, которые использованы в примере.
    Теперь необходимо обработать переданные параметры в форме выбора. Сделаем это в обработчике ПриСозданииНаСервере () модуля формы выбора.

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка )
    СтандартнаяОбработка = Ложь ;
    Элементы.Список.ВыборГруппИЭлементов = Параметры.ВыборГруппИЭлементов ;
    Элементы.Список.РазрешитьВыборКорня = Параметры.РазрешитьВыборКорня ;
    Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяСтрока;
    ЗакрыватьПриВыборе = Параметры.ЗакрыватьПослеВыбора ;
    КонецПроцедуры
    Для того чтобы проверить работоспособность установленных нами параметров формы, установим, с помощью конфигуратора, у таблицы формы выбора Список свойство ВыборГруппИЭлементов в значение Группы (без применения параметра не будет доступен выбор элементов справочника).
    ПРИМЕЧАНИЕ. Если у таблицы Список , отображающей список товаров, свойство РежимВыбора не будет установлено в значение Истина , то выбор товаров будет недоступен.
    Теперь нам необходимо обработать выбор желаемого элемента в форме выбора. Для этого нужно определить обработчик события ВыборЗначения таблицы формы.

    &НаКлиенте
    Процедура СписокВыборЗначения(Элемент, СтандартнаяОбработка, Значение)
    СтандартнаяОбработка = Ложь ;
    ОповеститьОВыборе(Значение );
    КонецПроцедуры
    Нам осталось реализовать обработку выбора элемента в самом поле ввода. Для этого необходимо обработать событие ОбработкаВыбора нашего поля ввода ВыбранныйТовар.

    &НаКлиенте
    Процедура ВыбранныйТоварОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка )
    СтандартнаяОбработка = Ложь ;
    Объект.ВыбранныйТовар = ВыбранноеЗначение;
    КонецПроцедуры
    Мы самостоятельно реализовали системный механизм выбора значения в поле ввода на форме.
    ВНИМАНИЕ! Данный пример не является законченным. Его единственным назначением является демонстрация механизмов работы с параметрами формы.
    Если при создании параметров (обработчик ВыбранныйТоварНачалоВыбора( )) заменить строку:

    ПараметрыВыбора.Вставить (“ЗакрыватьПослеВыбора”, Истина );
    на строку:
    ПараметрыВыбора.Вставить (“ЗакрыватьПослеВыбора”, Ложь) ;
    то форма выбора перестанет закрываться после того, как будет осуществлен выбор. Это можно использовать, например, для реализации формы подбора (выбор нескольких товаров без закрытия формы выбора).

    Комментировать
    2 просмотров
    Комментариев нет, будьте первым кто его оставит

    Это интересно
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    Adblock detector