ЭлементПланировщика.Удаленный

Свойства · Deleted

Тип: Булево, Неопределено;. Если элемент является замещающим в расписании, свойство указывает, что замещенный элемент был удален из расписания. Иначе - Неопределено.

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

ЭлементПланировщика.Удаленный (PlannerItem.Deleted)

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

Удаленный (Deleted)

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

Использование:
Чтение и запись.
Описание:
Тип: Булево, Неопределено;.
Если элемент является замещающим в расписании, свойство указывает, что замещенный элемент был удален из расписания. Иначе - Неопределено.
Доступность:

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

См. также:
ЭлементПланировщика, свойство Расписание
ЭлементПланировщика, свойство ДатаЗамещения
ЭлементПланировщика, свойство ЗамещающиеЭлементы
ЭлементПланировщика, свойство Родитель

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

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

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

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

Перенести повторение и отличить отмену от удаления исключения

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

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

Полный обычный клиентский общий модуль УчебныеЗамещения85; только собственные данные в памяти, Пульт отдельно ниже.

Подготовка

  1. НОВАЯ собственная файловая база 8.5.1.1343, конфигурация УчебныеЗамещения85, совместимость НеИспользовать, обычное приложение и толстый клиент. Не рабочая база и не её копия; без расширений, разделителей и фоновых прикладных заданий. Здесь 1С и UI не запускались: runtimeVerifiedScenarios=0.

  2. Общий модуль УчебныеЗамещения85: неглобальный, Клиент (обычное приложение)=Да, Сервер=Нет, остальные клиентские флаги=Нет, Привилегированный=Нет. Полный основной модуль выбранного урока вставляется целиком. Обработка УчебныеЗамещения85 → обычная основная форма Пульт → кнопка Выполнить → действие ВыполнитьНажатие; полный модуль формы ниже.

  3. Данные строятся в памяти: собственный Планировщик, собственное ежедневное событие 08.10.2026 09:00–10:00 либо три одиночных события внутри/вне заданного периода. Записи календарей, задач, сотрудников и документов не используются. Не вызывайте Напечатать.

  4. Первый урок использует три даты исходных повторений: 09, 10 и 11 октября в 09:00. Замещённое повторение 10 октября переносится на 11:00–12:00, но ДатаЗамещения остаётся 10 октября 09:00. Не подменяйте дату-ключ новым временем события.

  5. Для второго урока: сохраните полный SVG из дополнительного блока как свой marker16.svg и импортируйте в Общие → Общие картинки → Уч85Маркер16. Один вариант 16×16, не коллекция картинок. Это собственная картинка конфигурации, а не абсолютный объект из произвольного файла. Здесь импорт и создание файла не выполнялись.

  6. Второй урок проверяет ВидКартинки.ИзБиблиотеки и фактические Ширина()/Высота()=16 до назначения. При другом виде, размере или Неопределено опыт останавливается. Для первого урока общая картинка вообще не нужна.

  7. F7 и обновление только собственной базы, затем Пульт обычного толстого клиента. Первый урок проверяет данные замещений. Второй не подключает Планировщик к визуальному полю: проверяет модель картинки/рамки и очистку событий по собственным периодам, не внешний вид интерфейса.

  8. Свойство Рамка доступно на платформе, но по установленной справке НЕ применяется в интерфейсе Версия 8.5. Успешное присваивание/чтение не обещает визуальную рамку. В этой партии не выдаём чтение пустого ЗначенияИзмерений за назначение события ресурсу.

