Вопрос пользователю при выполнении команды
Если в свойствах конфигурации РежимИспользованияМодальности установлен как “Не использовать”, то конструкция Ответ = Вопрос() приведет к ошибке “Использование модальных окон в данном режиме запрещено“.
В таком случаи вопрос можно задать через асинхронные методы:
- ВопросАсинх() – более современный асинхронный метод (через “обещание”, доступный с версии платформы 8.3.18)
- ПоказатьВопрос() – асинхронный метод (через “обратный вызов”).
Например, при выполнении команды “Заполнить квартальную премию” предупредим пользователя, что табличная часть будет очищена и получим подтверждение на выполнение. Реализуем задачу обоими способами:
Способ 1. ВопросАсинх()
&НаКлиенте
Асинх Процедура ЗаполнитьКвартальнуюПремию(Команда)
Ответ = Ждать ВопросАсинх(НСтр("ru = 'Табличная часть будет очищена. Продолжить?'"), РежимДиалогаВопрос.ДаНет);
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Объект.Начисления.Очистить();
//ЗаполнитьКвартальнуюПремиюНаСервере();
КонецПроцедуры
Способ 2. ПоказатьВопрос()
&НаКлиенте
Процедура ЗаполнитьКвартальнуюПремию(Команда)
Оповещение = Новый ОписаниеОповещения("ОчиститьЗавершение", ЭтотОбъект);
ТекстВопроса = НСтр("ru = 'Табличная часть будет очищена. Продолжить?'");
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Объект.Начисления.Очистить();
//ЗаполнитьКвартальнуюПремиюНаСервере();
КонецПроцедуры
Вопрос пользователю при редактировании элемента
Для того чтобы запросить подтверждение от пользователя при редактировании элемента формы, необходимо у нужного элемента установить свойство ОтображениеПредупрежденияПриРедактировании как “Отображать” и заполнить свой текст при необходимости.