Разобрать событие «ПриВыводеПериода» на собственном элементе

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

Подготавливаем конкретную свою форму и вызываем событие обычным пользовательским действием. Основной блок — настоящий обработчик, а не прямой ручной вызов события.

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

Клиентский обработчик собственной управляемой формы; подготовка данных отдельно в ПриСозданииНаСервере.

Подготовка

  1. Создайте внешнюю обработку с собственной управляемой формой, запуск — тонкий клиент, если ниже не указан другой клиент.

  2. Добавьте СчетчикСобытий (Число 10.0) и СтатусУрока (Строка 200), выведите оба на форму. Дополнительный блок инициализации поместите в модуль этой же формы.

  3. Основной обработчик назначьте через свойства нужного элемента → События. Параметр Элемент добавляется обработчику события элемента формы; у события самой формы его нет. Не создавайте вторую процедуру с тем же именем.

  4. Добавьте ДеньУрока типа Дата (состав Дата) и поле КалендарьУрока вида ПолеКалендаря с этим путём данных. Проверка в тонком / толстом клиенте, не веб-клиенте.

  5. В календаре перейдите к октябрю, затем к ноябрю. Обработчик получает оформление месяца от платформы, конструктор ОформлениеПериода не нужен.

&НаКлиенте
Процедура КалендарьУрокаПриВыводеПериода(Элемент, ОформлениеПериода)
    Если Месяц(ОформлениеПериода.НачалоПериода) = 10 Тогда
        ОформлениеПериода.ЦветТекста = WebЦвета.Синий;
    Иначе
        ОформлениеПериода.ЦветТекста = WebЦвета.Черный;
    КонецЕсли;
    Сообщить("Оформлен месяц: " + Строка(Месяц(ОформлениеПериода.НачалоПериода)));
КонецПроцедуры
Та же собственная форма: подготовка до интерактивного действия
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    СчетчикСобытий = 0;
    СтатусУрока = "Ожидается действие пользователя";
    ДеньУрока = Дата(2026, 10, 15);
КонецПроцедуры

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

  1. Разместите указанный элемент и отдельный инициализатор в правильном модуле.

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

  3. Посмотрите собственный статус / результат; не путайте событие с похожими соседними событиями.

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

  1. Октябрь получает синий цвет текста, другой месяц — чёрный. НачалоПериода только читается, а записывается разрешённый ЦветТекста.

  2. Нет вызовов &НаСервере и изменения свойств формы, требующих сервера. Число вызовов зависит от отображаемых / закешированных месяцев.

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

Событие связано с реальным источником, известными собственными данными и воспроизводимым действием.

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

  1. ПриВыводеПериода не допускает серверных методов формы и свойств, приводящих к серверному вызову.

  2. Не добавляйте Элемент в события самой формы / модуль команды; у событий элементов формы он является контекстным параметром обработчика.

  3. Разные дополнительные блоки относятся к явно названным модулям; одинаковые процедуры инициализации объединяются, а не дублируются.

  4. Код 1С при сборке справочника не исполнялся; сеть, рабочие записи, печать и внешние компоненты не использовались.

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

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

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

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

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