Добавить в корзинуПозвонить
Найти в Дзене

Диалог с пользователем

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

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

Если в свойствах конфигурации РежимИспользованияМодальности установлен как “Не использовать”, то конструкция Ответ = Вопрос() приведет к ошибке “Использование модальных окон в данном режиме запрещено“.

В таком случаи вопрос можно задать через асинхронные методы:

  1. ВопросАсинх() – более современный асинхронный метод (через “обещание”, доступный с версии платформы 8.3.18)
  2. ПоказатьВопрос() – асинхронный метод (через “обратный вызов”).

Например, при выполнении команды “Заполнить квартальную премию” предупредим пользователя, что табличная часть будет очищена и получим подтверждение на выполнение. Реализуем задачу обоими способами:

Способ 1. ВопросАсинх()

&НаКлиенте

Асинх Процедура ЗаполнитьКвартальнуюПремию(Команда)

Ответ = Ждать ВопросАсинх(НСтр("ru = 'Табличная часть будет очищена. Продолжить?'"), РежимДиалогаВопрос.ДаНет);

Если Ответ <> КодВозвратаДиалога.Да Тогда

Возврат;

КонецЕсли;

Объект.Начисления.Очистить();

//ЗаполнитьКвартальнуюПремиюНаСервере();

КонецПроцедуры

Способ 2. ПоказатьВопрос()

&НаКлиенте

Процедура ЗаполнитьКвартальнуюПремию(Команда)

Оповещение = Новый ОписаниеОповещения("ОчиститьЗавершение", ЭтотОбъект);

ТекстВопроса = НСтр("ru = 'Табличная часть будет очищена. Продолжить?'");

ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);

КонецПроцедуры

&НаКлиенте

Процедура ОчиститьЗавершение(Ответ, ДополнительныеПараметры) Экспорт

Если Ответ <> КодВозвратаДиалога.Да Тогда

Возврат;

КонецЕсли;

Объект.Начисления.Очистить();

//ЗаполнитьКвартальнуюПремиюНаСервере();

КонецПроцедуры

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

Для того чтобы запросить подтверждение от пользователя при редактировании элемента формы, необходимо у нужного элемента установить свойство ОтображениеПредупрежденияПриРедактировании как “Отображать” и заполнить свой текст при необходимости.

-2