Как исправить бесконечное перепроведение документов и ошибку «Был изменен документ» при закрытии месяца в 1С?

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

Каждый бухгалтер хотя бы раз сталкивался с ситуацией, когда при закрытии месяца в программе 1С процедура группового перепроведения документов уходит в бесконечный цикл. Система долго выполняет операции, а затем прерывает процесс и выдает досадное сообщение: «Был изменен документ». Граница последовательности сдвигается назад, и месяц закрыть не удается. При этом в отчете об измененных документах постоянно фигурируют одни и те же объекты: Выдача наличных, Списание с расчетного счета или Отражение зарплаты в бухучете.

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

Причина 1. Ошибки в счетах учета доходов при совмещении налоговых режимов (ЕНВД, патент, УСН)

Выясним главную причину, которая чаще всего приводит к бесконечной перезаписи документов в процессе закрытия месяца. Если организация применяет специальный налоговый режим (например, ЕНВД или патент) совместно с основной системой налогообложения, ключевую роль начинает играть регламентная операция «Распределение расходов по видам деятельности».

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

Если в документах Реализация (акты, накладные) или Отчет о розничных продажах за закрываемый период бухгалтер ошибочно указал счет доходов 90.01.1 (выручка по деятельности с ОСНО/УСН) вместо счета 90.01.2 (выручка по деятельности с особым порядком налогообложения, ЕНВД), возникает следующий конфликт:

  1. Программа пытается рассчитать базу распределения расходов, используя неверные показатели выручки по различным видам деятельности.
  2. В ходе закрытия месяца регламентная операция автоматически запускает перерасчет расходов на оплату труда и распределение страховых взносов.
  3. Этот перерасчет напрямую затрагивает и изменяет движения документов Отражение зарплаты в бухучете и связанные с ними платежные документы (Выдача наличных, Списание с расчетного счета).
  4. Поскольку документы перезаписываются самой системой непосредственно во время перепроведения, платформа 1С фиксирует факт изменения данных сторонним процессом, сбрасывает границу проведения назад и выдает предупреждение «Был изменен документ».

Решение проблемы:

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

  1. Откроем обработку Групповое изменение реквизитов (раздел Администрирование — Обслуживание — Корректировка данных).
  2. Выберем объект исследования — документ Реализация (акты, накладные) или Отчет о розничных продажах за проблемный период.
  3. Настроим отбор по реквизиту счета доходов, где ошибочно указано значение 90.01.1.
  4. Заменим значение счета доходов на корректное для ЕНВД/патента — 90.01.2 (и, соответственно, счета расходов на 90.02.2).
  5. Запустим выполнение обработки и повторно проведем процедуру закрытия месяца.

Причина 2. Отсутствие признака отражения зарплаты в бухгалтерском учете

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

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

Когда мы пытаемся провести документы выплаты — такие как Выдача наличных (Расходный кассовый ордер) или Списание с расчетного счета с видом операции «Выплата зарплаты», программа ищет сальдо по счету 70, чтобы сопоставить выплату с ведомостями и корректно распределить суммы авансов и переплат. Из-за отсутствия начисления система при каждом перепроведении пытается программно перераспределить копейки и округления, бесконечно перезаписывая цепочку связанных документов.

Решение проблемы:

Убедимся, что во всех документах Отражение зарплаты в бухучете за закрываемый период установлен флаг отражения в учете. Проведем их вручную, проверим наличие проводок по счету 70, после чего запустим повторное закрытие месяца.

Причина 3. Влияние фоновых процессов и синхронизации данных

Выясним, как внешние по отношению к закрытию месяца механизмы могут прерывать последовательность проведения. Современные версии платформы 1С активно используют многопоточность и фоновые задания.

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

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

Решение проблемы:

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

/AllowExecuteScheduledJobs -Off

Также полезно установить дату запрета загрузки данных в настройках синхронизации (раздел Администрирование — Синхронизация данных), чтобы автоматический обмен не перезаписал документы закрываемого периода во время работы бухгалтера.

Причина 4. Сбои в логической структуре метаданных базы

Проанализируем редкую, но коварную техническую проблему, связанную с нарушением уникальности записей в системных таблицах конфигурации. При обновлении программы или сбоях СУБД в справочнике ИдентификаторыОбъектовМетаданных могут возникнуть дублирующие записи.

Например, при тестировании информационной базы (Тестирование и исправление, ТиИ) может обнаружиться ошибка неуникальности полей для регистра сведений Состояния документов зачисления зарплаты. Наличие таких дублей приводит к тому, что платформа не может однозначно идентифицировать метаданные объектов зарплаты при проведении выплат, что вызывает сбой алгоритмов проведения.

Обычное исправление ошибок через ТиИ не всегда решает проблему до конца, так как старая структура метаданных может оставаться в кэше сервера или локального компьютера.

Решение проблемы:

Применим комплексный метод исправления системных таблиц:

  1. Выполним очистку кэша платформы. Для этого на сервере остановим службу 1C:Enterprise и очистим содержимое временных папок. На клиентских машинах удалим базу из списка запуска и добавим её заново.
  2. Запустим обновление вспомогательных данных метаданных. Для этого запустим программу в режиме Предприятия со следующим параметром:
  3. /C СтартОбновленияИнформационнойБазы
  4. Или выполним принудительное обновление справочника программным путем в консоли разработчика, запустив следующий код:
  5. 
    Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(Истина, Истина);
    

После выполнения этих шагов структура метаданных полностью восстановится, логические конфликты в зарплатных регистрах исчезнут, и групповое перепроведение документов завершится успешно.

← На главную