Как очистить или сбросить регламентированный производственный календарь в 1С:Управление торговлей 10.3?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В конфигурации «1С:Управление торговлей 10.3» производственный календарь играет ключевую роль при расчете сроков оплаты, условий отсрочки по договорам в банковских или рабочих днях, а также при автоматическом резервировании заказов. Иногда при случайном или ошибочном заполнении календаря за определенный год возникает необходимость очистить внесенные данные или вернуть их к исходному состоянию.

Рассмотрим структуру хранения этих данных в системе, проанализируем возможные последствия полной очистки и разберем по шагам все доступные способы решения задачи.

Где хранятся данные календаря и в чем особенность

В типовой конфигурации информация о праздничных, предпраздничных и рабочих днях хранится в независимом непериодическом регистре сведений РегламентированныйПроизводственныйКалендарь. Основным измерением данного регистра является поле ДатаКалендаря (тип Дата).

Особенность работы с этим объектом на платформе 1С заключается в том, что объект РегистрСведенийНаборЗаписей позволяет устанавливать отбор по измерениям только по точному совпадению (ВидСравнения.Равно). Установить отбор сразу по диапазону дат для частичной очистки на уровне набора нельзя. Для выборочного удаления строк за конкретный год применяются точечное удаление через МенеджерЗаписи или ручная интерактивная очистка.

Способ 1. Восстановление стандартного заполнения по умолчанию

Если календарь был заполнен неверно, полное удаление строк требуется далеко не всегда. Проанализируем альтернативный и наиболее безопасный вариант — сброс календаря к базовому пятидневному графику.

Разберем по шагам, как это выполнить:

  1. Открываем форму регламентированного производственного календаря через меню: Операции → Регистр сведений → Регламентированный производственный календарь (или через соответствующую экранную форму настройки календаря в справочниках).
  2. Выбираем требуемый год.
  3. Нажимаем кнопку «Заполнить по умолчанию».
  4. Нажимаем кнопку «Записать» или «ОК» для сохранения стандартных настроек пятидневной рабочей недели.

Этот способ позволяет избежать пробелов в данных и восстанавливает типовую сетку рабочих и выходных дней.

Способ 2. Интерактивное удаление строк через список регистра

Если требуется полностью удалить записи за выбранный год без применения средств разработки, воспользуемся стандартным списком регистра сведений.

Разберем последовательность действий:

  1. Переходим в главное меню: Операции → Регистр сведений → Регламентированный производственный календарь.
  2. В открывшемся окне нажимаем кнопку установки интервала или настраиваем отбор по полю ДатаКалендаря, указав границы требуемого периода (например, с 01.01.2017 по 31.12.2017).
  3. Выделяем все отфильтрованные строки комбинацией клавиш Ctrl + A.
  4. Нажимаем клавишу Delete и подтверждаем удаление выделенных записей.

Способ 3. Программная очистка записей за период

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

Посмотрим на пример программного кода:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |   ДатаКалендаря
    |ИЗ
    |   РегистрСведений.РегламентированныйПроизводственныйКалендарь
    |ГДЕ
    |   ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон";
Запрос.УстановитьПараметр("ДатаНач", '20170101');
Запрос.УстановитьПараметр("ДатаКон", '20171231');
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Менеджер = РегистрыСведений.РегламентированныйПроизводственныйКалендарь.СоздатьМенеджерЗаписи();
    Менеджер.ДатаКалендаря = Выборка.ДатаКалендаря;
    Менеджер.Удалить();
КонецЦикла;

Данный фрагмент выбирает все записи регистра за 2017 год и последовательно удаляет их, не затрагивая данные остальных лет.

Способ 4. Использование сервисных обработок

Для групповых операций с базой данных можно использовать типовые и сервисные инструменты:

  1. Обработка «Подбор и обработка объектов БД» из комплекта инструментов разработчика. Она позволяет гибко настроить отбор по регистру сведений РегламентированныйПроизводственныйКалендарь по условию на поле ДатаКалендаря и выполнить операцию удаления только над отобранными объектами.
  2. Обработка «Универсальный обмен данными в формате XML». На вкладке «Удаление данных» можно очистить регистр, однако следует соблюдать предельную осторожность: при отсутствии точных фильтров есть риск очистить регистр целиком за все годы.

Возможные последствия полной очистки

Обратим внимание на важный нюанс: полное удаление записей за год оставляет систему без информации о типах дней (рабочий, праздничный, выходной). Если в информационной базе проводятся документы «Заказ покупателя» или «Заказ поставщику» с расчетом даты оплаты по рабочим или банковским дням за этот период, программа не сможет корректно рассчитать график платежей или выдаст ошибку. Поэтому после очистки рекомендуется сразу перезаполнить календарь актуальными данными.

← На главную