Создать пустой редактор и явно заполнить его свойство Текст

Учебные задачи

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

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

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

Подготовка

  1. Собственная учебная конфигурация УчебнаяКонфигурацияСинтаксиса, платформа 8.5.1.1343. Создайте новую внешнюю обработку с пустой управляемой основной формой.

  2. В форме создайте команду ОткрытьУчебныйКонструктор, её кнопку и назначьте действие одноимённой процедуре. Назначьте событие ПриОткрытии обработчику из кода. Каждый урок — отдельный полный модуль формы.

  3. Асинхронный и callback-уроки выполняются на клиенте Windows; модальный вариант — только толстый клиент собственной базы, где модальные вызовы уже разрешены. Режим рабочей конфигурации ради урока не меняйте.

  4. Черновик из двух параметров не содержит ИЗ и не читает таблицы базы. Диалог может показывать структуру вашей учебной конфигурации, но этот код не выполняет даже принятый текст.

  5. Первый опыт: измените состав полей в редакторе и нажмите Отмена. Второй опыт: снова откройте, измените псевдоним поля и нажмите ОК. Сверяйте сообщение с черновиком, показанным перед открытием.

  6. Учебный черновик хранится в переменной этого экземпляра формы; закрытие формы его теряет. Записи базы, файлов, рабочих настроек и автоматического запуска полученного запроса нет.

Перем СобственныйЧерновик;
Перем КонструкторЗанят;

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    СобственныйЧерновик = "ВЫБРАТЬ &Название КАК Наименование, &Количество КАК Количество";
    КонструкторЗанят = Ложь;
КонецПроцедуры


&НаКлиенте
Асинх Процедура ОткрытьУчебныйКонструктор(Команда)
    Если КонструкторЗанят Тогда
        Сообщить("Сначала завершите уже открытый собственный конструктор");
        Возврат;
    КонецЕсли;
    Если ТипЗнч(СобственныйЧерновик) <> Тип("Строка") Тогда
        ВызватьИсключение "Назначьте событие ПриОткрытии обработчику урока";
    КонецЕсли;
    ИсходныйТекст = СобственныйЧерновик;
    Сообщить("Исходный черновик: " + ИсходныйТекст);
    Конструктор = Новый КонструкторЗапроса;
    Сообщить(Конструктор.Текст = "");
    Конструктор.Текст = ИсходныйТекст;
    Конструктор.АвтоДобавлениеПредставлений = Истина;
    Конструктор.РежимКомпоновкиДанных = Ложь;
    Сообщить(Конструктор.Текст = ИсходныйТекст);
    Сообщить(Конструктор.АвтоДобавлениеПредставлений);
    Сообщить(НЕ Конструктор.РежимКомпоновкиДанных);
    КонструкторЗанят = Истина;
    Попытка
        ПолученныйТекст = Ждать Конструктор.ОткрытьАсинх();
    Исключение
        КонструкторЗанят = Ложь;
        ВызватьИсключение "Учебный конструктор не завершён: " + ОписаниеОшибки();
    КонецПопытки;
    КонструкторЗанят = Ложь;
    Если ТипЗнч(ПолученныйТекст) = Тип("Строка") Тогда
        Если ПустаяСтрока(ПолученныйТекст) Тогда
            Сообщить("Пустой текст не принят; собственный черновик сохранён");
            Сообщить(СобственныйЧерновик = ИсходныйТекст);
        Иначе
            СобственныйЧерновик = ПолученныйТекст;
            Сообщить("Принятый черновик, без выполнения: " + СобственныйЧерновик);
            Сообщить(СобственныйЧерновик = ПолученныйТекст);
        КонецЕсли;
    Иначе
        Сообщить("Текст не получен; собственный черновик сохранён");
        Сообщить(СобственныйЧерновик = ИсходныйТекст);
    КонецЕсли;
КонецПроцедуры

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

  1. Создаём КонструкторЗапроса без текста; документированное начальное значение — пустая строка.

  2. Присваиваем собственный ИсходныйТекст, не загружаем рабочий запрос из модуля конфигурации.

  3. Включаем АвтоДобавлениеПредставлений. Этот признак влияет на добавление ссылочных полей, а не на псевдонимы параметров.

  4. В текущем черновике нет ссылочных полей: изменение представлений на данных этот урок не обещает.

  5. Открываем через Ждать; принятие, отмена и запрет автоматического выполнения работают как в первом уроке.

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

  1. Четыре проверки до диалога — Истина: пустой начальный текст, установленный черновик и два явно заданных флага.

  2. Сначала отмените, затем подтвердите изменённый непустой текст. В обеих ветках контроль черновика Истина.

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

Показаны документированное значение по умолчанию и отдельное заполнение редактора.

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

  1. АвтоДобавлениеПредставлений не равно РежимКомпоновкиДанных: это независимые настройки.

  2. Пустой исходный редактор не содержит готового рабочего запроса.

  3. Для выполнения отредактированного текста требуется отдельная проверка и осознанный шаг, которого здесь нет.

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

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

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

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

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