ПараметрыФормированияКомандПоляПланировщика.НавигационнаяСсылка

Свойства · URL

Тип: Строка. Значение гиперссылки форматированной строки.

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

ПараметрыФормированияКомандПоляПланировщика.НавигационнаяСсылка (PlannerFieldCommandGenerateParameters.URL)

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

НавигационнаяСсылка (URL)

Доступен, начиная с версии 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С» и не аффилирован с ней.