Выбор: реальные данные своего поля

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

Событие показано вместе с собственным источником и точным местом назначения обработчика.

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

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

Подготовка

  1. Своя учебная обработка, реквизит формы Статус Строка 250 и видимое поле для него. Обработчик назначается событию элемента формы в конфигураторе, а не вызывается вручную.

  2. У обработчика поля первым идёт Элемент. Справка объекта данных может описывать остальные параметры без этого неявного параметра поля.

  3. BSL, интерактивные действия, запись файлов и печать при сборке HTML не выполнялись.

  4. Своя управляемая форма: УчебныйГрафик типа ДиаграммаГанта, связанное ПолеПлана вида Поле диаграммы Ганта; РазрешитьСворачивание Булево с видимым флажком, начальное Ложь.

  5. Дополнительную процедуру назначьте событию формы ПриСозданииНаСервере. Группа Все книги действительно имеет дочернюю точку Книга. Для опыта используйте толстый клиент и обычные команды раскрытия / сворачивания.

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

&НаКлиенте
Процедура ПолеПланаВыбор(Элемент, Значения, СтандартнаяОбработка, Дата)
    СтандартнаяОбработка = Ложь;
    Статус = "Выбор собственного плана: " + Строка(Значения);
    Если Дата <> Неопределено Тогда
        Статус = Статус + "; дата: " + Строка(Дата);
    КонецЕсли;
    Сообщить(Статус);
КонецПроцедуры
Тот же модуль: свой интервал и настоящая иерархия точек
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    УчебныйГрафик = Новый ДиаграммаГанта;
    УчебныйГрафик.Обновление = Ложь;
    УчебныйГрафик.АвтоОпределениеПолногоИнтервала = Ложь;
    УчебныйГрафик.УстановитьПолныйИнтервал(Дата(2026, 10, 1), Дата(2026, 10, 8));
    Серия = УчебныйГрафик.УстановитьСерию("План книг");
    УчебныйГрафик.УстановитьТочку("Все книги");
    Точка = УчебныйГрафик.УстановитьТочку("Книга", "Все книги");
    Значение = УчебныйГрафик.ПолучитьЗначение(Точка, Серия);
    Значение.Расшифровка = "BOOK-001";
    Интервал = Значение.Добавить();
    Интервал.Начало = Дата(2026, 10, 2);
    Интервал.Конец = Дата(2026, 10, 3);
    Интервал.Текст = "Подготовить книгу";
    Интервал.Расшифровка = "Подготовка BOOK-001";
    Шкала = УчебныйГрафик.ОбластьПостроения.ШкалаВремени;
    Для Каждого Слой Из Шкала.Элементы Цикл
        Слой.Видимость = Ложь;
    КонецЦикла;
    Деления = Шкала.Элементы.Добавить();
    Деления.Видимость = Истина;
    Деления.Кратность = 1;
    Деления.Единица = ТипЕдиницыШкалыВремени.День;
    УчебныйГрафик.Обновление = Истина;
КонецПроцедуры

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

  1. Подготовьте указанные собственные реквизиты и элемент формы.

  2. Заполните учебные данные и назначьте событие.

  3. Вызовите описанное интерактивное действие и сравните Статус.

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

  1. Дата может быть Неопределено при выборе заголовка точки / серии. Значения либо Расшифровка могут оказаться массивом перекрывающихся интервалов; код не обращается к ним как к единственному интервалу.

  2. Статус обновляется только при настоящем событии своего поля. Наличие текста обработчика в HTML не означает, что платформа уже выполнила его.

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

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

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

  1. Событие интерфейса само по себе не подтверждает запись данных в базе.

  2. Код здесь не исполнялся; рабочие данные не изменялись.

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

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

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

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

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