Содержание:
Вопрос пользователю при выполнении команды
Если в свойствах конфигурации РежимИспользованияМодальности установлен как “Не использовать”, то конструкция Ответ = Вопрос() приведет к ошибке “Использование модальных окон в данном режиме запрещено“.
В таком случаи вопрос можно задать через асинхронные методы:
- ВопросАсинх() – более современный асинхронный метод (через “обещание”, доступный с версии платформы 8.3.18)
- ПоказатьВопрос() – асинхронный метод (через “обратный вызов”).
Например, при выполнении команды “Заполнить квартальную премию” предупредим пользователя, что табличная часть будет очищена и получим подтверждение на выполнение. Реализуем задачу обоими способами:
Способ 1. ВопросАсинх()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
&НаКлиенте Асинх Процедура ЗаполнитьКвартальнуюПремию(Команда) Ответ = Ждать ВопросАсинх(НСтр("ru = 'Табличная часть будет очищена. |Продолжить?'"), РежимДиалогаВопрос.ДаНет); Если Ответ <> КодВозвратаДиалога.Да Тогда Возврат; КонецЕсли; Объект.Начисления.Очистить(); //ЗаполнитьКвартальнуюПремиюНаСервере(); КонецПроцедуры |
Способ 2. ПоказатьВопрос()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
&НаКлиенте Процедура ЗаполнитьКвартальнуюПремию(Команда) Оповещение = Новый ОписаниеОповещения("ОчиститьЗавершение", ЭтотОбъект); ТекстВопроса = НСтр("ru = 'Табличная часть будет очищена. |Продолжить?'"); ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет); КонецПроцедуры &НаКлиенте Процедура ОчиститьЗавершение(Ответ, ДополнительныеПараметры) Экспорт Если Ответ <> КодВозвратаДиалога.Да Тогда Возврат; КонецЕсли; Объект.Начисления.Очистить(); //ЗаполнитьКвартальнуюПремиюНаСервере(); КонецПроцедуры |
Вопрос пользователю при редактировании элемента
Для того чтобы запросить подтверждение от пользователя при редактировании элемента формы, необходимо у нужного элемента установить свойство ОтображениеПредупрежденияПриРедактировании как “Отображать” и заполнить свой текст при необходимости.