При сверке расчётов с одним из поставщиков бухгалтерия заметила, что долг в системе почти вдвое больше реального. Разбор показал, что дело не в одном контрагенте: так выглядела целая группа старых партнёров. Причина — в том, как когда-то заполняли базу.
Откуда взялось задвоение
История операций за прошлые годы была перенесена в систему документами: счета, оплаты, поставки. А потом поверх неё загрузили ещё и входящие остатки из старой учётной системы — четыре проводки начальных остатков на начало разных лет по счетам 60.01 и 62.01. Каждый долг в итоге присутствовал дважды: один раз как результат перенесённых документов, второй — как «остаток на начало».
Как проверили гипотезу
Для каждого контрагента посчитали три числа: текущее сальдо, сумму из проводок остатков и сальдо без них. Если гипотеза верна, у тех, с кем расчёты давно закрыты, после исключения остатков должен получиться ровно ноль. Так и вышло: у 59 контрагентов сальдо обнулилось до копейки. Это и стало главным доказательством, что исправлять нужно именно остатки, а не документы.
Отдельный случай — поставщик, который в 2022 году прошёл реорганизацию из ЗАО в ООО. Работа шла с одним юрлицом, оплаты — уже другому. По дополнительному соглашению к дилерскому договору долг перешёл к правопреемнику автоматически, поэтому его перенесли проводкой на дату реорганизации и сверили с открытыми счетами. После исправления итог совпал с кредитным лимитом поставщика с точностью до рубля.
Как исправили
- Одна многострочная сторнирующая проводка примерно по 110 контрагентам через технический счёт — вместо сотни ручных правок.
- Поставщик после реорганизации исключён из общей проводки: его исправили раньше отдельно.
- Бухгалтеру ушла таблица с разбивкой по каждому контрагенту: было, задвоено, стало. Крупные отклонения, где ноль не получился, вынесены для сверки со старой системой.
Попутно — копеечные расхождения с 1С
Вторая давняя жалоба: при выгрузке в 1С суммы закупок расходятся на копейки. Причина нашлась в настройке налогов. В Odoo закупочный НДС был настроен как «включён в цену», а 1С считает цену без НДС и добавляет налог построчно. Когда цена поставщика без НДС переводится в цену с НДС, округление на каждой строке даёт дрейф. Решение — отдельные закупочные налоги «НДС 22% сверху». Существующие налоги не трогаем, чтобы не пересчитывать проведённые документы задним числом.
Итог
Сторнирующие проводки проведены. Осталось сопоставить старые и новые строки между собой и перевести закупочные документы на новый налог. Вывод для любой миграции: если история переносится документами, входящие остатки на те же даты загружать нельзя. Проверка «сальдо без остатков равно нулю у закрытых контрагентов» занимает минуты и сразу показывает, есть ли проблема.
Похожая история с другой стороны — фантомные проводки складского журнала, которые попадали в акты сверки: «Акт сверки показал покупки, которых не было».