Процедура ВыполнитьПример() Экспорт
    ПроверитьСвойКонтекст();
    План = Новый Планировщик;
    Серия = План.Элементы.Добавить(Дата(2026, 10, 8, 9), Дата(2026, 10, 8, 10));
    Серия.Значение = "own-series";
    Серия.Текст = "Своя ежедневная часовая встреча";
    Расписание = Новый РасписаниеЭлементаПланировщика;
    Расписание.ДниНедели.Очистить();
    Расписание.Месяцы.Очистить();
    Расписание.ПериодПовтораДней = 1;
    Расписание.КоличествоПовторов = 7;
    Серия.Расписание = Расписание;
    ДругаяСерия = План.Элементы.Добавить(Дата(2026, 10, 8, 14), Дата(2026, 10, 8, 15));
    ДругаяСерия.Значение = "other-own-series";
    ДругоеРасписание = Новый РасписаниеЭлементаПланировщика;
    ДругоеРасписание.ДниНедели.Очистить();
    ДругоеРасписание.Месяцы.Очистить();
    ДругоеРасписание.ПериодПовтораДней = 1;
    ДругоеРасписание.КоличествоПовторов = 2;
    ДругаяСерия.Расписание = ДругоеРасписание;
    Замещения = Серия.ЗамещающиеЭлементы;
    ДругиеЗамещения = ДругаяСерия.ЗамещающиеЭлементы;
    Если ТипЗнч(Замещения) <> Тип("КоллекцияЗамещающихЭлементовПланировщика")
        Или ТипЗнч(ДругиеЗамещения) <> Тип("КоллекцияЗамещающихЭлементовПланировщика") Тогда
        ВызватьИсключение "Для собственных серий требуется реальная коллекция, не Неопределено";
    КонецЕсли;
    Если Замещения.Количество() <> 0 Или ДругиеЗамещения.Количество() <> 0 Тогда
        ВызватьИсключение "Нужны собственные новые серии без существующих исключений";
    КонецЕсли;
    ДатаА = Дата(2026, 10, 9, 9);
    ДатаБ = Дата(2026, 10, 10, 9);
    ДатаВ = Дата(2026, 10, 11, 9);
    А = Замещения.Добавить(ДатаА);
    В = Замещения.Добавить(ДатаВ);
    Б = Замещения.Вставить(1, ДатаБ);
    ПодготовитьСвоеЗамещение(А, Серия, ДатаА, Дата(2026, 10, 9, 11));
    ПодготовитьСвоеЗамещение(Б, Серия, ДатаБ, Дата(2026, 10, 10, 11));
    ПодготовитьСвоеЗамещение(В, Серия, ДатаВ, Дата(2026, 10, 11, 11));
    Если Замещения.Количество() <> 3 Или Замещения.Получить(1).ДатаЗамещения <> ДатаБ
        Или Замещения[1].ДатаЗамещения <> ДатаБ Или Замещения.Индекс(Б) <> 1 Тогда
        ВызватьИсключение "Нужен исходный порядок трёх своих замещений А,Б,В";
    КонецЕсли;
    Найденный = Замещения.Найти(ДатаБ);
    Если Найденный = Неопределено Тогда
        ВызватьИсключение "Найти не подтвердил существующее собственное замещение";
    КонецЕсли;
    Если Найденный.ДатаЗамещения <> ДатаБ Или Найденный.Значение <> ДатаБ Или Замещения.Количество() <> 3 Тогда
        ВызватьИсключение "Найденное замещение и размер собственной коллекции не совпали";
    КонецЕсли;
    Б.Удаленный = Истина;
    Если Не Б.Удаленный Или Замещения.Количество() <> 3 Тогда
        ВызватьИсключение "Удаленный отмечает отмену повторения, а не удаляет запись исключения из коллекции";
    КонецЕсли;
    Б.Удаленный = Ложь;
    Замещения.Сдвинуть(В, -2);
    Если Замещения.Получить(0).ДатаЗамещения <> ДатаВ Или Замещения.Индекс(В) <> 0 Тогда
        ВызватьИсключение "После сдвига объекта нужен порядок В,А,Б";
    КонецЕсли;
    Замещения.Сдвинуть(0, 2);
    Если Замещения.Получить(2).ДатаЗамещения <> ДатаВ Тогда
        ВызватьИсключение "Сдвиг по числовой позиции должен вернуть В в конец";
    КонецЕсли;
    Замещения.Удалить(В);
    Замещения.Удалить(0);
    Если Замещения.Количество() <> 1 Или Замещения.Получить(0).ДатаЗамещения <> ДатаБ Тогда
        ВызватьИсключение "Удаление объекта В и позиции А должно оставить собственный Б";
    КонецЕсли;
    Замещения.Очистить();
    Если Замещения.Количество() <> 0 Или ДругиеЗамещения.Количество() <> 0
        Или План.Элементы.Количество() <> 2 Или Серия.Расписание.ПериодПовтораДней <> 1 Тогда
        ВызватьИсключение "Очищались только исключения своей первой серии, не две исходные серии";
    КонецЕсли;
    Сообщить("Перенос, флаг отмены, оба способа сдвига и удаления проверены в памяти. Исключения очищены, обе исходные серии остались.");
КонецПроцедуры

Процедура ПодготовитьСвоеЗамещение(Элемент, Серия, ИсходнаяДата, НовоеНачало)
    Если Элемент.Родитель <> Серия Или Элемент.ДатаЗамещения <> ИсходнаяДата Тогда
        ВызватьИсключение "Замещение должно принадлежать своей серии и её исходной дате повторения";
    КонецЕсли;
    Элемент.Значение = ИсходнаяДата;
    Элемент.Начало = НовоеНачало;
    Элемент.Конец = НовоеНачало + 3600;
    Элемент.Текст = "Своё переносимое повторение";
    Элемент.Удаленный = Ложь;
    Если Элемент.Удаленный Или Элемент.Конец - Элемент.Начало <> 3600
        Или Элемент.ДатаЗамещения = Элемент.Начало Тогда
        ВызватьИсключение "Часовой перенос и ключ исходного повторения должны различаться";
    КонецЕсли;
