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

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

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

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

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

Подготовка

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

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

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

  4. Добавьте График типа Диаграмма и связанное поле График вида ПолеДиаграммы. Выделяйте мышью разные столбцы собственной гистограммы.

  5. В отдельном блоке заполнения уже есть ПриСозданииНаСервере: добавьте первые два присваивания инициализации в него, не создавайте второй такой обработчик.

&НаКлиенте
Процедура ГрафикПриАктивизации(Элемент)
    СчетчикСобытий = СчетчикСобытий + 1;
    СтатусУрока = "Изменено выделение своей диаграммы: " + Строка(СчетчикСобытий);
    Сообщить(СтатусУрока);
КонецПроцедуры
Та же форма: полное заполнение собственной диаграммы вместо отдельного инициализатора
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    СчетчикСобытий = 0;
    СтатусУрока = "Выберите столбец";
    Образец = Новый Диаграмма;
    Образец.ТипДиаграммы = ТипДиаграммы.Гистограмма;
    Образец.РежимВыделения = РежимВыделенияДиаграммы.ВыделениеЗначений;
    Месяцы = СтрРазделить("Январь;Февраль;Март", ";");
    Для ИндексСерии = 1 По 3 Цикл
        Серия = Образец.УстановитьСерию("Серия " + Строка(ИндексСерии));
        Для ИндексТочки = 0 По 2 Цикл
            Точка = Образец.УстановитьТочку(Месяцы[ИндексТочки]);
            Образец.УстановитьЗначение(Точка, Серия, ИндексСерии * (ИндексТочки + 1) * 10);
        КонецЦикла;
    КонецЦикла;
    График = Образец;
КонецПроцедуры

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

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

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

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

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

  1. При смене выделенных столбцов счётчик увеличивается; данные трёх серий за три месяца не меняются.

  2. Событие ПриАктивизации не является редактированием значения или выполнением расшифровки.

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

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

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

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

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

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

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

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

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

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

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