В практической работе бухгалтера и технического специалиста 1С встречается крайне неприятная ситуация: в журнале проводок или в самом документе операция присутствует, общая сумма по счету сходится, но при формировании Оборотно-сальдовой ведомости (ОСВ) с детализацией по субконто (например, по конкретному договору контрагента) нужная сумма бесследно исчезает. Стандартное тестирование и исправление базы данных не всегда находит ошибки, оставляя пользователя в недоумении.
В этой статье мы подробно разберем, почему возникает данная проблема, проанализируем как простые методологические ошибки, так и сложные технические сбои СУБД, а также рассмотрим пошаговые алгоритмы их решения.
Прежде чем приступать к сложным техническим процедурам, выполним базовую проверку самой операции и настроек отчетов. Очень часто корень проблемы лежит на поверхности.
Активность. Если по какой-то причине (например, документ был распроведен, но движения не очистились, или произошел сбой при свертке базы) этот признак установлен в значение Ложь, то операция физически будет видна в таблице регистра, но отчеты (ОСВ, Карточка счета) ее полностью проигнорируют. Чтобы проверить это, откройте движения документа и убедитесь, что пиктограмма проводки активна (не серая и не перечеркнутая).Организация. Типовые отчеты 1С, включая ОСВ, по умолчанию жестко фильтруются по организации (даже если у вас в базе ведется учет только по одной компании). Проводка без указанной организации просто отсекается при компоновке данных отчета.Если базовые проверки показали, что проводка активна, организация заполнена, а дубли в справочниках отсутствуют, то мы имеем дело с внутренними ошибками платформы или базы данных.
В платформе 1С хранение остатков оптимизировано: они рассчитываются не «на лету» по всем документам с начала времен, а хранятся в специальных таблицах итогов по месяцам. При массовых операциях (таких как свертка базы данных) механизм записи итогов может дать сбой. В результате движения по таблице регистра записались, а в таблицу остатков и оборотов не попали.
Разберем по шагам, как «передернуть» и сбросить период итогов:
Иногда обычный пересчет итогов не помогает, так как повреждена сама структура индексов СУБД (в файловом варианте — файла 1Cv8.1CD, в клиент-серверном — таблиц MS SQL Server или PostgreSQL). Для исправления этой ситуации выполним следующие действия:
C:\Program Files\1cv8\8.3.XX.XXX\bin\), найдите и запустите утилиту chdbfl.exe. Укажите путь к файлу вашей базы данных, поставьте галочку «Исправлять обнаруженные ошибки» и нажмите «Выполнить».Платформа 1С активно использует кэширование на компьютере пользователя. Если при формировании ОСВ данные берутся из поврежденного локального кэша, отчет будет показывать некорректные сведения, даже если в самой базе всё в порядке. Для решения проблемы очистим кэш: удалите информационную базу из списка запуска 1С, нажмите «ОК», а затем добавьте её заново под тем же путем. Это принудительно создаст новые чистые папки кэша.
В современных версиях платформы 1С дата документа содержит миллисекунды. Если операция свертки записала документ на самую границу периода (например, 31.12.2023 23:59:59.999), а ОСВ формируется по умолчанию до 31.12.2023 23:59:59, то эта тысячная доля секунды физически выводит операцию за рамки отчета. Сдвиньте время проблемного документа на несколько секунд назад или перенесите его на 00:00:00 этого же дня.
Проанализируем План счетов. Если у счета 62.01 для субконто «Договоры» установлен признак «Только обороты» (в плане счетов рядом с субконто отображается пометка (об)), программа перестает хранить остатки в разрезе договоров. Вся сумма свернется на уровне контрагента, и детализации по конкретному договору в ОСВ вы не увидите. Проверьте настройки субконто непосредственно в свойствах счета.
Выясним точную причину расхождения данных с помощью Консоли запросов. Мы можем напрямую сравнить реквизиты «проблемной» проводки и заведомо рабочей проводки, созданной вручную. Посмотрим на пример такого запроса:
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.Период КАК Период,
ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
ХозрасчетныйДвиженияССубконто.Организация КАК Организация,
ХозрасчетныйДвиженияССубконто.Активность КАК Активность,
ХозрасчетныйДвиженияССубконто.СчетДт КАК СчетДт,
ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2,
ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
ГДЕ
ХозрасчетныйДвиженияССубконто.Регистратор В (&ПроблемныйДокумент, &РабочийДокумент)
Запустив этот запрос, проанализируем каждую колонку. Обратите особое внимание на значения субконто и организацию. Если в одной из строк вместо договора отображается пустая ссылка или скрытая системная ошибка (например, незаполненный скрытый реквизит), это сразу станет очевидно при сравнении.
Иногда пользователи сталкиваются с более масштабной проблемой: после аварийного отключения компьютера или некорректного восстановления базы из резервной копии в ОСВ полностью исчезают ключевые счета, такие как 50 «Касса», 51 «Расчетные счета» и другие. Рассмотрим, как исправить эту ситуацию, не прибегая к необоснованному ручному вводу остатков через вспомогательный счет 000:
Таким образом, планомерный анализ от простых причин к сложным системным механизмам СУБД позволяет гарантированно локализовать и устранить любые аномалии в отображении данных в Оборотно-сальдовой ведомости 1С.