Свертка информационной базы в системе 1С:Предприятие 7.7 — это ответственный процесс, требующий обязательного контроля корректности перенесенных остатков. Если в компоненте «Оперативный учет» для этих целей часто используется знаменитая утилита SrReg, то в «Бухгалтерском учете» ситуация сложнее, так как данные хранятся не в регистрах, а в бухгалтерских итогах. Рассмотрим подробно, как можно автоматизировать процесс проверки остатков и какие инструменты для этого существуют.
Основная сложность заключается в том, что после свертки база данных физически изменяется: документы за прошлые периоды удаляются, а вместо них создаются операции по вводу остатков. Чтобы убедиться, что ни одна копейка не потерялась, необходимо зафиксировать состояние счетов до процедуры и сравнить его с состоянием после. Простого формирования Оборотно-сальдовой ведомости (ОСВ) часто бывает недостаточно, так как расхождения могут возникнуть на уровне глубокой аналитики (субконто), которую сложно отследить глазами в печатной форме.
Разберем самый доступный, но трудоемкий способ, который упоминался в обсуждении. Этот метод не требует программирования, но требует внимательности:
Оборотно-сальдовую ведомость на дату свертки со всеми установленными флажками детализации: по субсчетам и по всем субконто.ВПР или простое вычитание ячеек из двух листов), чтобы найти расхождения.Важный нюанс: при таком подходе легко пропустить развернутое сальдо по счетам расчетов (60, 62, 76), поэтому в настройках ОСВ обязательно нужно проверять признак вывода развернутого сальдо.
Проанализируем более профессиональный подход, который программно реализует логику работы утилиты SrReg для бухгалтерского учета. Мы можем написать внешнюю обработку (.ert), которая выгружает все остатки в файл, а затем загружает их для сравнения. Рассмотрим пример алгоритма получения данных:
БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(); // Перебираем все виды субконто
БИ.ВыполнитьЗапрос(ДатаСвертки, ДатаСвертки);
ТЗ_Остатков = СоздатьОбъект("ТаблицаЗначений");
ТЗ_Остатков.НоваяКолонка("Счет");
ТЗ_Остатков.НоваяКолонка("Субконто1");
ТЗ_Остатков.НоваяКолонка("Субконто2");
ТЗ_Остатков.НоваяКолонка("Субконто3");
ТЗ_Остатков.НоваяКолонка("Сумма");
БИ.ВыбратьСчета();
Пока БИ.ПолучитьСчет() = 1 Цикл
Если БИ.Счет.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли;
// Здесь должна быть логика перебора субконто
// В 7.7 это реализуется вложенными циклами ВыбратьСубконто/ПолучитьСубконто
ТЗ_Остатков.НоваяСтрока();
ТЗ_Остатков.Счет = БИ.Счет;
ТЗ_Остатков.Сумма = БИ.СКД() - БИ.СКК();
КонецЦикла;
После формирования такой таблицы её можно сохранить в файл (например, в формате .dbf или текстовый файл с разделителями). После свертки обработка запускается снова, считывает файл и сравнивает каждую строку с текущими итогами в базе.
Выясним, какие готовые решения можно найти в сообществе. Поскольку SrReg работает только с регистрами, для бухгалтерии программисты разработали аналогичные инструменты:
.mxl (сохраненные отчеты 1С) и выполняют их построчное сравнение. Это гораздо удобнее Excel, так как обработка понимает структуру счета и аналитики 1С.00 (вспомогательный счет) и сверяют их с итоговыми проводками ввода остатков._1SALDO до и после свертки (сделав предварительно бэкап или копию таблицы). Это самый быстрый способ для баз объемом в десятки гигабайт.Проанализируем типичные ситуации, где стандартные методы сравнения могут давать ложные результаты или скрывать ошибки:
001, 002 и другие забалансовые счета. Проверьте, включены ли они в ваш алгоритм сравнения.52 или 60.11) необходимо сравнивать не только рублевый эквивалент, но и валютную сумму.10, 41, 43) расхождения могут быть в количестве при нулевой сумме или наоборот.Если вам нужно разово проверить небольшую базу, воспользуйтесь методом сохранения ОСВ в Excel с максимальной детализацией. Однако, если вы занимаетесь сопровождением 1С 7.7 профессионально, рекомендуем написать или скачать обработку, работающую через Таблицу Значений. Как правильно заметили в обсуждении, код утилиты SrReg технически можно адаптировать под БухгалтерскиеИтоги, заменив обращение к регистрам на перебор счетов и субконто. Это позволит вам иметь под рукой универсальный инструмент для любой конфигурации на платформе 7.7, использующей бухгалтерский компонент.