Почему в ОСВ не отображаются документы по контрагенту за прошлые периоды в 1С:БГУ и как это исправить?

Бухгалтер 1С v8.3 (Управляемые формы) Бухгалтерский учет
← На главную

При работе в программе 1С:Бухгалтерия государственного учреждения 2.0 (БГУ 2.0) бухгалтеры нередко сталкиваются со странным поведением отчетов. Оборотно-сальдовая ведомость (ОСВ) по счетам расчетов (например, 205.00 или 302.00) без отборов показывает абсолютно корректные данные за все месяцы. Однако стоит только установить отбор по конкретному контрагенту, как документы за предыдущие периоды просто «исчезают» из отчета, оставляя данные, к примеру, только за декабрь. При этом в Карточке счета все проводки по этому контрагенту за все месяцы отображаются правильно.

В этой статье мы подробно разберем, почему возникает эта техническая коллизия, как устроены механизмы хранения данных в платформе «1С:Предприятие» и по шагам восстановим корректную работу отчетов в вашей базе данных.

Почему документы «исчезают» из ОСВ (техническая причина)

Для того чтобы понять природу этой ошибки, проанализируем разницу в механизмах формирования двух основных отчетов — «Карточки счета» и «Оборотно-сальдовой ведомости».

Отчет Карточка счета обращается напрямую к физической таблице проводок регистра бухгалтерии. Он последовательно считывает каждую запись (каждую проводку) из базы данных. Если в проводке указан нужный контрагент, документ обязательно попадет в отчет, независимо от заполненности остальных аналитических разрезов.

Отчет Оборотно-сальдовая ведомость устроен иначе. Для обеспечения высокой скорости работы он обращается к виртуальным таблицам остатков и оборотов, которые платформа 1С рассчитывает и хранит отдельно. При наложении отбора по субконто или при группировке данных платформа выполняет сложный поисковый SQL-запрос к этим виртуальным таблицам.

Проблема возникает после очередного обновления конфигурации БГУ 2.0. В одном из релизов разработчики изменили состав аналитики (субконто) для счетов расчетов с контрагентами (таких как 205.00 и 302.00) — к ним добавили новое субконто Договоры. В результате произошли следующие изменения:

  1. В проводках документов, которые были созданы и проведены до обновления, новое субконто «Договоры» физически отсутствует.
  2. На месте этого субконто в базе данных образуется значение NULL (абсолютное отсутствие данных), а не стандартная «пустая ссылка» на справочник договоров.
  3. При формировании ОСВ с отбором по контрагенту или при развертке по месяцам платформа «1С:Предприятие» выполняет соединение таблиц. Из-за наличия значений NULL в полях субконто СУБД некорректно обрабатывает такие строки и просто отсекает исторические записи из итоговой выборки. Документы за прошлые периоды «выпадают» из отчета, хотя физически проводки существуют.

Посмотрим на упрощенный пример того, как СУБД «видит» эту выборку на уровне SQL-запроса при соединении таблиц остатков и субконто:


ВЫБРАТЬ
    РегистрБухгалтерии.Субконто1 КАК Контрагент,
    РегистрБухгалтерии.Субконто2 КАК Договор, // Здесь возвращается NULL для старых периодов
    РегистрБухгалтерии.СуммаОборотДт
ИЗ
    РегистрБухгалтерии.ОборотыДтКт КАК РегистрБухгалтерии
ГДЕ
    РегистрБухгалтерии.Субконто1 = &ОтборКонтрагент
    И РегистрБухгалтерии.Субконто2 <> НЕОПРЕДЕЛЕНО // Строки с NULL отсекаются

Пошаговый алгоритм решения проблемы

Выяснив причину сбоя, перейдем к его устранению. Обычное групповое перепроведение документов за прошлые годы — это трудоемкий и опасный процесс, который может изменить показатели прошлых закрытых периодов. Мы применим методически верный и безопасный способ, рекомендуемый методистами фирмы 1С.

Рассмотрим по шагам комплекс мер для исправления отображения данных в ОСВ.

Шаг 1. Создание резервной копии базы данных
Перед выполнением любых массовых корректировок данных и расчетов итогов обязательно создайте архивную копию вашей информационной базы. В случае возникновения непредвиденных сбоев вы всегда сможете вернуться к исходному состоянию.

Шаг 2. Пересчет бухгалтерских итогов
Для начала нам необходимо обновить таблицы итогов в системе. Это можно сделать как в режиме Конфигуратора, так и непосредственно в пользовательском режиме 1С:Предприятие:

  1. Перейдите в раздел Администрирование, далее выберите пункт Обслуживание.
  2. Откройте подраздел Регламентные операции и перейдите по ссылке Управление итогами.
  3. В открывшемся окне проверьте актуальность рассчитанного периода. Если итоги не актуальны, выполните их пересчет по требуемый месяц.

Шаг 3. Запуск корректировки незаполненных субконто
Теперь выполним главную процедуру, которая заменит значения NULL в проводках на правильные пустые ссылки типа Договор. Для этого в программе предусмотрена специальная сервисная обработка:

  1. Находясь в разделе Администрирование — Обслуживание, найдите группу Корректировка данных.
  2. Запустите обработку Корректировка незаполненных субконто в проводках.
  3. В появившемся окне выберите счета учета, на которых проявилась проблема (например, укажите счета 205.00 и 302.00, по которым ведется расчет с контрагентами).
  4. В списке субконто отметьте флажком аналитику Договоры.
  5. Нажмите кнопку Выполнить корректировку. Программа просканирует регистр бухгалтерии и автоматически заполнит битые ссылки системными пустыми значениями.

Шаг 4. Повторное тестирование и пересчет итогов
После завершения работы обработки необходимо повторно пересчитать итоги, чтобы платформа «1С» заново построила виртуальные таблицы с учетом исправленных пустых субконто. После этого сформируйте ОСВ по счету с отбором по контрагенту — документы за прошлые периоды должны вернуться на свои места.

Почему «разъезжается» 302-й счет и как исправить аналитику

Параллельно пользователи часто замечают другую проблему в ОСВ: «разъезжаются» расчеты по счету 302.62 (или другим субсчетам счета 302) по физлицам. Начисление компенсации и ее выплата равны по суммам, но в ОСВ по конкретному сотруднику или физлицу «висит» развернутое дебетовое и кредитовое сальдо (минус и плюс одновременно).

Проанализируем основные причины этой проблемы и способы их локализации:

Использование отчета «Анализ субконто» для поиска расхождений

Чтобы быстро выявить, из-за какого именно аналитического разреза произошло расхождение на счетах расчетов, рекомендуем использовать отчет Анализ субконто:

  1. Перейдите в раздел Отчеты и откройте отчет Анализ субконто.
  2. В настройках отчета выберите вид субконто: Контрагенты и Договоры.
  3. В панели настроек обязательно перейдите на вкладку Показатели и установите флаг Развернутое сальдо по всем субконто.
  4. Сформируйте отчет за проблемный период.

Этот отчет наглядно покажет вам структуру расхождений: вы сразу увидите строки, где суммы начисления и выплаты разошлись по разным договорам или разным КПС. Для исправления достаточно открыть некорректный документ выплаты или начисления и привести аналитику к единому значению.

← На главную