Работа в старых базах 1С 7.7, ведущихся десятилетиями, часто сопряжена с накоплением «хвостов» в аналитическом учете. Одной из самых частых проблем является «бардак» на счете 60.1 («Расчеты с поставщиками и подрядчиками»), когда общая сумма долга по контрагенту верна, но внутри него висят встречные остатки по разным договорам или вовсе без них. В этой статье мы подробно разберем, как навести порядок в расчетах, подготовить базу к свертке или переходу на «восьмерку».
Ситуация, когда в ОСВ по счету 60.1 мы видим море отрицательных кредитовых остатков, обычно является следствием некорректно проведенной свертки базы или отсутствия контроля за заполнением субконто Договоры. В 1С 7.7 аналитический учет на счете 60 ведется в разрезе двух субконто: Контрагенты и Договоры. Если при оплате бухгалтер выбрал один договор (или оставил его пустым), а при поступлении товара — другой, система не зачтет эти суммы автоматически.
Рассмотрим типовой сценарий: при свертке базы на определенную дату программа собирает остатки по каждому уникальному сочетанию аналитики. Если до свертки по контрагенту висел аванс на 5000 рублей без договора и задолженность 5000 рублей по «Договору №1», то после свертки мы получим две проводки Дт 00 Кт 60.1:
В итоге итоговое сальдо по поставщику равно нулю, но отчетность выглядит «грязной», а выгрузка в 1С 8.3 может длиться бесконечно из-за огромного количества лишних записей в таблицах проводок.
Проанализируем ситуацию: если контрагентов много (около сотни), а аналитика по договорам не имеет для бухгалтерии критического значения, проще всего применить радикальный метод. Разберем его по шагам:
Корректировка долга или ручную операцию, чтобы закрыть встречные остатки внутри одного контрагента.Для программного решения проблемы (если проводок тысячи) мы можем использовать небольшую обработку, которая перебросит все остатки на одно субконто. Проанализируем пример логики кода для такой очистки:
// Пример логики для схлопывания остатков по договорам
ВыбратьОперацииСПустымиДоговорами();
Пока Операция.ПолучитьПроводку() = 1 Цикл
Если Операция.СчетКт = СчётПоКоду("60.1") Тогда
Если ПустоеЗначение(Операция.СубконтоКт(2)) = 1 Тогда
// Находим встречную проводку с заполненным договором и переносим сумму
ПеренестиСуммуНаОсновнойДоговор(Операция);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Выясним причину долгой выгрузки в 1С 8.3. В сообщении 18 автор упоминает, что в операциях ввода остатков (от 31.12.2016) присутствуют взаимоисключающие проводки: одна положительная на 5000 и пять отрицательных по -1000. Это технический мусор. Рассмотрим, как это исправить:
Ввод начальных остатков (или ручную операцию 00 — 60.1).Важно: Счет 00 («Вспомогательный») должен иметь нулевое сальдо после завершения всех корректировок ввода остатков. Если баланс по 00 счету «поехал», значит, была допущена ошибка в суммах.
Рассмотрим более продвинутый метод — использование внешних обработок. Для 1С 7.7 существуют обработки типа «Поиск и замена значений». Посмотрим, как их применить для нашей задачи:
Договоры для каждого проблемного контрагента один элемент — «Основной договор».<...>) и ошибочные договоры во всех документах (или только в операциях свертки) на этот «Основной договор».Технологический анализ бухгалтерского учета и перепроводим документы, чтобы восстановить правильную последовательность зачета авансов.Разберем еще один важный нюанс: пересортица может возникать не только между договорами, но и между субсчетами. В 1С 7.7 счет 60.1 предназначен для расчетов, а 60.2 — для авансов выданных. Часто бывает так, что по 60.1 висит дебетовое сальдо (оплата), а по 60.2 — кредитовое (поступление).
Проанализируем алгоритм исправления:
Анализ счета по субконто, чтобы увидеть общую картину по поставщику.Зачет авансов.Если планируется переход на новую платформу, порядок на счете 60 критически важен. Проанализируем ситуацию из сообщения 4: выгрузка шла два выходных и зависла. Это происходит потому, что правила обмена данными пытаются обработать каждую «кривую» проводку, создавая в 8-ке огромное количество документов корректировки записей регистров.
Чтобы миграция прошла успешно, выполним следующие шаги:
Удаление помеченных объектов и Упаковку таблиц в конфигураторе (Администрирование — Тестирование и исправление).Подведем итог: исправление бардака на 60 счете в 1С 7.7 — это комбинация «командирских решений» бухгалтерии и технических манипуляций программиста. Главное — добиться того, чтобы в ОСВ по счету 60 не было «красноты» (отрицательных остатков) и пустых субконто, которые разрывают учетную цепочку.