диалоги в 1С

для начинающих программистов: диалоги в 1С


Что такое диалог?

В 1С диалогом считается не просто сообщение, а отдельное окно, которое появляется у пользователя.

👉 Сообщить("Привет") — это не диалог.
👉 А вот Предупреждение("Осторожно!") или ВвестиЧисло(…)диалог, потому что у них есть собственные окна и они требуют реакции пользователя.

Диалоги нужны для:

  • вывода информации,
  • получения ответа или данных от пользователя.

Виды диалогов

Предупреждение

Простейший вариант:

Предупреждение("Осторожно!");

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

Можно сделать сложнее:

Предупреждение("Важное сообщение!", 5, "Внимание!");
  • окно закроется через 5 секунд,
  • сверху вместо стандартного заголовка будет «Внимание!».

Ввод числа

Диалог, который не только что-то показывает, но и возвращает введённое значение.

Число = 0;
Результат = ВвестиЧисло(Число);

Если Результат = Истина Тогда
    Сообщить("Вы ввели " + Строка(Число));
Иначе
    Сообщить("Ввод отменён");
КонецЕсли;
  • если нажали ОК → программа получила число,
  • если нажали Отмена → программа знает, что пользователь отказался.

Вопрос пользователю

Здесь можно задать варианты ответа:

Результат = Вопрос("Продолжить работу?", РежимДиалогаВопрос.ДаНетОтмена);

Если Результат = КодВозвратаДиалога.Да Тогда
    Сообщить("Отлично, идём дальше!");
ИначеЕсли Результат = КодВозвратаДиалога.Нет Тогда
    Сообщить("Окей, останавливаемся.");
Иначе
    Сообщить("Жаль, что вы нажали Отмена...");
КонецЕсли;

Модальность

Все рассмотренные диалоги — модальные.
То есть пока окно открыто — пользователь ничего другого в системе делать не может.

Немодальные окна (когда можно работать дальше) тоже есть, но о них мы поговорим позже.


📝 Домашнее задание

Сделайте программу, которая спрашивает:

«Нажмите Да, чтобы вывести числа от 1 до 10,
Нет — чтобы вывести числа от 10 до 100,
и ни в коем случае не нажимайте Отмена!»

В диалоге должны быть кнопки Да / Нет / Отмена

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *