ЭлементПланировщика.Выгрузить

Методы · Unload

Создает структуру и копирует в нее соответствующие свойства элемента планировщика.

Синтаксис

Выгрузить()
Полное описание, параметры и ограничения

ЭлементПланировщика.Выгрузить (PlannerItem.Unload)

ЭлементПланировщика (PlannerItem)

Выгрузить (Unload)

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

Синтаксис:
Выгрузить()
Возвращаемое значение:
Тип: Структура.

Описание:

Создает структуру и копирует в нее соответствующие свойства элемента планировщика.

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

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

См. также:
ЭлементПланировщика, метод Загрузить

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

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

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

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

Вставить пробное событие, переместить и убрать его без потери двух исходных

Индекс в коллекции и дата события — разные вещи. Перемещение коллекции не сдвигает встречу по времени.

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

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

Подготовка

  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);
    Разбор.РежимРазрешенияРедактирования = РежимРазрешенияРедактированияЭлементаПланировщика.ЗапретитьРедактирование;


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


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

&НаКлиенте
Процедура УчебноеДействие(Команда)
    События = УчебныйПлан.Элементы;
    Прием = События.Найти("training-receipt");
    Разбор = События.Найти("training-review");
    НачалоПриема = Прием.Начало;
    Проба = События.Вставить(1, Дата(2026, 9, 15, 10, 0, 0), Дата(2026, 9, 15, 10, 30, 0));
    Проба.Значение = "training-temp";
    Сообщить(События.Индекс(Проба) = 1);
    События.Сдвинуть(Проба, 1);
    Сообщить(События.Индекс(Проба) = 2);
    Сообщить(События.Получить(2).Значение = "training-temp");
    События.Удалить(2);
    Сообщить(События.Найти("training-temp") = Неопределено);
    СнимокПриема = Прием.Выгрузить();
    СнимокРазбора = Разбор.Выгрузить();
    // Очищается только новый план этой учебной формы.
    События.Очистить();
    Прием = События.Добавить(СнимокПриема.Начало, СнимокПриема.Конец);
    Прием.Загрузить(СнимокПриема);
    Разбор = События.Добавить(СнимокРазбора.Начало, СнимокРазбора.Конец);
    Разбор.Загрузить(СнимокРазбора);
    Сообщить(События.Количество() = 2);
    Сообщить(События.Найти("training-receipt").Начало = НачалоПриема);
КонецПроцедуры

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

  1. Вставить создаёт полчаса в позиции 1. Начало/Конец задаются отдельно от этой позиции.

  2. Сдвинуть(Проба, 1) меняет индекс с 1 на 2, но не время 10:00–10:30.

  3. Удалить(2) удаляет только пробу. Поиск её ключа теперь возвращает Неопределено.

  4. Выгрузить создаёт структуры исходных двух событий. Только затем очищаем собственную коллекцию.

  5. Создаём новые элементы и Загрузить возвращает их свойства. Старые ссылки после очистки не используем.

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

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

  1. Все шесть булевых проверок Истина.

  2. После кнопки остаются те же два исходных события в прежнее время.

  3. Нажмите второй раз: по-прежнему два события, нет training-temp.

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

Девять основных операций коллекции разобраны на своих событиях с контролируемым восстановлением состояния.

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

  1. Очистить не следует переносить на загруженный рабочий календарь: он удалит все элементы его коллекции.

  2. Выгрузить — структура свойств в памяти, не резервная копия всей информационной базы.

  3. УдалитьНеиспользуемые — отдельный метод с зависимостью от видимого периода, здесь не используется.

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

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

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

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

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