КонецПроцедуры

Процедура ПроверитьСвойКонтекст()
    Если Метаданные.РежимСовместимости <> Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
        ВызватьИсключение "Нужен собственный стенд УчебныеЗамещения85 платформы 8.5.1.1343";
    КонецЕсли;
    Если ТранзакцияАктивна() Тогда
        ВызватьИсключение "Учебный вывод не должен выполняться внутри чужой транзакции";
    КонецЕсли;
КонецПроцедуры
УчебныеЗамещения85.Пульт

УчебныеЗамещения85 → Обработки → УчебныеЗамещения85 → Формы → Пульт → Модуль

Полный модуль собственной обычной формы, не выполнялся.

Процедура ВыполнитьНажатие(Кнопка)
    УчебныеЗамещения85.ВыполнитьПример();
КонецПроцедуры

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

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

  2. ЗамещающиеЭлементы — readonly-свойство, возвращающее коллекцию или Неопределено. Проверяем фактический класс после назначения расписания; новый конструктор коллекции не выдумывается, свойство не переназначается.

  3. Добавить принимает обязательную Дату исходного повторения, Вставить — индекс и такую дату. Создаём А/Б/В для трёх разных исходных 09:00, не передаём новое 11:00 как ключ.

  4. Родитель и ДатаЗамещения только читаются и сверяются. Начало/Конец переносимого элемента устанавливаются на 11:00–12:00; исходный ключ 09:00 не превращается в новое время.

  5. Получить(1) и [1] читают по индексу. Индекс получает сам объект Б. Число исключений не является числом всех визуальных повторений серии.

  6. Найти имеет противоречивую статью: параметр назван ДатаЗамещения, описание упоминает Значение и содержит фразу о добавлении. Здесь Значение каждого исключения совпадает с его датой-ключом, ищем уже существующий Б и проверяем отсутствие изменения размера; не объявляем спорный общий случай решённым.

  7. Удаленный=Истина помечает замещаемое повторение отменённым, но исключение остаётся в коллекции. Проверяем прежний размер, затем возвращаем Ложь. Это не пометка удаления объекта информационной базы.

  8. Сдвинуть поддерживает объект и числовую позицию: В идёт в начало и возвращается в конец. Это меняет порядок коллекции, а не ДатаЗамещения или новое время события.

  9. Удалить также принимает объект либо индекс. После удаления В и позиции А остаётся Б; Очистить удаляет только оставшиеся исключения первой серии, не её расписание и не вторую серию.

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

  1. Будущий тест: F7 и собственный Пульт. Сначала три исключения А/Б/В, после перемещений снова А/Б/В, после двух удалений только Б, после очистки ноль. Здесь runtimeVerifiedScenarios=0.

  2. ДатаЗамещения Б — 10.10.2026 09:00, а новое Начало — 11:00; продолжительность 3600 секунд и Родитель именно первая серия.

  3. После Удаленный=Истина размер остаётся три. Возврат Ложь меняет состояние отмены, не добавляет ещё один объект.

  4. Найти вызывается только для существующего Б с равными датой-ключом и Значение; если результат или размер отличаются, опыт отказывает, а не скрывает противоречие установленной статьи.

  5. Обе исходные серии после очистки остаются в План.Элементы; вторая коллекция исключений не менялась. Здесь нет визуального доказательства развёртывания повторений в поле формы.

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

Будущий результат — проверенный перенос собственного повторения и различение флага отмены, удаления исключения и сохранения исходной серии.

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

  1. Не присваивайте Родитель, ДатаЗамещения или ЗамещающиеЭлементы: они readonly. Для нового исключения нужна дата исходного слота в Добавить/Вставить.

  2. Статья Найти неоднозначна; её три разных формулировки не исправляются предположением модели. Этот ограниченный пример проверяет согласованный собственный ключ и сохраняет требование реального будущего теста.

  3. Удалить исключение из коллекции и отменить повторение флагом Удаленный — противоположные по смыслу операции. Не считать пустую коллекцию исключений удалённой серией.

  4. После удаления/очистки старые переменные А/Б/В больше не используются. Перемещение коллекции не переносит событие на новую дату.

  5. Количество Элементы считает исходные элементы плана; Количество ЗамещающиеЭлементы — исключения конкретной серии. Ни один счётчик не выдается за число всех видимых повторов.

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

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

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

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

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