Как задать вопрос пользователю перед выполнением кода?
Перейти к навигации
Перейти к поиску
Вопрос:
Как задать вопрос пользователю программно перед выполнением кода, например когда нужно предупредить о наличии данных перед очисткой и заполнением?
Ответ:
Чтобы задать вопрос программно, используется механизм ОписаниеОповещений.
Для формирования вопроса необходимо добавить кнопку и определить у нее команду. Затем заполнить по примеру ниже:
&НаКлиенте Процедура МояКнопка(Команда) Если ВыполняетсяУсловие Тогда Оповещение = Новый ОписаниеОповещения("МояКнопкаЗавершение", ЭтаФорма); ПоказатьВопрос(Оповещение, "Мой вопрос. Ответишь?", РежимДиалогаВопрос.ДаНет); Иначе МояКнопкаЗавершение(КодВозвратаДиалога.Да, Неопределено); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура МояКнопкаЗавершение(Результат, ДополнительныеПараметры) Экспорт Если Результат = КодВозвратаДиалога.Да Тогда ДальнейшееДействие(); КонецЕсли; КонецПроцедуры
Такой метод формирования вопроса не блокирует интерфейс пользователя, код после выполнения процедуры "ПоказатьВопрос" продолжает выполняться дальше, если необходимо. После нажатия на кнопку управление перейдет к процедуре "МояКнопкаЗавершение", где в поле "Результат" будет указан ответ пользователя.