Тип: Массив, Неопределено. Если нажатие произведено на элемент планировщика, содержит массив объектов типа ЭлементПланировщика. Иначе - Неопределено.
Полное описание, параметры и ограничения
ПараметрыФормированияКомандПоляПланировщика.Элементы (PlannerFieldCommandGenerateParameters.Items)
ПараметрыФормированияКомандПоляПланировщика (PlannerFieldCommandGenerateParameters)
Элементы (Items)
Доступен, начиная с версии 8.3.23.
Использование:
Только чтение.
Описание:
Тип: Массив, Неопределено.
Если нажатие произведено на элемент планировщика, содержит массив объектов типа ЭлементПланировщика.
Иначе - Неопределено.
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.23.
Методическая информация
Практические примеры
Разобрать реальный контекст нажатия в планировщике
Все девять свойств ПараметрыФормированияКомандПоляПланировщика читаются из аргумента настоящего события.
Где и как запускать
Полный модуль собственной управляемой формы с двумя вымышленными событиями и настоящим обработчиком меню.
Подготовка
Создайте новую внешнюю обработку УчебныйПланировщик с пустой управляемой основной формой в учебной базе 8.5.1.1343. Каждый урок — отдельная копия модуля.
Не создавайте вручную реквизит УчебныйПлан и поле ПолеПлана: они создаются программно.
В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Весь приведённый код вставьте на уровне модуля.
Сохраните собственную EPF и откройте через Файл → Открыть в тонком клиенте Windows. События относятся к фиксированной дате 15.09.2026, не к сегодняшнему дню.
Данные существуют только в памяти формы. Записи календарей, документов, пользователей, оборудования и печать не используются.
Только собственная учебная конфигурация УчебнаяКонфигурацияСинтаксиса. Начальные события training-receipt и training-review создаются в памяти самой EPF.
ОбработкаФормированияКоманд назначается программно на ПолеПлана; не добавляйте второе назначение другому обработчику. Откройте контекстное меню правой кнопкой на событии 09:00–10:00.
Доступные команды штатного меню заменяются только внутри этого собственного поля. КомандаПоУмолчанию сбрасывается, чтобы левая кнопка не выполняла автоматически редактирование/переход.
Другой контекст: нажмите пустую область или часовой заголовок. В нём Элементы может быть Неопределено; пункты, требующие события, должны оказаться недоступны.
Картинка создаётся из встроенного учебного SVG без файлов, загрузок, внешних ссылок и ресурсов конфигурации. Ничего не печатается и не записывается в базу.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебныйПлан", Новый ОписаниеТипов("Планировщик")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
План = Новый Планировщик;
План.НачалоПериодаОтображения = Дата(2026, 9, 15, 9, 0, 0);
План.КонецПериодаОтображения = Дата(2026, 9, 15, 17, 0, 0);
План.ТекущиеПериодыОтображения.Очистить();
План.ТекущиеПериодыОтображения.Добавить(
План.НачалоПериодаОтображения, План.КонецПериодаОтображения);
План.ОтображатьТекущуюДату = Ложь;
План.ФиксироватьЗаголовокШкалыВремени = Истина;
План.ФиксироватьЗаголовокИзмерений = Истина;
План.ВыравниватьГраницыЭлементовПоШкалеВремени = Истина;
План.ЦветФона = Новый Цвет(255, 255, 255);
План.ЦветТекста = Новый Цвет(35, 45, 55);
План.ЦветЛиний = Новый Цвет(220, 225, 230);
План.Шрифт = Новый Шрифт("Arial", 10);
Шкала = План.ШкалаВремени;
Шкала.Положение = ПоложениеШкалыВремени.Верх;
Шкала.ПрозрачныйФон = Ложь;
Шкала.ЦветФона = Новый Цвет(240, 245, 250);
Шкала.ЦветТекста = Новый Цвет(35, 45, 55);
Пока Шкала.Элементы.Количество() > 0 Цикл
Шкала.Элементы.Удалить(Шкала.Элементы.Получить(0));
КонецЦикла;
Часы = Шкала.Элементы.Добавить();
Часы.Единица = ТипЕдиницыШкалыВремени.Час;
Часы.Кратность = 1;
Часы.Формат = "ДФ=HH:mm";
Часы.Видимость = Истина;
Часы.ОтображатьПериодическиеМетки = Истина;
Часы.ЦветЛиний = Новый Цвет(220, 225, 230);
Часы.ЦветТекста = Новый Цвет(35, 45, 55);
Часы.ЦветФона = Новый Цвет(240, 245, 250);
Прием = План.Элементы.Добавить(Дата(2026, 9, 15, 9, 0, 0), Дата(2026, 9, 15, 10, 0, 0));
Прием.Значение = "training-receipt";
Прием.Текст = "Учебный приём — 09:00–10:00";
Прием.Подсказка = "Вымышленное событие. Только память формы.";
Прием.ЦветФона = Новый Цвет(210, 235, 255);
Прием.ЦветТекста = Новый Цвет(25, 70, 115);
Прием.ЦветРамки = Новый Цвет(80, 140, 195);
Прием.Шрифт = Новый Шрифт("Arial", 10);
Прием.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
Разбор = План.Элементы.Добавить(Дата(2026, 9, 15, 11, 0, 0), Дата(2026, 9, 15, 12, 0, 0));
Разбор.Значение = "training-review";
Разбор.Текст = "Учебный разбор — 11:00–12:00";
Разбор.ЦветФона = Новый Цвет(225, 245, 220);
Разбор.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
ЭтаФорма.УчебныйПлан = План;
Поле = Элементы.Добавить("ПолеПлана", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеПланировщика;
Поле.ПутьКДанным = "УчебныйПлан";
Поле.Заголовок = "Учебный день 15.09.2026";
Поле.РазрешитьНачалоПеретаскивания = Ложь;
Поле.РазрешитьПеретаскивание = Ложь;
Поле.РастягиватьПоГоризонтали = Истина;
Поле.РастягиватьПоВертикали = Истина;
Поле.УстановитьДействие("ОбработкаФормированияКоманд", "УчебноеФормированиеКоманд");
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить собственный план";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Сообщить(УчебныйПлан.Элементы.Количество() = 2);
Сообщить("Откройте контекстное меню собственной встречи или пустой области поля");
КонецПроцедуры
&НаКлиенте
Процедура УчебноеФормированиеКоманд(Элемент, ПараметрыКоманд, Команды, КомандаПоУмолчанию)
Ключ = НайтиКлючСобственногоНажатия(ПараметрыКоманд);
Состояние = Новый Структура("Ключ", Ключ);
Событие = УчебныйПлан.Элементы.Найти(Ключ);
Команды.Очистить();
КомандаПоУмолчанию = Неопределено;
SVG = "<svg xmlns=""http://www.w3.org/2000/svg"" width=""32"" height=""32"" viewBox=""0 0 32 32""><rect width=""32"" height=""32"" rx=""6"" fill=""#146e32""/><path d=""M8 16l5 5 11-12"" fill=""none"" stroke=""white"" stroke-width=""3""/></svg>";
Байты = ПолучитьДвоичныеДанныеИзСтроки(SVG, КодировкаТекста.UTF8, Ложь);
УчебнаяКартинка = Новый Картинка(Байты);
Просмотр = Новый ОписаниеКомандыПоляПланировщика;
Просмотр.Команда = Новый ОписаниеОповещения("ПоказатьСобственноеСобытие", ЭтотОбъект, Состояние);
Просмотр.Представление = "Показать собственную учебную встречу";
Просмотр.Доступность = Событие <> Неопределено;
Просмотр.Пометка = Ложь;
Просмотр.Картинка = УчебнаяКартинка;
Сообщить(СтрШаблон("Контекст Дата: %1", ТипЗнч(ПараметрыКоманд.Дата)));
Сообщить(СтрШаблон("Контекст Действие: %1", ТипЗнч(ПараметрыКоманд.Действие)));
Сообщить(СтрШаблон("Контекст ЗначенияИзмерений: %1", ТипЗнч(ПараметрыКоманд.ЗначенияИзмерений)));
Сообщить(СтрШаблон("Контекст Измерение: %1", ТипЗнч(ПараметрыКоманд.Измерение)));
Сообщить(СтрШаблон("Контекст Источник: %1", ТипЗнч(ПараметрыКоманд.Источник)));
Сообщить(СтрШаблон("Контекст НавигационнаяСсылка: %1", ТипЗнч(ПараметрыКоманд.НавигационнаяСсылка)));
Сообщить(СтрШаблон("Контекст ЭлементИзмерения: %1", ТипЗнч(ПараметрыКоманд.ЭлементИзмерения)));
Сообщить(СтрШаблон("Контекст ЭлементШкалыВремени: %1", ТипЗнч(ПараметрыКоманд.ЭлементШкалыВремени)));
Сообщить(СтрШаблон("Контекст Элементы: %1", ТипЗнч(ПараметрыКоманд.Элементы)));
Команды.Добавить(Просмотр);
Сообщить(Просмотр.Представление = "Показать собственную учебную встречу");
Сообщить(ТипЗнч(Просмотр.Команда) = Тип("ОписаниеОповещения"));
Сообщить(Просмотр.Доступность = (Событие <> Неопределено));
Сообщить(НЕ Просмотр.Пометка);
Сообщить(ТипЗнч(Просмотр.Картинка) = Тип("Картинка"));
КонецПроцедуры
&НаКлиенте
Функция НайтиКлючСобственногоНажатия(ПараметрыКоманд)
Если ТипЗнч(ПараметрыКоманд.Элементы) <> Тип("Массив") Тогда
Возврат "";
КонецЕсли;
Для Каждого НажатоеСобытие Из ПараметрыКоманд.Элементы Цикл
Если ТипЗнч(НажатоеСобытие) = Тип("ЭлементПланировщика") Тогда
Если НажатоеСобытие.Значение = "training-receipt" ИЛИ НажатоеСобытие.Значение = "training-review" Тогда
Возврат НажатоеСобытие.Значение;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат "";
КонецФункции
&НаКлиенте
Процедура ПоказатьСобственноеСобытие(Состояние) Экспорт
Событие = УчебныйПлан.Элементы.Найти(Состояние.Ключ);
Если Событие = Неопределено Тогда
ВызватьИсключение "Собственное событие исчезло после открытия меню";
КонецЕсли;
Сообщить(СтрШаблон("%1: %2 — %3", Событие.Текст, Событие.Начало, Событие.Конец));
Сообщить(Событие.Конец - Событие.Начало = 3600);
Сообщить(УчебныйПлан.Элементы.Количество() = 2);
КонецПроцедуры
Разбор по шагам
Нажмите на собственную встречу, пустую область и заголовок часовой шкалы по очереди.
Тип каждого свойства выводится диагностически: не предполагаем, что Дата, Элементы или ЭлементИзмерения заполнены во всех случаях.
При нажатии на событие используем только документированный массив Элементы; на пустой области функция возвращает пустой ключ.
НавигационнаяСсылка в этом fixture не используется для открытия URL. Действие и прочие объекты лишь читаются.
Все свойства параметров только для чтения: код не создаёт фиктивный объект параметров и не присваивает им значения.
Как проверить результат
Девять диагностических сообщений типов контекста и пять Истина настройки пункта меню.
На событии пункт доступен; в контексте без собственного события — недоступен.
Наличие/отсутствие даты сверяйте по месту нажатия, не требуйте одинакового типа всех девяти полей.
Ожидаемый результат
Наглядно показан контекст настоящего события и обработка незаполненных веток.
На что обратить внимание
ПараметрыФормированияКомандПланировщика и ПараметрыФормированияКомандПоляПланировщика — разные типы.
Не считайте НавигационнаяСсылка автоматически заполненным адресом встречи.
Диагностический тип не является обещанием конкретного значения для другого контекста.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.