ПараметрыФормированияКомандПоляПланировщика.Источник

Свойства · Source

Тип: ИсточникКомандПоляПланировщика. Содержит информацию о том, на какой объект было произведено нажатие. В зависимости от того, какой элемент содержит форматированную строку с гиперссылкой, заполняются разные свойства объекта типа ПараметрыФормированияКомандПланировщика. Если источник равен НавигационнаяСсылка, тогда: Заполнено свойство либо Элементы, либо ЭлементИзмерения, либо Измерение, если навигационная ссылка находится в заголовке элемента измерения, то свойство ЗначенияИзмерений, либо ЭлементШкалыВремени заполнен, иначе содержит Неопределено, Дата содержит Неопределено, НавигационнаяСсылка заполнено, Действие содержит Неопределено, Команды содержат стандартные команды ПерейтиПоНавигационнойСсылке, КопироватьНавигационнуюСсылку, КомандаПоУмолчанию заполнено командой ПерейтиПоНавигационнойСсылке. Если источник равен Действие тогда: Элементы заполнено, свойства ЭлементИзмерения, Измерение, ЗначенияИзмерений, содержит Неопределено, Дата, ЭлементШкалыВремени, НавигационнаяСсылка содержат Неопределено, Список команд не содержит стандартных команд, <КомандаПоУмолчанию> заполнено командой ВыполнитьДействие.

Полное описание, параметры и ограничения

ПараметрыФормированияКомандПоляПланировщика.Источник (PlannerFieldCommandGenerateParameters.Source)

ПараметрыФормированияКомандПоляПланировщика (PlannerFieldCommandGenerateParameters)

Источник (Source)

Доступен, начиная с версии 8.3.23.

Использование:
Только чтение.
Описание:
Тип: ИсточникКомандПоляПланировщика.
Содержит информацию о том, на какой объект было произведено нажатие.
В зависимости от того, какой элемент содержит форматированную строку с гиперссылкой, заполняются разные свойства объекта типа ПараметрыФормированияКомандПланировщика.
Если источник равен НавигационнаяСсылка, тогда:
Заполнено свойство либо Элементы, либо ЭлементИзмерения, либо Измерение,

если навигационная ссылка находится в заголовке элемента измерения, то свойство ЗначенияИзмерений, либо ЭлементШкалыВремени заполнен, иначе содержит Неопределено,

Дата содержит Неопределено,

НавигационнаяСсылка заполнено,

Действие содержит Неопределено,

Команды содержат стандартные команды ПерейтиПоНавигационнойСсылке, КопироватьНавигационнуюСсылку,

КомандаПоУмолчанию заполнено командой ПерейтиПоНавигационнойСсылке.
Если источник равен Действие тогда:
Элементы заполнено,

свойства ЭлементИзмерения, Измерение, ЗначенияИзмерений, содержит Неопределено, Дата, ЭлементШкалыВремени, НавигационнаяСсылка содержат Неопределено,

Список команд не содержит стандартных команд,

<КомандаПоУмолчанию> заполнено командой ВыполнитьДействие.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.3.23.

Методическая информация

Практические примеры

Разобрать реальный контекст нажатия в планировщике

Все девять свойств ПараметрыФормированияКомандПоляПланировщика читаются из аргумента настоящего события.

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

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

Подготовка

  1. Создайте новую внешнюю обработку УчебныйПланировщик с пустой управляемой основной формой в учебной базе 8.5.1.1343. Каждый урок — отдельная копия модуля.

  2. Не создавайте вручную реквизит УчебныйПлан и поле ПолеПлана: они создаются программно.

  3. В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Весь приведённый код вставьте на уровне модуля.

  4. Сохраните собственную EPF и откройте через Файл → Открыть в тонком клиенте Windows. События относятся к фиксированной дате 15.09.2026, не к сегодняшнему дню.

  5. Данные существуют только в памяти формы. Записи календарей, документов, пользователей, оборудования и печать не используются.

  6. Только собственная учебная конфигурация УчебнаяКонфигурацияСинтаксиса. Начальные события training-receipt и training-review создаются в памяти самой EPF.

  7. ОбработкаФормированияКоманд назначается программно на ПолеПлана; не добавляйте второе назначение другому обработчику. Откройте контекстное меню правой кнопкой на событии 09:00–10:00.

  8. Доступные команды штатного меню заменяются только внутри этого собственного поля. КомандаПоУмолчанию сбрасывается, чтобы левая кнопка не выполняла автоматически редактирование/переход.

  9. Другой контекст: нажмите пустую область или часовой заголовок. В нём Элементы может быть Неопределено; пункты, требующие события, должны оказаться недоступны.

  10. Картинка создаётся из встроенного учебного 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);
КонецПроцедуры

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

  1. Нажмите на собственную встречу, пустую область и заголовок часовой шкалы по очереди.

  2. Тип каждого свойства выводится диагностически: не предполагаем, что Дата, Элементы или ЭлементИзмерения заполнены во всех случаях.

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

  4. НавигационнаяСсылка в этом fixture не используется для открытия URL. Действие и прочие объекты лишь читаются.

  5. Все свойства параметров только для чтения: код не создаёт фиктивный объект параметров и не присваивает им значения.

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

  1. Девять диагностических сообщений типов контекста и пять Истина настройки пункта меню.

  2. На событии пункт доступен; в контексте без собственного события — недоступен.

  3. Наличие/отсутствие даты сверяйте по месту нажатия, не требуйте одинакового типа всех девяти полей.

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

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

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

  1. ПараметрыФормированияКомандПланировщика и ПараметрыФормированияКомандПоляПланировщика — разные типы.

  2. Не считайте НавигационнаяСсылка автоматически заполненным адресом встречи.

  3. Диагностический тип не является обещанием конкретного значения для другого контекста.

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

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

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

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

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