Как задать вопрос пользователю перед выполнением кода?: различия между версиями
Перейти к навигации
Перейти к поиску
Irit (обсуждение | вклад) (Новая страница: «'''Вопрос''': ''Как задать вопрос пользователю программно перед выполнением кода, например когда нужно предупредить о наличии данных перед очисткой и заполнением?'' '''Ответ''': Чтобы задать вопрос программно, используется механизм ОписаниеОповещений. Д...») Метка: визуальный редактор отключён |
Irit (обсуждение | вклад) Нет описания правки |
||
Строка 12: | Строка 12: | ||
Процедура МояКнопка(Команда) | Процедура МояКнопка(Команда) | ||
Если ВыполняетсяУсловие Тогда | |||
Оповещение = Новый ОписаниеОповещения("МояКнопкаЗавершение", ЭтаФорма); | |||
ПоказатьВопрос(Оповещение, "Мой вопрос. Ответишь?", РежимДиалогаВопрос.ДаНет); | |||
Иначе | |||
МояКнопкаЗавершение(КодВозвратаДиалога.Да, Неопределено); | |||
КонецЕсли; | |||
КонецПроцедуры | КонецПроцедуры | ||
Строка 24: | Строка 24: | ||
Процедура МояКнопкаЗавершение(Результат, ДополнительныеПараметры) Экспорт | Процедура МояКнопкаЗавершение(Результат, ДополнительныеПараметры) Экспорт | ||
Если Результат = КодВозвратаДиалога.Да Тогда | |||
ДальнейшееДействие(); | |||
КонецЕсли; | |||
КонецПроцедуры | КонецПроцедуры | ||
</pre> | </pre>Такой метод формирования вопроса не блокирует интерфейс пользователя, код после выполнения процедуры "ПоказатьВопрос" продолжает выполняться дальше, если необходимо. После нажатия на кнопку управление перейдет к процедуре "МояКнопкаЗавершение", где в поле "Результат" будет указан ответ пользователя. |
Версия от 12:23, 3 марта 2023
Вопрос:
Как задать вопрос пользователю программно перед выполнением кода, например когда нужно предупредить о наличии данных перед очисткой и заполнением?
Ответ:
Чтобы задать вопрос программно, используется механизм ОписаниеОповещений.
Для формирования вопроса необходимо добавить кнопку и определить у нее команду. Затем заполнить по примеру ниже:
&НаКлиенте Процедура МояКнопка(Команда) Если ВыполняетсяУсловие Тогда Оповещение = Новый ОписаниеОповещения("МояКнопкаЗавершение", ЭтаФорма); ПоказатьВопрос(Оповещение, "Мой вопрос. Ответишь?", РежимДиалогаВопрос.ДаНет); Иначе МояКнопкаЗавершение(КодВозвратаДиалога.Да, Неопределено); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура МояКнопкаЗавершение(Результат, ДополнительныеПараметры) Экспорт Если Результат = КодВозвратаДиалога.Да Тогда ДальнейшееДействие(); КонецЕсли; КонецПроцедуры
Такой метод формирования вопроса не блокирует интерфейс пользователя, код после выполнения процедуры "ПоказатьВопрос" продолжает выполняться дальше, если необходимо. После нажатия на кнопку управление перейдет к процедуре "МояКнопкаЗавершение", где в поле "Результат" будет указан ответ пользователя.