Планировщик

Типы · Planner

Представляет собой планировщик.

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

Планировщик (Planner)

Планировщик (Planner)

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

Свойства:
АвтоМинимальнаяВысотаСтроки (AutoRowMinHeight)
АвтоМинимальнаяШиринаКолонки (AutoColumnMinWidth)
ВыравниватьГраницыЭлементовПоШкалеВремени (AlignItemBoundariesByTimeScale)
ЕдиницаПериодическогоВарианта (PeriodicVariantUnit)
Измерения (Dimensions)
ИнтервалыФона (BackgroundIntervals)
КонецПериодаОтображения (EndOfRepresentationPeriod)
КратностьПериодическогоВарианта (PeriodicVariantRepetition)
МинимальнаяВысотаСтроки (MinRowHeight)
МинимальнаяШиринаКолонки (MinColumnWidth)
НачалоПериодаОтображения (BeginOfRepresentationPeriod)
ОтображатьПеренесенныеЗаголовки (ShowWrappedHeaders)
ОтображатьПеренесенныеЗаголовкиШкалыВремени (ShowWrappedTimeScaleHeaders)
ОтображатьТекущуюДату (ShowCurrentDate)
ОтображениеВремениЭлементов (ItemsTimeRepresentation)
ОтступСКонцаПереносаШкалыВремени (TimeScaleWrapEndIndent)
ОтступСНачалаПереносаШкалыВремени (TimeScaleWrapBeginIndent)
ПоведениеЭлементовПриНедостаткеМеста (ItemsBehaviorWhenSpaceInsufficient)
Рамка (Border)
ТекущиеПериодыОтображения (CurrentRepresentationPeriods)
ТипТекстаНовыхЭлементов (NewItemsTextType)
ФиксироватьЗаголовокИзмерений (FixDimensionsHeader)
ФиксироватьЗаголовокШкалыВремени (FixTimeScaleHeader)
ФорматПеренесенныхЗаголовковШкалыВремени (WrappedTimeScaleHeaderFormat)
ЦветЛиний (LineColor)
ЦветРамки (BorderColor)
ЦветТекста (TextColor)
ЦветФона (BackColor)
ШкалаВремени (TimeScale)
Шрифт (Font)
Элементы (Items)

Методы:
Напечатать (Print)

Конструкторы:
По умолчанию

Описание:

Представляет собой планировщик.

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

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Возможен обмен с сервером. Сериализуется. Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.3/data/planner}. Имя типа XDTO: Planner.

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

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

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

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

Открыть печать собственного учебного планировщика

Создаём только два вымышленных события 15 сентября в памяти и вызываем печать с обязательным диалогом.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Только собственная учебная база, толстый клиент Windows. Примеры печатают новую учебную геометрию или два вымышленных интервала, а не документы организации.

  2. Создайте отдельную внешнюю обработку с управляемой формой и строковыми реквизитами УчебныйПринтер и Подтверждение. Выведите их поля на форму. Реквизит Подтверждение не сохраняйте в настройках.

  3. Создайте команду Выполнить с кнопкой и обработчиком Выполнить. Вставьте весь модуль одного урока; два урока в один модуль одновременно не вставляйте.

  4. В УчебныйПринтер вручную укажите точное имя собственного тестового/виртуального принтера из Windows. Код его не устанавливает и не выбирает чужой принтер по совпадению части имени.

  5. Введите точную фразу ПЕЧАТАЮ ТОЛЬКО УЧЕБНЫЕ ДАННЫЕ. Она очищается до вызова печати. Метод всегда вызывается с Использовать, чтобы открыть диалог, а не молча отправить документ.

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

  7. Автоматическая печать и подтверждение диалога при создании руководства не выполнялись; фактический результат зависит от установленного принтера и ручного теста.

&НаКлиенте
Процедура Выполнить(Команда)
    Если Подтверждение <> "ПЕЧАТАЮ ТОЛЬКО УЧЕБНЫЕ ДАННЫЕ" Тогда
        ВызватьИсключение "Введите подтверждение печати собственных учебных данных";
    КонецЕсли;
    Подтверждение = "";
    Если ПустаяСтрока(УчебныйПринтер) Тогда
        ВызватьИсключение "Укажите точное имя собственного тестового принтера";
    КонецЕсли;
    План = Новый Планировщик;
    План.НачалоПериодаОтображения = Дата(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);
    Разбор.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;

    Сообщить(План.Элементы.Количество() = 2);
    Сообщить(План.Элементы.Найти("training-receipt").Конец - План.Элементы.Найти("training-receipt").Начало = 3600);
    Сообщить("В диалоге вручную выберите собственный тестовый принтер: " + УчебныйПринтер);
    План.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
