1С 8.3 Диалоги - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Диалоги

Данные > Примеры кода 1С > 1С 8.3 Диалоги
Диалог в 1С 8.3 - это окно (элемент графического интерфейса), которое открывается пользователю (независимо от формы) для вывода информации/вопросов, получение ответов, ввода информации. Диалоги могут быть модальные и немодальные. Модальные диалоги блокируют работу с другими окнами формы до своего закрытия. Обычно с их помощью реализуется диалог, требующий от пользователя принятия некоторого решения. Соответственно немодальные диалоги могут параллельно отрываться и работать одновременно с другими окнами формы.
Начиная с версии 8.3.3.721 (06.09.2013) желательно отказаться от модальности!
Для проектирования форм уведомлений, вопросов и предупреждений рекомендую следующий инструментарий: Консоль диалоговых форм (УФ)
Модальные диалоги (устаревшее) в 1С 8.3:
&НаКлиенте
Процедура МодальныеДиалогиНаКлиенте(Команда)

    Перем
пВводДаты;
    Перем
пВводЧисла;
    Перем
пВводСтроки;

   
// Вывод предупреждения пользователю (модально)
   
Предупреждение("Внимание! Константа изменена!", 0, "Предупреждение об изменении константы");

   
// Вывод диалога вопроса с заголовком и нужными кнопками (модально)
   
ВашОтвет = Вопрос("Загрузить список банков?", РежимДиалогаВопрос.ДаНетОтмена, 0, КодВозвратаДиалога.Да, "Список банков 2020г.");
    Если
ВашОтвет = КодВозвратаДиалога.Да Тогда
       
Сообщить("Список банков с сайта koder.by загружен!");
    КонецЕсли;

   
// Открыть значение для работы с ним (модально)
   
ОткрытьЗначение(98.12);

   
// Удаление сообщении и подача сигнала
   
Для Н = 1 По 5 Цикл
       
Сообщить(Н);
    КонецЦикла;

   
Предупреждение("Через 10 секунд все сообщения будут удалены!", 10);
   
ОчиститьСообщения();
   
Сигнал();

   
// Установка статуса сообщения
   
Сообщить("Внимание! Построение данного отчета временно запрещено!", СтатусСообщения.ОченьВажное);

   
// Ввод даты пользователем (модально)
   
Если ВвестиДату(пВводДаты, "Введите дату выгрузки информации на портал koder.by", ЧастиДаты.Дата) = Истина Тогда
       
Сообщить("Информация выгружена на дату: " + пВводДаты);
    КонецЕсли;

   
// Ввод значения определенного типа пользователем (модально)
   
Если ВвестиЗначение(пВводЧисла, "Введите значение", "Число") Тогда
       
Сообщить(пВводЧисла);
    КонецЕсли;

   
// Ввод строки пользователем (модально)
   
Если ВвестиСтроку(пВводСтроки, "Введите строку", 0, Истина) Тогда
       
Сообщить(пВводСтроки);
    КонецЕсли;

   
// Ввод числа определенного формата пользователем (модально)
   
Если ВвестиЧисло(пВводЧисла, "Введите число", 3, 1) Тогда
       
Сообщить(пВводЧисла);
    КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура МодальныеДиалогиНаСервере(Команда)

   
ОткрытьЗначение(Справочники.МестаХранения.НайтиПоНаименованию("Основной"));

КонецПроцедуры
Вывод диалога предупреждения с заголовком (немодально) в 1С 8.3:
&НаКлиенте
Процедура ВыводДиалогаПредупреждения(Команда)

   
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияПредупреждение", ЭтотОбъект);
   
ПоказатьПредупреждение(Оповещение, "Внимание! Константа изменена!", 0, "Предупреждение об изменении константы");

КонецПроцедуры

&НаКлиенте
Процедура ПослеЗакрытияПредупреждение(Параметры) Экспорт

КонецПроцедуры
Вывод диалога вопроса с заголовком и нужными кнопками (немодально) в 1С 8.3:
&НаКлиенте
Процедура ВыводДиалогаВопроса(Команда)

   
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект);
   
ПоказатьВопрос(Оповещение, "Загрузить список банков?", РежимДиалогаВопрос.ДаНетОтмена, 0, КодВозвратаДиалога.Да, "Список банков 2020г.");

КонецПроцедуры

&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт

    Если
Результат = КодВозвратаДиалога.Да Тогда
       
