Как задать вопрос пользователю перед выполнением кода?: различия между версиями
Перейти к навигации
Перейти к поиску
Irit (обсуждение | вклад) Нет описания правки |
Irit (обсуждение | вклад) Нет описания правки |
||
Строка 7: | Строка 7: | ||
Чтобы задать вопрос программно, используется механизм ОписаниеОповещений. | Чтобы задать вопрос программно, используется механизм ОписаниеОповещений. | ||
Для формирования вопроса необходимо добавить кнопку и определить у нее команду. Затем заполнить по примеру ниже: | Для формирования вопроса необходимо добавить кнопку и определить у нее команду. Затем заполнить по примеру ниже:<syntaxhighlight lang="apt_sources" line="1"> | ||
< | &НаКлиенте | ||
&НаКлиенте | Процедура МояКнопка(Команда) | ||
Процедура МояКнопка(Команда) | Если ВыполняетсяУсловие Тогда | ||
Оповещение = Новый ОписаниеОповещения("МояКнопкаЗавершение", ЭтаФорма); | |||
ПоказатьВопрос(Оповещение, "Мой вопрос. Ответишь?", РежимДиалогаВопрос.ДаНет); | |||
Иначе | |||
МояКнопкаЗавершение(КодВозвратаДиалога.Да, Неопределено); | |||
КонецЕсли; | |||
КонецПроцедуры | КонецПроцедуры | ||
&НаКлиенте | &НаКлиенте | ||
Процедура МояКнопкаЗавершение(Результат, ДополнительныеПараметры) Экспорт | Процедура МояКнопкаЗавершение(Результат, ДополнительныеПараметры) Экспорт | ||
Если Результат = КодВозвратаДиалога.Да Тогда | |||
ДальнейшееДействие(); | |||
КонецЕсли; | |||
КонецПроцедуры | КонецПроцедуры | ||
</ | </syntaxhighlight>Такой метод формирования вопроса не блокирует интерфейс пользователя, код после выполнения процедуры "ПоказатьВопрос" продолжает выполняться дальше, если необходимо. После нажатия на кнопку управление перейдет к процедуре "МояКнопкаЗавершение", где в поле "Результат" будет указан ответ пользователя. |
Версия от 10:47, 14 июля 2023
Вопрос:
Как задать вопрос пользователю программно перед выполнением кода, например когда нужно предупредить о наличии данных перед очисткой и заполнением?
Ответ:
Чтобы задать вопрос программно, используется механизм ОписаниеОповещений.
Для формирования вопроса необходимо добавить кнопку и определить у нее команду. Затем заполнить по примеру ниже:
&НаКлиенте
Процедура МояКнопка(Команда)
Если ВыполняетсяУсловие Тогда
Оповещение = Новый ОписаниеОповещения("МояКнопкаЗавершение", ЭтаФорма);
ПоказатьВопрос(Оповещение, "Мой вопрос. Ответишь?", РежимДиалогаВопрос.ДаНет);
Иначе
МояКнопкаЗавершение(КодВозвратаДиалога.Да, Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура МояКнопкаЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
ДальнейшееДействие();
КонецЕсли;
КонецПроцедуры
Такой метод формирования вопроса не блокирует интерфейс пользователя, код после выполнения процедуры "ПоказатьВопрос" продолжает выполняться дальше, если необходимо. После нажатия на кнопку управление перейдет к процедуре "МояКнопкаЗавершение", где в поле "Результат" будет указан ответ пользователя.