Мы часто сталкиваемся с ситуацией, когда в 1С:Бухгалтерии предприятия 3 (БП3) движения по счету, например 10.09, прекрасно видны в Карточке счета, но полностью отсутствуют в Оборотно-сальдовой ведомости (ОСВ). Это может вызывать недоумение, ведь кажется, что данные существуют, но отчеты их не показывают. Давайте подробно разберем, почему такое происходит и как с этим бороться.
Для начала, давайте проясним разницу в механизме формирования этих отчетов. Карточка счета формируется на основе детальных записей движений, непосредственно из таблиц регистра бухгалтерии. Она показывает каждую проводку, как она есть. Оборотно-сальдовая ведомость (ОСВ), в свою очередь, опирается на предварительно рассчитанные и агрегированные данные, так называемые итоги регистра бухгалтерии. Эти итоги хранятся в отдельных служебных таблицах, чтобы ускорить формирование объемных отчетов. Если эти служебные таблицы итогов повреждены или содержат некорректные данные, ОСВ не сможет их правильно отобразить, в то время как карточка счета, не зависящая от итогов, будет показывать все корректно.
Рассмотрим основные причины, по которым могут возникнуть такие расхождения:
Субконто заполнено некорректно (например, вместо пустой ссылки стоит значение Неопределено) или вообще не заполнено, это может привести к тому, что движения не попадут в отчеты, агрегирующие данные по аналитике, такие как ОСВ. Мы должны убедиться, что все аналитические разрезы заполнены правильно.Субконто или он указан некорректно. Это приведет к тому, что аналитический учет не будет формироваться должным образом. Также стоит проверить, не был ли случайно создан дублирующий счет или используется счет из другого Плана счетов (хотя в БП3 обычно используется один).Основным и наиболее эффективным способом решения проблемы, выявленным на практике, является пересчет итогов регистра бухгалтерии. Рассмотрим несколько методов:
Это стандартный механизм платформы 1С для восстановления целостности данных. Мы можем попробовать его использовать:
1С:Предприятие.Конфигуратор.Администрирование -> Тестирование и исправление....Пересчет итогов. Остальные флажки пока можно не трогать, если мы уверены, что проблема именно в итогах.Выполнить.Важно: Штатный пересчет итогов в конфигураторе не всегда удаляет уже существующие, но некорректные записи в таблицах итогов. Он может лишь пытаться их исправить или дополнить. В сложных случаях этого может быть недостаточно.
В некоторых конфигурациях, включая БП3, предусмотрен механизм управления итогами непосредственно в пользовательском режиме. Это более "мягкий" способ, чем работа через конфигуратор или ИР, но иногда он также может помочь:
1С:Предприятие под пользователем с полными правами.Администрирование -> Обслуживание (или Регламентные операции).Управление итогами и агрегатами.Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет).Пересчитать итоги за период и укажем необходимый период, который охватывает наши проблемные проводки. Рекомендуем указать период с начала ведения учета или хотя бы с начала года.Как показала практика, этот метод оказался наиболее действенным. Он гарантирует, что все некорректные записи в таблицах итогов будут полностью удалены, и итоги будут рассчитаны заново с "чистого листа". Этот метод требует определенных навыков работы с СУБД или специализированными инструментами.
Хозрасчетный (в БП3 он является основным), нам необходимо найти и очистить таблицы, хранящие его итоги. Как правило, это таблицы, относящиеся к регистру, с суффиксами, указывающими на итоги. Например, для MSSQL это может быть команда TRUNCATE TABLE [ИмяБазы].[dbo].[_AccRgAT_Хозрасчетный] или аналогичная для соответствующих таблиц итогов. Нам необходимо выполнить эту команду для всех таблиц итогов регистра бухгалтерии. Если мы используем ИР, там есть функция для "прибития" итогов, которая выполняет аналогичную операцию.Конфигуратор (Администрирование -> Тестирование и исправление -> Пересчет итогов).Администрирование -> Обслуживание -> Управление итогами и агрегатами -> Пересчитать итоги за период).Поскольку таблицы итогов теперь пусты, пересчет будет выполнен гораздо быстрее и создаст абсолютно новые, корректные записи.
Оборотно-сальдовую ведомость по проблемному счету и убедимся, что данные отображаются корректно.Предостережение: Прямое вмешательство в СУБД или использование ИР требует глубокого понимания структуры базы данных 1С и может привести к необратимой потере данных при некорректном выполнении. Рекомендуем выполнять эти действия в присутствии квалифицированного специалиста.
Если пересчет итогов не привел к желаемому результату, нам предстоит более глубокий анализ:
Журнал проводок и отфильтруем по проблемному счету. Внимательно просмотрим каждую проводку:
Субконто заполнены?Неопределено вместо корректной ссылки или пустого значения, если это допустимо?Мы можем использовать запросы для анализа заполнения субконто. Например, чтобы найти проводки со значением Неопределено:
ВЫБРАТЬ
Хозрасчетный.Ссылка КАК Документ,
Хозрасчетный.СчетДт КАК СчетДебета,
Хозрасчетный.СубконтоДт1 КАК СубконтоДебета1,
Хозрасчетный.СубконтоДт2 КАК СубконтоДебета2,
Хозрасчетный.СубконтоДт3 КАК СубконтоДебета3
ИЗ
РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ГДЕ
Хозрасчетный.СчетДт = &ПроблемныйСчет
И (Хозрасчетный.СубконтоДт1 ЕСТЬ NULL ИЛИ ТИПЗНАЧЕНИЯ(Хозрасчетный.СубконтоДт1) = ТИП(Неопределено))
Организацию и Разделители учета. Если в базе ведется учет по нескольким организациям или используются другие разделители учета, убедимся, что документ оформлен на нужную организацию и отчет формируется для нее же.Операцию (бухгалтерскую) с точно такими же проводками и субконто, как в проблемном документе. Если эта ручная операция корректно отобразится в ОСВ, это укажет на проблему именно в механизме формирования движений исходного документа, а не в итогах или Плане счетов.Хозрасчетный.Обороты. Мы можем выполнить запрос к виртуальной таблице РегистрБухгалтерии.Хозрасчетный.Обороты за нужный период. Если этот запрос возвращает данные по нашему счету, это подтверждает, что движения в регистре существуют и проблема точно связана с итогами или способом их агрегации в отчете.С выходом платформы 1С:Предприятие 8.3.16 (и начиная с 8.3.15 в режиме совместимости) произошли значительные изменения в структуре хранения регистра бухгалтерии. Ранее виртуальная таблица ДвиженияДтКт, используемая для получения данных о корреспонденции счетов, рассчитывалась "на лету". Теперь же она стала реальной физической таблицей в структуре базы данных.
Это изменение означает, что в основную таблицу регистра Хозрасчетный было добавлено до 24 полей для хранения СубконтоДт1..3 и СубконтоКт1..3. Целью таких изменений является ускорение работы с виртуальными таблицами и повышение производительности при обновлении итогов, поскольку данные для корреспонденции теперь не нужно каждый раз собирать, а можно получать напрямую.
Однако, эти изменения могут иметь и свои последствия, особенно для больших информационных баз:
conf.cfg с параметром --dimhash-integrity совместно с --repair).Мы должны учитывать эти изменения при обновлении платформы и конфигурации, поскольку они могут стать причиной новых расхождений в отчетах или замедления работы, особенно если в регистре бухгалтерии используется поле УточнениеПериода, и его логика не была должным образом адаптирована.
В заключение, когда Карточка счета показывает данные, а Оборотно-сальдовая ведомость нет, мы в первую очередь должны сосредоточиться на корректности итогов регистра бухгалтерии и их пересчете, используя наиболее эффективные методы, такие как очистка и пересчет через Инструменты разработчика. Если это не помогает, проводим более глубокий диагностический анализ, проверяя субконто, активность движений и настройки отчетов.