Применить ОбновлениеТекстаРедактирования.Авто в своей форме

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

Вариант ОбновлениеТекстаРедактирования.Авто назначается конкретному изменяемому свойству собственной формы / элемента: Элементы.Наименование.ОбновлениеТекстаРедактирования.

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

Модуль собственной управляемой формы: серверное создание, дополнительные клиентские процедуры отдельно. Применимость указана в подготовке.

Подготовка

  1. Создайте собственную внешнюю учебную обработку с управляемой формой. Для каждого урока используйте отдельный вариант формы с указанными именами реквизитов и элементов.

  2. Основной блок назначьте событию формы ПриСозданииНаСервере. Не вставляйте его внутрь другого обработчика и не создавайте второй одноимённой процедуры.

  3. Реквизит формы Наименование (Строка 100), поле ввода Наименование с тем же путём к данным. Это собственные данные формы, не рабочая номенклатура.

  4. Добавьте команду НачатьОпыт и её кнопку с первым дополнительным обработчиком; второй дополнительный блок — отдельная экспортная процедура того же модуля формы.

  5. Нажмите НачатьОпыт, затем начните редактировать Наименование и оставьте фокус в поле. Через пять секунд одноразовый обработчик меняет значение реквизита на Ручка; наблюдайте незавершённый текст поля.

  6. Если перед присваиванием вы закончили редактирование, различие режимов может быть не видно. Здесь сравнивается текст редактора с программным значением, а не сохранение в базе.

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

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

  1. Создаём собственные реквизиты и элементы указанного типа.

  2. Серверный обработчик заполняет известные данные и назначает типизированную константу.

  3. Проверяем фактический эффект в указанном клиенте / интерфейсе; сообщение означает назначение свойства, не runtime-проверку визуального результата.

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

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

  2. Ожидание подключено одноразово: бесконечный таймер и повторная запись данных не создаются.

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

Показано применение варианта в подходящем контексте собственного элемента.

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

  1. Не присваивайте свойство элементу другого вида: например, ВидФлажка существует у расширения поля флажка, а не у обычной строки.

  2. Назначение параметров макета делается на сервере при создании формы; не переносите его в события активизации, запрещающие серверные обращения.

  3. Описанные эффекты зависят от поддерживаемого интерфейса и устройства. В коде нет проверок версии платформы или имени конфигурации.

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

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

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

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

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