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

Создание при вводе

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

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

Если на всех «уровнях» иерархии (начиная от поля ввода до прикладного объекта) создание новых элементов данных при вводе в ссылочное поле разрешено, то в выпадающем списке у поля будет присутствовать кнопка создания – с пиктограммой «+». С ее помощью пользователь может создавать новые элементы данных в форме прикладного объекта и сразу же подставлять их в поле ввода, не открывая при этом форму выбора (рис. 3.205).

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

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

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

Таким образом существенно повышаются комфортность и скорость работы пользователей с прикладным решением.

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

Поэтому перед подстановкой нового элемента в ссылочное поле он автоматически проверяется на соответствие параметрам выбора и связям параметров выбора, установленным для этого поля. И если элемент не соответствует условиям отбора, то будет выдано диагностическое сообщение об этом и созданный элемент не будет помещен в поле ввода.

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

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

По умолчанию параметр СтандартнаяОбработка события Создание установлен в значение Истина. В этом случае платформа выполнит открытие основной формы объекта в режиме выбора, при этом для осуществления проверки в форму будут переданы параметры:

Владельцем открываемой формы нового объекта будет выступать поле ввода, откуда вызвано создание объекта.

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

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

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

В случае если разработчик хочет самостоятельно выполнить проверку, выдать собственное диагностическое сообщение, поместить значение в поле ввода и т. д., нужно установить параметр СтандартнаяОбработка события ВыборЗначения в значение Ложь.

Поясним сказанное на примерах.

Примечание

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

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