Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Как задать вопрос пользователю в команде формы




Как задать вопрос пользователю в команде формы

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

 

В режиме «Конфигуратор»

Прежде всего, откроем палитру свойств нашей конфигурации и посмотрим на свойство Режим использования модальности (рис. 26. 3).

 

Рис. 26. 3. Свойство конфигурации

«Режим использования модальности»

 

Мы видим, что это свойство стандартно установлено в значение

Не использовать. Этот режим является рекомендуемым.

Это значит, что при попытке открытия модального окна в режиме

1С: Предприятие будет получена ошибка.


Чтобы этого избежать, зададим вопрос пользователю в обработ- чике команды Подбор, но будем использовать не модальный метод Вопрос(), а его немодальный аналог ПоказатьВопрос().

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

„ имена этих методов начинаются со слов Показать либо Начать, например ПоказатьВопрос() вместо Вопрос(), НачатьПомеще- ниеФайла() вместо ПоместитьФайл() и т. п.;

„ первым параметром в эти методы передается объект Описа-

ниеОповещения, указывающий на процедуру модуля, которая будет выполнена после того, как пользователь сделает выбор в блокирующем окне;

„ методы не возвращают значения, вместо этого результат выбора пользователя будет передан в процедуру модуля, описанную объ- ектом ОписаниеОповещения.

 

подРобнее

Соответствие модальных методов их немодальным аналогам приведено в документации «1С: Предприятие 8. 3. Руководство разработчика», раздел 7. 7. 3 «Форма. Различные подходы к модальности. Соответствие методов».

Добавим в модуль формы документа следующий код (листинг 26. 7).

листинг 26. 7. Обработчик нажатия кнопки «Подбор»

с предварительным вопросом пользователю

 


Поясним этот код.

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

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

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

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

Результат содержится результат ответа пользователя. Если он положительный, то произво- дится открытие формы выбора номенклатуры для подбора в документ.

Чтобы не путаться, установим новый обработчик для команды Подбор. В палитре свойств этой команды в строке Действие выберем процедуру ПодборВо- прос (рис. 26. 4).

 

Рис. 26. 4. Установка действия для команды «Подбор»


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...