Сообщить("Список банков с сайта koder.by загружен!");
    КонецЕсли;

КонецПроцедуры
Вывод значения для интерактивной работы с ним (немодально) в 1С 8.3:
&НаКлиенте
Процедура ВыводЗначенияДляИнтерактивнойРаботыСНим(Команда)

   
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияЗначения", ЭтотОбъект);
   
ПоказатьЗначение(Оповещение, 98.12);

КонецПроцедуры

&НаКлиенте
Процедура ПослеЗакрытияЗначения(Параметры) Экспорт

КонецПроцедуры
Вывод даты пользователю (немодально) в 1С 8.3:
&НаКлиенте
Процедура ВыводДатыПользователю(Команда)

   
Оповещение = Новый ОписаниеОповещения("ПослеВводаДаты", ЭтотОбъект);
   
ПоказатьВводДаты(Оповещение, , "Введите дату выгрузки информации на портал koder.by:", ЧастиДаты.Дата);

КонецПроцедуры

&НаКлиенте
Процедура ПослеВводаДаты(ДатаВыгрузки, Параметры) Экспорт

    Если Не
ДатаВыгрузки = Неопределено Тогда
       
Сообщить("Информация выгружена на дату: " + ДатаВыгрузки);
    КонецЕсли;

КонецПроцедуры
Ввод значения определенного типа пользователем (немодально) в 1С 8.3:
&НаКлиенте
Процедура ВводЗначенияОпределенногоТипаПользователем(Команда)

   
Оповещение = Новый ОписаниеОповещения("ПослеВводаЗначения", ЭтотОбъект);
   
ПоказатьВводЗначения(Оповещение, , "Введите значение", "Число");

КонецПроцедуры

&НаКлиенте
Процедура ПослеВводаЗначения(Результат, Параметры) Экспорт

    Если Не
Результат = Неопределено Тогда
       
Сообщить(Результат);
    КонецЕсли;

КонецПроцедуры
Ввод строки пользователем (немодально) в 1С 8.3:
&НаКлиенте
Процедура ВводСтрокиПользователем(Команда)

   
Оповещение = Новый ОписаниеОповещения("ПослеВводаСтроки", ЭтотОбъект);
   
ПоказатьВводСтроки(Оповещение, , "Введите строку", 0, Истина);

КонецПроцедуры

&НаКлиенте
Процедура ПослеВводаСтроки(Результат, Параметры) Экспорт

    Если Не
Результат = Неопределено Тогда
       
Сообщить(Результат);
    КонецЕсли;

КонецПроцедуры
Ввод числа определенного типа пользователем (немодально) в 1С 8.3:
&НаКлиенте
Процедура ВводЧислаОпределенногоТипаПользователем(Команда)

   
Оповещение = Новый ОписаниеОповещения("ПослеВводаЧисла", ЭтотОбъект);
   
ПоказатьВводЧисла(Оповещение, , "Введите число", 3, 1);

КонецПроцедуры

&НаКлиенте
Процедура ПослеВводаЧисла(Результат, Параметры) Экспорт

    Если Не
Результат = Неопределено Тогда
       
Сообщить(Результат);
    КонецЕсли;

КонецПроцедуры
📰 Актуальные новости с тегом #Диалоги:
  • В версии 8.3.25 генерация речи из текста станет продолжением ранее реализованного функционала (8.3.23 - распознавания речи и перевода в текстовый формат). Начиная с релиза  8.3.25, можно слушать программу, а не изучать инструкции, глядя в экран. Сервис генерирует речь из заданного текста, воспроизводит сразу или сохраняет (*.WAV). Во встроенном языке появились дополнительные объекты и методы для поддержки этой функциональности.
  • В версии 8.3.21 в диалоге, который возникает при ошибках подключения к информационной базе, реализована возможность отображения информации, которая упростит (для пользователя) понимание причины ошибки и к кому следует обращаться в случае возникновения этой ошибки.
    Реализован объект НастройкиОбработкиОшибокПриЗапуске. Для объекта МенеджерОбработкиОшибок реализованы методы УстановитьНастройкиОбработкиОшибокПриЗапуске() и ПолучитьНастройкиОбработкиОшибокПриЗапуке().
    Для параметров подключения к информационной базы, которые описываются в файле *.v8i реализован параметр StartupErrorHelpURL и StartupErrorHelpText
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 21.05.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому