Как исправить дату начала закрытия месяца в 1С:УТ 11.4 после ввода документов с ошибочной датой

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

При работе в современных конфигурациях на базе платформы 1С:Предприятие 8.3, таких как «Управление торговлей 11.4», «Комплексная автоматизация 2.4» или «ERP 2.4», пользователи часто сталкиваются с ситуацией, когда помощник закрытия месяца настойчиво предлагает выполнить операции, начиная с очень старой даты. Например, из-за одной опечатки менеджера, указавшего в документе май 2000 года вместо мая текущего года, система «запоминает» необходимость пересчета итогов именно с этого момента. Даже если дата в документе исправлена или сам документ помечен на удаление, в служебных таблицах системы остаются «фантомные» записи, которые блокируют нормальную работу.

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

Механизм регистрации заданий к закрытию месяца

В отличие от старых версий (например, УТ 10.3), где пересчет итогов часто выполнялся «по факту», в УТ 11 используется событийная модель. При проведении, отмене проведения или изменении даты любого финансово значимого документа система автоматически создает запись в специальных Регистрах сведений. Эти регистры называются «Задания к...».

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

Шаг 1: Идентификация проблемных регистров

Чтобы восстановить корректную последовательность закрытия месяца, нам необходимо найти и удалить записи в группе регистров «Задания». Рассмотрим основной список регистров, которые могут содержать ошибочные даты:

  1. Задания к расчету себестоимости — основной виновник того, что расчет партий и себестоимости «улетает» в прошлое.
  2. Задания к распределению расчетов с клиентами — влияет на актуализацию взаиморасчетов и формирование графиков оплаты.
  3. Задания к распределению расчетов с поставщиками — аналогично предыдущему, для стороны закупок.
  4. Задания к формированию движений по данным партий — используется, если в системе включен партионный учет (версия 2.2).
  5. Задания к отражению в регламентированном учете — если записи попали сюда, система будет пытаться формировать проводки за 2000 год.

Шаг 2: Поиск записей через Универсальный отчет

Прежде чем что-то удалять, выясним точный масштаб проблемы. Воспользуемся стандартным инструментом «Универсальный отчет» (раздел «НСИ и администрирование» — «Печатные формы, отчеты и обработки»):

  1. В поле «Тип объекта» выберем РегистрСведений.
  2. В поле «Имя объекта» выберем ЗаданияКРасчетуСебестоимости.
  3. Нажмем кнопку «Настройки», перейдем на вкладку «Фильтры» и добавим отбор по полю Месяц (или Момент времени), указав условие «Меньше» и дату начала реальной работы в базе (например, 01.01.2024).

После формирования отчета мы увидим все записи, которые «тянут» систему в прошлое. Обратите внимание на колонку «Объект записи» или «Месяц» — там будет фигурировать тот самый злополучный май 2000 года.

Шаг 3: Техническая очистка регистров

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

Способ А: Ручное удаление через функции технического специалиста

Если записей немного, мы можем перейти непосредственно в список регистра:

  1. Нажмем на значок «сервис и настройки» (три полоски в верхнем углу) — «Функции для технического специалиста».
  2. В поиске введем название регистра, например, Задания к расчету себестоимости.
  3. Найдем записи за 2000 год и удалим их вручную (кнопка Del).

Способ Б: Программное удаление (через групповую обработку)

Если записей сотни, воспользуемся обработкой «Групповое изменение реквизитов»:

  1. Выберем тип объекта: Задания к расчету себестоимости (необходимо включить отображение служебных объектов в настройках обработки).
  2. Установим отбор: Месяц Меньше 01.01.2024.
  3. В дополнительных параметрах обработки выберем действие «Удалить записи» (доступно не во всех версиях напрямую, иногда требуется написать небольшое расширение или внешнюю обработку).

Для программиста решение в коде будет выглядеть следующим образом:


НаборЗаписей = РегистрыСведений.ЗаданияКРасчетуСебестоимости.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Месяц.Установить(Дата(2000, 05, 01));
// Если нужно удалить за весь период, фильтруем программно в цикле или через запрос
НаборЗаписей.Записать(); // Запись пустого набора удаляет данные по отбору

Шаг 4: Проверка документов ввода остатков

Проанализируем еще одну возможную причину. При переносе данных из УТ 10.3 часто используются документы Ввод начальных остатков. Если в табличной части такого документа (например, в данных о партиях товаров или датах возникновения задолженности) закралась дата из 2000 года, система будет считать этот период началом учета.

Необходимо проверить все документы в разделе «НСИ и администрирование» — «Начальное заполнение» — «Документы ввода начальных остатков». Убедимся, что ни в одном из них нет ссылок на некорректные даты прошлого века.

Шаг 5: Профилактика — установка даты запрета редактирования

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

  1. Перейдем в раздел «НСИ и администрирование» — «Настройка пользователей и прав» — «Даты запрета изменения данных».
  2. Включим признак «Дата запрета изменения».
  3. Установим дату (например, 31.12.2023) для «Всех пользователей».
  4. Важный момент: убедитесь, что дата запрета распространяется и на пользователей с правами «Администратор». В настройках можно указать «Для всех пользователей, включая администраторов», иначе технические специалисты продолжат случайно «промахиваться» мимо текущего года.

Шаг 6: Обновление формы закрытия месяца

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

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

Теперь система должна корректно определить, что ближайший месяц, требующий внимания — это апрель 2024 года (или тот период, с которого вы реально начали вести учет в базе). Процедуры за 2000 год исчезнут из списка необходимых действий.

← На главную