Почему при свертке базы 1С:Бухгалтерия 3.0 не удаляются счета-фактуры и как решить эту проблему?

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

Свертка информационной базы в программе «1С:Бухгалтерия 3.0» — это стандартная, но в то же время достаточно трудоемкая процедура. Часто после корректного завершения работы встроенного помощника «Свертка информационной базы» пользователи обнаруживают, что старые документы Счет-фактура выданный и Счет-фактура полученный за свернутый период не помечаются на удаление. Они остаются в базе даже в том случае, если в настройках обработки было вручную указано сворачивать все связанные с НДС регистры.

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

Выясняем причину: почему платформа сохраняет счета-фактуры?

Для того чтобы понять логику программы, нам необходимо обратиться к архитектуре учета НДС в системе «1С:Предприятие 8». В отличие от старых версий платформы (например, «1С:Предприятие 7.7»), где учет строился преимущественно на бухгалтерских проводках, в современных конфигурациях ключевую роль играют регистры накопления и регистры сведений. Исключение счетов-фактур из алгоритма автоматического удаления обусловлено следующими факторами:

  1. Длительный жизненный цикл НДС (переходящий НДС). Законодательство разрешает принимать НДС к вычету в течение трех лет с момента принятия ценностей на учет. Счета-фактуры по авансам, импорту или строительно-монтажным работам могут оставаться «активными» в течение нескольких налоговых периодов. Программа не может заблаговременно предугадать, по каким из старых документов завершен цикл расчетов, поэтому оставляет их нетронутыми во избежание потери данных для будущих деклараций.
  2. Использование документов в качестве аналитики (субконто). При свертке базы на определенную дату программа формирует входящие остатки с помощью документов типа Операция (бухгалтерский и налоговый учет). На счетах учета НДС (например, 19 «НДС по приобретенным ценностям», 76.АВ «НДС по авансам и предоплатам», 76.ВА) субконто «Документы расчетов» является обязательным. В качестве этого субконто система использует исходные первичные документы, в том числе и счета-фактуры.
  3. Зависимость от регистров сведений. Документы НДС жестко связаны с регистром сведений ЖурналУчетаСчетовФактур, а также с регистрами накопления НДС Покупки и НДС Продажи. Если эти регистры не очищены полностью или содержат незавершенные движения, удаление связанных документов будет заблокировано системой контроля ссылочной целостности.

Что произойдет, если удалить счета-фактуры принудительно?

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

Разбираем по шагам корректные способы решения проблемы

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

Способ 1. Очистка зависимых регистров через стандартные инструменты

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

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

Способ 2. Использование обработки «Групповое изменение реквизитов»

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

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных и откроем обработку «Групповое изменение реквизитов».
  2. В поле «Изменять» выберем объект Счет-фактура выданный (или Счет-фактура полученный).
  3. Настроим отбор: выберем документы только за период до даты свертки базы.
  4. В списке доступных реквизитов найдем поле Документ-основание (или аналогичные реквизиты связи) и установим для него пустое значение.
  5. Нажмем кнопку «Изменить реквизиты».

После очистки этого реквизита связь между счетом-фактурой и первичным документом («Поступление», «Реализация») разорвется. Теперь документы поступления и реализации можно безболезненно пометить на удаление и стереть из базы через стандартный инструмент «Удаление помеченных объектов».

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

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


Выборка = Документы.СчетФактураПолученный.Выбрать(ДатаНачалаСвертки, ДатаОкончанияСвертки);

Пока Выборка.Следующий() Цикл
    
    // Получаем объект для редактирования
    ДокументОбъект = Выборка.ПолучитьОбъект();
    
    // Блокируем проведение и очищаем основание
    Если ДокументОбъект.Проведен Тогда
        ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
    КонецЕсли;
    
    // Очищаем реквизит связи
    ДокументОбъект.ДокументОснование = Неопределено;
    
    Попытка
        ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
        КонтекстСообщения = СтрШаблон("Документ %1 успешно обработан.", ДокументОбъект.Ссылка);
        Сообщить(КонтекстСообщения);
    Исключение
        Предупреждение = СтрШаблон("Не удалось записать документ %1. Ошибка: %2", ДокументОбъект.Ссылка, ОписаниеОшибки());
        Сообщить(Предупреждение);
    КонецПопытки;
    
КонецЦикла;

Данный код последовательно обходит документы за указанный период, распроводит их (так как проведенный документ не позволит очистить ключевые реквизиты аналитики без нарушения движений) и обнуляет ссылку на документ-основание. После работы скрипта удаление первичных документов пройдет без предупреждений о наличии связей со счетами-фактурами.

Способ 4. Перенос остатков в «чистую» базу (альтернативное решение)

Как показывает практика практикующих специалистов, классическая свертка базы в «1С:Бухгалтерии 3.0» далеко не всегда приводит к желаемому уменьшению физического размера базы (размер файла 1Cv8.1CD или таблиц на SQL-сервере может уменьшиться всего на 10–15%). Это связано с особенностями хранения данных СУБД и накопленным «информационным мусором».

Если ваша ключевая цель — радикальное уменьшение объема информационной базы и ускорение ее работы, наиболее эффективным решением будет создание абсолютно новой, «чистой» базы данных и последующий перенос остатков:

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

Этот метод гарантирует, что в новую рабочую базу не перекочуют старые незакрытые регистры НДС, дублирующиеся элементы справочников и «зависшие» счета-фактуры прошлых лет, история по которым уже закрыта.

Делаем выводы

Мы проанализировали особенности работы механизма свертки в «1С:Бухгалтерии 3.0» и выяснили, что сохранение счетов-фактур — это не ошибка программы, а заложенная разработчиками защита от разрушения налоговой отчетности по НДС. Прежде чем предпринимать радикальные шаги по удалению документов, всегда делайте резервную копию базы данных и тщательно проверяйте корректность формирования Книги покупок и Книги продаж после любых ручных или программных корректировок.

← На главную