Открывает модально конструктор запроса.
Синтаксис
ОткрытьМодально()Полное описание, параметры и ограничения
КонструкторЗапроса.ОткрытьМодально (QueryWizard.DoModal)
КонструкторЗапроса (QueryWizard)
ОткрытьМодально (DoModal)
Доступен, начиная с версии 8.0.
Синтаксис:
ОткрытьМодально()
Возвращаемое значение:
Тип: Булево.
Истина - редактирование завершено нажатием на кнопку "ОК"; Ложь - в противном случае.
Описание:
Открывает модально конструктор запроса.
Доступность:
Толстый клиент.
См. также:
КонструкторЗапроса, метод ОткрытьАсинх
КонструкторЗапроса, метод Показать
Использование в версии:
Доступен, начиная с версии 8.0.
Описание изменено в версии 8.3.18.
Методическая информация
Практические примеры
Прочитать Текст только после подтверждения модального редактора
ОткрытьМодально возвращает Булево. Сам изменённый текст читается из свойства конструктора.
Где и как запускать
Полный модуль собственной управляемой формы. Диалог только редактирует учебный черновик.
Подготовка
Собственная учебная конфигурация УчебнаяКонфигурацияСинтаксиса, платформа 8.5.1.1343. Создайте новую внешнюю обработку с пустой управляемой основной формой.
В форме создайте команду ОткрытьУчебныйКонструктор, её кнопку и назначьте действие одноимённой процедуре. Назначьте событие ПриОткрытии обработчику из кода. Каждый урок — отдельный полный модуль формы.
Асинхронный и callback-уроки выполняются на клиенте Windows; модальный вариант — только толстый клиент собственной базы, где модальные вызовы уже разрешены. Режим рабочей конфигурации ради урока не меняйте.
Черновик из двух параметров не содержит ИЗ и не читает таблицы базы. Диалог может показывать структуру вашей учебной конфигурации, но этот код не выполняет даже принятый текст.
Первый опыт: измените состав полей в редакторе и нажмите Отмена. Второй опыт: снова откройте, измените псевдоним поля и нажмите ОК. Сверяйте сообщение с черновиком, показанным перед открытием.
Учебный черновик хранится в переменной этого экземпляра формы; закрытие формы его теряет. Записи базы, файлов, рабочих настроек и автоматического запуска полученного запроса нет.
Перем СобственныйЧерновик;
Перем КонструкторЗанят;
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СобственныйЧерновик = "ВЫБРАТЬ &Название КАК Наименование, &Количество КАК Количество";
КонструкторЗанят = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьУчебныйКонструктор(Команда)
Если КонструкторЗанят Тогда
Сообщить("Сначала завершите уже открытый собственный конструктор");
Возврат;
КонецЕсли;
Если ТипЗнч(СобственныйЧерновик) <> Тип("Строка") Тогда
ВызватьИсключение "Назначьте событие ПриОткрытии обработчику урока";
КонецЕсли;
ИсходныйТекст = СобственныйЧерновик;
Сообщить("Исходный черновик: " + ИсходныйТекст);
Конструктор = Новый КонструкторЗапроса(ИсходныйТекст);
Конструктор.АвтоДобавлениеПредставлений = Ложь;
Конструктор.РежимКомпоновкиДанных = Ложь;
Сообщить(Конструктор.Текст = ИсходныйТекст);
Сообщить(НЕ Конструктор.АвтоДобавлениеПредставлений);
Сообщить(НЕ Конструктор.РежимКомпоновкиДанных);
КонструкторЗанят = Истина;
Попытка
Принято = Конструктор.ОткрытьМодально();
Исключение
КонструкторЗанят = Ложь;
ВызватьИсключение "Модальный учебный конструктор не завершён: " + ОписаниеОшибки();
КонецПопытки;
КонструкторЗанят = Ложь;
Если Принято Тогда
ПолученныйТекст = Конструктор.Текст;
Если ТипЗнч(ПолученныйТекст) = Тип("Строка") Тогда
Если ПустаяСтрока(ПолученныйТекст) Тогда
Сообщить("Пустой текст не принят; собственный черновик сохранён");
Сообщить(СобственныйЧерновик = ИсходныйТекст);
Иначе
СобственныйЧерновик = ПолученныйТекст;
Сообщить("Принятый черновик, без выполнения: " + СобственныйЧерновик);
Сообщить(СобственныйЧерновик = ПолученныйТекст);
КонецЕсли;
Иначе
Сообщить("Текст не получен; собственный черновик сохранён");
Сообщить(СобственныйЧерновик = ИсходныйТекст);
КонецЕсли;
Иначе
Сообщить("Отмена модального конструктора; собственный черновик сохранён");
Сообщить(СобственныйЧерновик = ИсходныйТекст);
КонецЕсли;
КонецПроцедурыРазбор по шагам
Урок запускается в толстом клиенте собственной базы с разрешёнными модальными вызовами.
Создаём отдельный редактор текущего черновика; собственная переменная не передаётся как изменяемая ссылка.
После Истина читаем Конструктор.Текст и принимаем непустую строку.
После Ложь не применяем содержимое редактора и проверяем сохранение исходного черновика.
Ошибка сбрасывает занятость и повторно сообщает причину, не выдавая её за Отмену.
Как проверить результат
До открытия три Истина. Отмена даёт Истина проверки сохранённого черновика.
ОК с непустым текстом показывает принятый черновик; он не выполняется и не записывается в базу.
Ожидаемый результат
Разделены булев результат подтверждения и строковое содержимое редактора.
На что обратить внимание
Метод недоступен тонкому/веб-клиенту; доступность самого типа не означает доступность каждого метода.
Не меняйте рабочую конфигурацию или системные режимы ради запуска этого примера.
Не применяйте текст в ветке отмены даже если внутренний редактор его уже изменил.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.