Что делать, если после свертки 1С:Бухгалтерия документы помечены на удаление, но не удаляются?

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

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

Рассмотрим подробно, почему это происходит и какими способами можно окончательно очистить базу от «мусора», сохранив при этом корректность учета.

Причина проблемы: аналитика на счетах взаиморасчетов

Проанализируем ситуацию: почему документы 2012 года и позже продолжают удерживаться в базе? Основная причина кроется в настройках плана счетов и ведении учета по субконто Документы расчетов с контрагентами.

На таких счетах, как 60 (Расчеты с поставщиками), 62 (Расчеты с покупателями) или 76.05 (Расчеты с прочими дебиторами и кредиторами), учет часто ведется в разрезе конкретных документов. Когда выполняется свертка, программа переносит остатки на начало выбранного периода. Если по конкретной сделке или контрагенту не произошло полного закрытия (например, висит аванс или неоплаченная накладная), 1С вынуждена указать в документе Ввод начальных остатков ссылку на исходный документ поставки или оплаты, чтобы в будущем правильно зачесть аванс или отразить оплату именно по этому долгу.

Выясним причину «раздутых» остатков: часто бухгалтеры ведут учет неаккуратно, из-за чего возникают ситуации, когда по одному договору висит дебет по одному документу расчетов и кредит по другому на ту же сумму. Для программы это два разных «хвоста», которые она обязана перенести в остатки. В итоге старый документ 2015 года становится «неудаляемым», так как на него ссылается новый документ остатков.

Решение 1: Программное «схлопывание» аналитики

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

  1. Создаем резервную копию базы данных. Любые массовые изменения реквизитов необратимы.
  2. Находим документы Ввод начальных остатков, в которых заполнены табличные части по счетам 60, 62, 76.
  3. Программно очищаем ссылку в поле Документ расчетов.

Пример логики кода для обработки документов ввода остатков:


Выборка = Документы.ВводНачальныхОстатков.Выбрать();
Пока Выборка.Следующий() Цикл
    Объект = Выборка.ПолучитьОбъект();
    Изменено = Ложь;
    // Проходим по всем табличным частям документа
    Для каждого ТЧ Из Объект.Метаданные().ТабличныеЧасти Цикл
        ИмяТЧ = ТЧ.Имя;
        Для каждого СтрокаТЧ Из Объект[ИмяТЧ] Цикл
            // Ищем реквизит, отвечающий за документ расчетов
            Если СодержитРеквизит(СтрокаТЧ, "ДокументРасчетов") Тогда
                Если ЗначениеЗаполнено(СтрокаТЧ.ДокументРасчетов) Тогда
                    СтрокаТЧ.ДокументРасчетов = Неопределено;
                    Изменено = Истина;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    Если Изменено Тогда
        Объект.Записать(РежимЗаписиДокумента.Запись);
    КонецЕсли;
КонецЦикла;

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

Решение 2: Использование «Технического контрагента» или пустого документа

Если вы не хотите оставлять поле Документ расчетов пустым (что иногда приводит к ошибкам проведения в БП 3.0), воспользуемся методом подмены. Рассмотрим этот вариант подробнее:

  1. Создаем один специальный вспомогательный документ (например, Документ расчетов с контрагентом (ручной учет)) датой, предшествующей свертке (например, 31.12.2023).
  2. С помощью стандартной обработки Групповое изменение реквизитов находим все строки в документах ввода остатков, где упоминаются старые документы.
  3. Заменяем ссылки на все старые документы одной ссылкой на наш созданный «пустышку».

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

Решение 3: Перенос данных в чистую информационную базу

Проанализируем ситуацию: часто свертка в 1С:Бухгалтерия 3.0 проходит тяжело из-за накопленных ошибок в регистрах накопления (НДС, Расчеты по налогам и т.д.). Даже если вы удалите ссылки из бухгалтерских проводок, документы могут удерживаться в регистрах НДС Продажи, НДС Предъявленный или Партии товаров на складах.

В этом случае самым «чистым» методом будет следующий алгоритм:

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

Решение 4: Проверка настроек параметров учета

Иногда количество документов расчетов можно существенно уменьшить, изменив подход к ведению учета. Посмотрим на настройки программы. Если в разделе Администрирование — Параметры учета — Настройки планов счетов в подразделе Учет расчетов с контрагентами отключить признак По документам расчетов, система перестанет требовать заполнения этой аналитики.

Внимание! Это радикальное решение. Оно допустимо только в том случае, если ваша организация не использует автоматический расчет НДС по авансам в сложном режиме и не ведет детальный контроль задолженности по каждой накладной.

Завершающие действия после удаления

После того как вы смогли удалить помеченные объекты, физический размер файла базы данных (1Cv8.1CD) в файловом варианте может не уменьшиться. Это особенность работы СУБД 1С.

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

  1. Запустим конфигуратор.
  2. Перейдем в меню Администрирование — Тестирование и исправление.
  3. Выберем пункты Реиндексация таблиц информационной базы и Сжатие таблиц информационной базы.
  4. Нажмем Выполнить.

Только после выполнения сжатия таблиц место, занимаемое удаленными документами, будет реально освобождено на диске.

Резюме

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

← На главную