Ситуация, когда в Оборотно-сальдовой ведомости (ОСВ) итоговая сумма по счету «не бьется» с суммами по конкретным объектам аналитики (субконто), является одной из самых распространенных и в то же время запутанных проблем для пользователя 1С. На первый взгляд это выглядит как программная ошибка или сбой в базе данных, однако чаще всего причина кроется в особенностях хранения данных и специфике формирования бухгалтерских проводок. Рассмотрим подробно, почему так происходит и как привести учет в порядок.
Представим ситуацию: вы формируете ОСВ по счету (например, 68.08 «Налог на имущество»). В строках отчета вы видите остаток по конкретной регистрации в налоговом органе, допустим, 12 190 рублей. Однако в строке «Итого» по этому же счету программа выводит совершенно другую сумму, например, 3 280 рублей. При этом никакие другие субконто в списке не отображаются. Проанализируем, куда «пропадают» деньги и почему математика внутри отчета перестает работать по привычным правилам.
В системе 1С:Предприятие существует критически важная разница между несколькими видами «пустых» значений. Визуально в отчете они все выглядят как пустая строка, но для программного ядра это разные сущности:
СправочникСсылка.РегистрацииВНалоговомОргане.ПустаяСсылка).Операция (бухгалтерский и налоговый учет). Если бухгалтер создал проводку вручную, затронул поле субконто, а затем просто очистил его клавишей Del, в базу может записаться именно Неопределено вместо корректной пустой ссылки.NULL в полях субконто встречаться не должен, но может возникнуть при некорректных прямых записях в базу или критических сбоях.Когда мы формируем отчет, программа пытается сгруппировать данные. Если на счете есть остаток 12 190 по конкретному субконто и «невидимый» остаток -8 910 по типу Неопределено, в строке «Итого» они суммируются, и мы получаем 3 280. При этом строка с Неопределено может игнорироваться настройками отчета и не выводиться в список, создавая иллюзию некорректного итога.
Чтобы увидеть «невидимые» обороты, стандартной ОСВ недостаточно. Рассмотрим по шагам, как локализовать ошибку:
Проанализируем ситуацию: если в карточке счета видны движения без субконто, которые «минусуют» общий остаток, значит, в системе накоплены обороты по «пустому» значению, которое не схлопывается с заполненным.
Многие технические специалисты первым делом советуют выполнить Тестирование и исправление или Пересчет итогов. Разберем, почему в данном случае это может не дать результата. Пересчет итогов восстанавливает соответствие между записями регистра (движениями документов) и итоговыми таблицами. Если в документе Операция изначально записано Неопределено, то пересчет просто подтвердит: «Да, по типу Неопределено у нас числится такая-то сумма». С точки зрения платформы здесь нет ошибки — это просто данные. Исправлять нужно не итоги, а сами первичные записи.
Рассмотрим основные способы решения проблемы в зависимости от масштаба бедствия.
Если проблемных проводок немного, выполним следующие действия:
Операция, который создал проводку с пустым субконто.Неопределено на корректную пустую ссылку.Если документов с ошибками сотни, разберем более эффективный метод:
Воспользуемся встроенной обработкой «Групповое изменение реквизитов». В качестве объекта выберем РегистрБухгалтерии (Хозрасчетный), установим отбор по нашему счету и пустому значению субконто. Это позволит массово проставить правильный тип данных во всех записях. Внимание: данный метод требует высокой квалификации и предварительного создания резервной копии базы!
Иногда «ошибка» в ОСВ — это не ошибка, а особенность настройки. Посмотрим на параметры отчета:
Если счет является активно-пассивным (как многие счета налогов), программа может показывать развернутое сальдо. Проверьте в настройках ОСВ на закладке «Группировка», установлен ли флаг «По субконто» для всех уровней аналитики. Также проверьте в плане счетов, не включен ли для данного счета признак «Развернутое сальдо» в настройках отчетов. Если он включен, то дебетовый остаток по одной аналитике и кредитовый по другой не будут взаимозачитываться в отчете, пока вы не укажете программе делать это принудительно.
Для программистов и опытных администраторов разберем способ точной диагностики типа данных. Мы можем написать простой запрос к виртуальной таблице остатков:
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1,
ТИПЗНАЧЕНИЯ(ХозрасчетныйОстатки.Субконто1) КАК ТипДанных,
ХозрасчетныйОстатки.СуммаОстаток
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет) КАК ХозрасчетныйОстатки
Проанализировав результат, мы четко увидим, где в поле ТипДанных стоит нужный справочник, а где — системный тип Неопределено. Это позволит безошибочно определить документы-виновники.
Подводя итог, отметим: если общая сумма в ОСВ не совпадает с детализацией, ищите «невидимые» обороты по пустым аналитикам. Помните, что для 1С «пусто» — это не всегда одно и то же. Используйте Карточку счета для поиска скрытых сумм и всегда проверяйте корректность заполнения субконто в ручных операциях. Только чистота аналитики гарантирует корректность итоговых показателей в бухгалтерской отчетности.