Как выполнить корректировку реализации после свертки базы в 1С, если документ-основание не имеет движений

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

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

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

Почему возникает проблема?

Механизм работы документа Корректировка реализации (в конфигурациях «Комплексная автоматизация 1.1», «Управление производственным предприятием 1.3» и подобных) основан на сравнении исходных данных и новых значений. При проведении система пытается выполнить следующие действия:

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

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

Способ 1: Перенос движений из архивной копии (Технический путь)

Проанализируем самый быстрый, но требующий аккуратности способ. Если у вас сохранилась копия базы до свертки, мы можем «вернуть» движения конкретного документа в текущую базу. Для этого нам понадобится стандартная обработка ВыгрузкаЗагрузкаДанныхXML.epf.

Рассмотрим порядок действий по шагам:

  1. Откроем архивную копию базы.
  2. Запустим обработку ВыгрузкаЗагрузкаДанныхXML.epf.
  3. В списке объектов найдем Документ.РеализацияТоваровУслуг. Настроим фильтр (отбор) по конкретному номеру и дате нашего документа, который выступает основанием.
  4. Важный момент: убедимся, что в настройках выгрузки включена опция «Выгружать с движениями».
  5. Выгрузим данные в файл XML. Для точечной миграции объектов между базами также применяется инструмент для переноса данных между похожими конфигурациями 1С.
  6. В рабочей (свернутой) базе запустим ту же обработку в режиме загрузки и прочитаем файл.

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

Способ 2: Использование документа «Корректировка записей регистров»

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

Выясним, какие именно регистры нам нужно «отрихтовать»:

Пример кода для программного заполнения такого документа (если вы решите автоматизировать процесс):


НоваяКорректировка = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
НоваяКорректировка.Дата = ТекущаяДата();
НоваяКорректировка.УстановитьНовыйНомер();

// Добавляем таблицу регистра "Товары на складах"
Движение = НоваяКорректировка.Движения.ТоварыНаСкладах.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = НоваяКорректировка.Дата;
Движение.Склад = СкладСсылка;
Движение.Номенклатура = ТоварСсылка;
Движение.Количество = КоличествоДляВозврата;

НоваяКорректировка.Записать(РежимЗаписиДокумента.Проведение);

Этот метод хорош тем, что мы не трогаем закрытый период свертки, а вносим исправления текущей датой. Контроль результата и автоматизированный поиск расхождений в проводках после подобных исправлений выполняет программа автоматической сверки бухгалтерских данных между базами 1С.

Способ 3: Редактирование документов «Ввод остатков»

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

Разберем этот алгоритм:

  1. Найдем документ Ввод остатков по товарам, в который попала номенклатура из нашей проблемной реализации.
  2. Скорректируем количество товара в сторону увеличения (так как корректировка реализации на уменьшение фактически означает возврат товара на баланс).
  3. Найдем документ Ввод остатков по взаиморасчетам и уменьшим дебиторскую задолженность контрагента.

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

Способ 4: Отражение через прочие доходы и расходы (ПБУ 22/2010)

Если корректировка касается прошлого года и отчетность уже утверждена, то согласно правилам бухгалтерского учета (ПБУ 22/2010), мы не имеем права «залезать» в 90-е счета (Выручка) прошлого года. Исправления должны проходить через 91 счет (Прочие доходы и расходы).

В этом случае вместо документа Корректировка реализации, который упорно пытается найти документ-основание, мы можем использовать связку:

Подведем итоги

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

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

Всегда проверяйте результат с помощью отчетов Ведомость по товарам на складах и Оборотно-сальдовая ведомость по счетам 62 и 90/91 после внесения правок.

← На главную