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

Собственная проверка при выборе значения

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

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

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

Эти действия нужно выполнять в обработчике события ВыборЗначения формы элемента справочника Поставщики. Создадим этот обработчик и заполним его следующим образом (листинг 3.164).

Листинг 3.164. Обработчик события «ВыборЗначения»

&НаКлиенте

Процедура ВыборЗначения(СтандартнаяОбработка)

 

Если Объект.Ненадежный Тогда

СтандартнаяОбработка = Ложь;

ВыборДоступен = Ложь;

ПоказатьВопрос(Новый ОписаниеОповещения("ВопросЗавершение", ЭтотОбъект), "Вы выбрали ненадежного поставщика! Продолжить тем не менее?", РежимДиалогаВопрос.ДаНет);

 

КонецЕсли;

 

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

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

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

В этом случае мы отменяем стандартную обработку события (СтандартнаяОбработка = Ложь), а также устанавливаем результат проверки (свойство ВыборДоступен) в значение Ложь. Если больше ничего не делать, то ненадежный поставщик никогда не попадет в поле ввода накладной.

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

Первым параметром в этот метод передается описание оповещения, описывающее экспортную процедуру, расположенную в модуле формы, ВопросЗавершение(), которая будет вызвана, когда пользователь ответит на вопрос (листинг 3.165).

Листинг 3.165. Обработчик события «ВыборЗначения»

&НаКлиенте

Процедура ВопросЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт

 

Если РезультатВопроса = КодВозвратаДиалога.Да Тогда

ОповеститьОВыборе(Объект.Ссылка);

 

КонецЕсли;

 

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

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

В этом случае вызывается метод формы ОповеститьОВыборе() и владельцу формы создания нового элемента справочника – полю ввода накладной Поставщик передается выбранное значение (Объект.Ссылка). В результате у поля ввода будет вызвано событие ОбработкаВыбора и ссылка на поставщика попадет в поле накладной.

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

Запустим «1С:Предприятие» и создадим новую накладную. Щелкнем мышью в поле Поставщик и в открывшемся выпадающем списке нажмем кнопку создания. В появившейся форме нового элемента справочника Поставщики укажем наименование элемента, установим признак Ненадежный и нажмем кнопку Записать и закрыть (см. рис. 3.210).

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

Рис. 3.210. Проверка перед подстановкой нового элемента справочника в поле ввода

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

Ну, а если созданный поставщик надежный, все сработает «в штатном режиме», так как в этом случае стандартную обработку события ВыборЗначения мы не отменяли.

Назад: Передача дополнительных параметров выбора в форму нового элемента
Дальше: Глава 3.20. Программное изменение формы