Как задать вопрос пользователю в команде формы
Как задать вопрос пользователю в команде формы Предположим, прежде чем выполнять подбор номенклатуры в табличную часть приходной накладной, нам нужно задать вопрос пользователю о необходимости подбора.
В режиме «Конфигуратор» Прежде всего, откроем палитру свойств нашей конфигурации и посмотрим на свойство Режим использования модальности (рис. 26. 3).
Рис. 26. 3. Свойство конфигурации «Режим использования модальности»
Мы видим, что это свойство стандартно установлено в значение Не использовать. Этот режим является рекомендуемым. Это значит, что при попытке открытия модального окна в режиме 1С: Предприятие будет получена ошибка. Чтобы этого избежать, зададим вопрос пользователю в обработ- чике команды Подбор, но будем использовать не модальный метод Вопрос(), а его немодальный аналог ПоказатьВопрос(). Для разработки конфигураций в режиме отказа от модальности в платформу добавлены методы, аналогичные модальным методам, но, в отличие от них, не блокирующие программный код. Эти методы уже не используют модальные окна, поэтому могут беспрепятственно использоваться при разработке веб-приложений. Эти методы имеют следующие особенности: имена этих методов начинаются со слов Показать либо Начать, например ПоказатьВопрос() вместо Вопрос(), НачатьПомеще- ниеФайла() вместо ПоместитьФайл() и т. п.; первым параметром в эти методы передается объект Описа- ниеОповещения, указывающий на процедуру модуля, которая будет выполнена после того, как пользователь сделает выбор в блокирующем окне; методы не возвращают значения, вместо этого результат выбора пользователя будет передан в процедуру модуля, описанную объ- ектом ОписаниеОповещения.
подРобнее Соответствие модальных методов их немодальным аналогам приведено в документации «1С: Предприятие 8. 3. Руководство разработчика», раздел 7. 7. 3 «Форма. Различные подходы к модальности. Соответствие методов». Добавим в модуль формы документа следующий код (листинг 26. 7). листинг 26. 7. Обработчик нажатия кнопки «Подбор» с предварительным вопросом пользователю Поясним этот код. В процедуре ПодборВопрос() сначала создается объект ОписаниеОпо- вещения, в конструкторе которого первым параметром указывается имя процедуры – обработчика оповещения, которая будет выполнена после получения ответа пользователя. А во втором параметре указы- вается, в каком модуле расположена эта процедура. Процедура – обработчик оповещения может располагаться в модуле управляемой формы, в общем неглобальном клиентском модуле или модуле команды. В данном случае эта процедура располагается в модуле нашей формы, на что указывает ссылка ЭтотОбъект. После этого с помощью немодального метода ПоказатьВопрос() отображается окно с вопросом пользователю. В этот метод пере- дается объект ОписаниеОповещения, указывающий на процедуру модуля (ПодборЗавершение), которая будет выполнена после того, как пользователь сделает выбор в блокирующем окне. Процедура – обработчик оповещения должна быть объявлена как экспортная, с использованием ключевого слова Экспорт. В параметре Результат содержится результат ответа пользователя. Если он положительный, то произво- дится открытие формы выбора номенклатуры для подбора в документ. Чтобы не путаться, установим новый обработчик для команды Подбор. В палитре свойств этой команды в строке Действие выберем процедуру ПодборВо- прос (рис. 26. 4).
Рис. 26. 4. Установка действия для команды «Подбор»
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|