РежимДиалогаВопрос.ПрерватьПовторитьПропустить

Свойства · AbortRetryIgnore

Кнопки "Прервать", "Повторить" и "Пропустить".

Полное описание, параметры и ограничения

РежимДиалогаВопрос.ПрерватьПовторитьПропустить (QuestionDialogMode.AbortRetryIgnore)

РежимДиалогаВопрос (QuestionDialogMode)

ПрерватьПовторитьПропустить (AbortRetryIgnore)

Доступен, начиная с версии 8.0.

Описание:
Кнопки "Прервать", "Повторить" и "Пропустить".
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Обработать ответ вопроса: ПрерватьПовторитьПропустить / Пропустить

Настоящий немодальный вопрос возвращает ответ в экспортную процедуру. Подтверждение меняет только статус своей формы, не удаляет данные и не отправляет сообщение.

Где и как запускать

Клиентский модуль своей управляемой формы. Callback с Экспорт размещается отдельно на уровне модуля.

Подготовка

  1. Создайте внешнюю учебную обработку с управляемой формой. Добавьте Статус (Строка 200), поле для его просмотра, команду ЗадатьУчебныйВопрос и кнопку.

  2. Основной блок — обработчик команды, дополнительный — отдельная экспортная процедура в том же модуле формы. Имя ПослеУчебногоВопроса должно точно совпадать со строкой в ОписаниеОповещения.

  3. Не пытайтесь присвоить результат вызова ПоказатьВопрос переменной ответа: управление возвращается до выбора пользователя.

  4. Для Таймаут не нажимайте кнопки три секунды. Для остальных вариантов нажмите кнопку Пропустить либо сравните с другим ответом.

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

Разбор по шагам

  1. Создаём реальное описание завершения и задаём поддерживаемый состав кнопок.

  2. После закрытия вопроса платформа передаёт фактический результат в callback.

  3. Сравниваем с типизированным КодВозвратаДиалога, а не локализованным текстом кнопки.

Как проверить результат

  1. Для ожидаемого результата Пропустить статус сообщает Получен ожидаемый ответ.

  2. Другой ответ попадает в отдельную ветвь; закрытие окна и таймаут не выдаются автоматически за подтверждение.

Ожидаемый результат

Режим вопроса и конкретный код результата использованы в настоящем пользовательском диалоге.

На что обратить внимание

  1. РежимДиалогаВопрос задаёт кнопки, КодВозвратаДиалога — фактический ответ; это разные перечисления.

  2. Надписи кнопок зависят от локализации; сравнивайте значения, не строки Да / Yes.

  3. Пример не выполняет хозяйственную операцию после подтверждения и не исполняется браузером справочника.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.