КонецПроцедуры

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

  1. Новый Планировщик создаётся при нажатии команды, а не читается из календаря рабочих сотрудников. Дата обоих событий фиксирована в коде.

  2. В отличие от ГеографическаяСхема у Планировщик нет ИмяПринтера в этом API. Не добавляем выдуманное свойство: имя показывается как инструкция для ручного выбора в диалоге.

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

  4. Подтверждение очищено до Напечатать. Использовать открывает диалог; пользователь сам выбирает устройство/страницы или отменяет.

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

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

  1. Две булевы проверки Истина. В первом тесте выберите Отмена и проверьте отсутствие задания на собственном принтере.

  2. Для ручного успешного теста проверьте в превью два учебных интервала; результат не подтверждён автором запуском 1С.

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

Новичок получает полный самостоятельный пример печати данных планировщика с понятной границей ручного подтверждения.

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

  1. Метод Напечатать не возвращает успешность пользователя как Булево. Возврат управления не доказывает выход листа из принтера.

  2. Не присваивать План.ИмяПринтера: такого свойства нет в установленном наборе API.

  3. Никогда не подставлять рабочий Планировщик в этот учебный пример.

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

Добавить действие Подробнее прямо в учебное событие

Действие отображается внутри события; нажатие вызывает готовый клиентский обработчик с двумя параметрами из API.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

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

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

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

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Новые = Новый Массив;
    Новые.Добавить(Новый РеквизитФормы("УчебныйПлан", Новый ОписаниеТипов("Планировщик")));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    План = Новый Планировщик;
    План.НачалоПериодаОтображения = Дата(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);
    Разбор.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;
    Действие = Прием.Действия.Добавить("details", "Подробнее");
    Действие.Видимость = Истина;
    Действие.Доступность = Истина;
    Действие.Подсказка = "Показать сведения о вымышленном приёме";
    Действие.Положение = ПоложениеДействияЭлементаПланировщика.ВКонцеЭлемента;
    Действие.ЦветТекста = Новый Цвет(25, 70, 115);
    Действие.Шрифт = Новый Шрифт("Arial", 10, Истина);

    ЭтаФорма.УчебныйПлан = План;
    Поле = Элементы.Добавить("ПолеПлана", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеПланировщика;
    Поле.ПутьКДанным = "УчебныйПлан";
    Поле.Заголовок = "Учебный день 15.09.2026";
    Поле.РазрешитьНачалоПеретаскивания = Ложь;
    Поле.РазрешитьПеретаскивание = Ложь;
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.РастягиватьПоВертикали = Истина;
    Поле.УстановитьДействие("НажатиеНаДействиеПланировщика", "ПриНажатииДействия");

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить действие";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Прием = УчебныйПлан.Элементы.Найти("training-receipt");
    Действие = Прием.Действия.Найти("details");
    Сообщить(Действие.Значение = "details");
    Сообщить(Действие.Текст = "Подробнее");
    Сообщить(Действие.Видимость И Действие.Доступность);
КонецПроцедуры

&НаКлиенте
Процедура ПриНажатииДействия(ЭлементПланировщика, ДействиеЭлементаПланировщика)
    Если ДействиеЭлементаПланировщика.Значение <> "details" Тогда
        Возврат;
    КонецЕсли;
    Сообщить("Учебное событие: " + ЭлементПланировщика.Текст);
    Сообщить("Начало: " + Формат(ЭлементПланировщика.Начало, "ДФ=dd.MM.yyyy HH:mm"));
    Сообщить("Длительность, минут: " + Строка((ЭлементПланировщика.Конец - ЭлементПланировщика.Начало) / 60));
КонецПроцедуры

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

  1. Прием.Действия — коллекция действий конкретного события, не команда всей формы.

  2. Добавить получает ключ details и текст Подробнее. Доступность Истина разрешает событие нажатия.

  3. Через УстановитьДействие связываем событие поля с именем готовой процедуры.

  4. Обработчик имеет именно два параметра: ЭлементПланировщика и ДействиеЭлементаПланировщика. Параметр Элемент формы не добавляем.

  5. Обработчик сверяет ключ, затем выводит только вымышленные сведения. Никаких ссылок на рабочие встречи и записи в базу нет.

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

  1. Кнопка проверки выводит три Истина.

  2. Нажмите Подробнее внутри приёма: сообщение о приёме, начало 15.09.2026 09:00 и длительность 60 минут.

  3. Два события и их время сохраняются.

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

Есть не декоративный фрагмент, а настроенное действие с полноценной реакцией формы.

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

  1. Сигнатура этого события отличается от многих событий элементов формы: лишний первый параметр нарушит вызов.

  2. Если места внутри события мало, подпись может не уместиться; увеличьте ширину поля/окна.

  3. Реальные сведения встреч могут быть конфиденциальны, поэтому учебный вывод нельзя бездумно переносить на рабочие данные.

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

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

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

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

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