Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Стандартная проверка при выборе значения
Дальше: Собственная проверка при выборе значения

Передача дополнительных параметров выбора в форму нового элемента

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

У реквизита Товар табличной части Товары документа Накладная заданы свойства Связи параметров выбора и Параметры выбора (рис. 3.208).

Рис. 3.208. Свойства «Связи параметров выбора» и «Параметры выбора»

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

Предположим, мы не хотим, чтобы в этом поле выбирались услуги. Зададим это условие в дополнительных параметрах выбора товаров (с префиксом «Дополнительно.») в момент нажатия на кнопку создания в выпадающем списке.

Для этого создадим обработчик события Создание для поля ТоварыТовар в таблице формы Товары и заполним его следующим образом (листинг 3.162).

Листинг 3.162. Обработчик события «Создание» поля «ТоварыТовар»

&НаКлиенте

Процедура ТоварыТоварСоздание(Элемент, СтандартнаяОбработка)

 

НовыйПараметр = Новый ПараметрВыбора("Дополнительно.Услуга", Ложь);

НовыйМассив = Новый Массив();

НовыйМассив.Добавить(НовыйПараметр);

НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);

Элементы.ТоварыТовар.ПараметрыВыбора = НовыеПараметры;

 

КонецПроцедуры

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

После этого откроем форму элемента справочника Товары, создадим обработчик события ПриСозданииНаСервере и заполним его следующим образом (листинг 3.163).

Листинг 3.163. Обработчик события «ПриСозданииНаСервере»

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

 

ВыборУслуг = Истина;

Параметры.ДополнительныеПараметры.Свойство("Услуга", ВыборУслуг);

 

Если ВыборУслуг = Ложь Тогда

Объект.ВидТовара = Перечисления.ВидыТоваров.Товар;

Элементы.ВидТовара.Подсказка = "Услуги недоступны для выбора при создании из формы накладной";

Элементы.ВидТовара.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;

Элементы.ВидТовара.Доступность = Ложь;

 

КонецЕсли;

 

КонецПроцедуры

В этом обработчике в переменной ВыборУслуг мы получаем значение поля Услуга из структуры ДополнительныеПараметры. Если выбор услуг запрещен, то значение реквизита ВидТовара мы устанавливаем в значение Товар перечисления ВидыТоваров. Кроме того, делаем соответствующее поле формы недоступным. И чтобы у пользователей не возникало лишних вопросов, выводим для поля поясняющую подсказку.

Запустим «1С:Предприятие» и создадим новую накладную. Заполним поле Поставщик, добавим строку в таблицу товаров и в открывшемся выпадающем списке под полем Товар нажмем кнопку создания (см. рис. 3.209).

В появившейся форме нового элемента справочника Товары значение поля Вид товара уже задано как Товар (значение перечисления ВидыТоваров), недоступно для изменения и снабжено подсказкой в виде кнопки с пиктограммой вопроса. Укажем наименование элемента, зададим того же поставщика, что и в форме накладной, и нажмем кнопку Записать и закрыть (рис. 3.209).

Рис. 3.209. Создание нового элемента справочника при вводе в ссылочное поле

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

А вот если в форме создания нового товара указать другого поставщика (отличного от поставщика в накладной), то созданный товар не будет соответствовать связям параметров выбора, установленным в конфигураторе для реквизита накладной Товар (см. рис. 3.208). В результате после автоматической проверки платформа выдаст диагностическое сообщение о том, что новый товар не соответствует условиям выбора, и не подставит его в накладную.

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

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

Назад: Стандартная проверка при выборе значения
Дальше: Собственная проверка при выборе значения