Почему Оборотно-сальдовая ведомость по счету в 1С 8.3 отображает некорректные данные или требует повторного нажатия кнопки «Сформировать»?

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

В процессе работы с программой «1С:Бухгалтерия предприятия 3.0» пользователи часто сталкиваются с ситуацией, когда стандартные отчеты ведут себя непредсказуемо. Одной из наиболее странных и обсуждаемых проблем является ошибка формирования «Оборотно-сальдовой ведомости по счету» (ОСВ) для счетов расчетов с контрагентами, таких как 60 «Расчеты с поставщиками и подрядчиками» и 62 «Расчеты с покупателями и заказчиками». Суть проблемы заключается в том, что при переключении между этими счетами в отчете данные либо отображаются не полностью (пропадают субсчета), либо в отчет по одному счету ошибочно попадают данные другого счета.

Рассмотрим подробнее этот программный сбой, разберем причины его возникновения с технической точки зрения и выясним, как окончательно устранить эту проблему в вашей базе данных.

Краткое описание симптомов проблемы

Представим стандартный рабочий сценарий бухгалтера. Вы открываете отчет «Оборотно-сальдовая ведомость по счету» и выполняете следующие действия:

  1. Выбираете счет 60 и нажимаете кнопку «Сформировать». Отчет формируется корректно.
  2. Меняете счет в шапке отчета на 62 и снова нажимаете «Сформировать».
  3. Вместо ожидаемых данных по 62 счету вы видите в таблице строку со счетом 60.03, хотя в настройках четко указан счет 62.
  4. Вы нажимаете кнопку «Сформировать» еще раз (повторно), и только тогда отчет принимает правильный вид.
  5. Если теперь вернуться обратно к счету 60, то при первом нажатии данные по субсчету 60.03 могут просто исчезнуть из таблицы, появляясь только после второго нажатия.

Такое поведение системы вызывает обоснованные опасения у пользователей: «Можно ли доверять цифрам в отчете, если они меняются от количества нажатий на кнопку?». Проанализируем ситуацию, чтобы понять, что происходит «под капотом» программы.

Технический анализ: почему это происходит

Причина кроется в особенностях работы механизма Системы компоновки данных (СКД) и кэширования настроек в типовых решениях 1С. Для большинства счетов в 1С состав аналитики (субконто) одинаков на всех субсчетах. Однако существуют так называемые «особенные счета».

Например, у счета 60.01 и 60.02 стандартный набор субконто: «Контрагенты», «Договоры», «Документы расчетов». А у субсчета 60.03 «Векселя выданные» набор аналитики может отличаться. Проанализируем программный код, который отвечает за построение запроса для таких случаев.

В конфигурации используется специальная функция, которая динамически меняет текст запроса в зависимости от того, какой счет выбран. Рассмотрим пример логики в общем модуле ТиповыеОтчеты:


// Функция формирует текст запроса, учитывающий разный состав субконто субсчетов выбранного счета.
Функция ТекстЗапросаДляОсобенныхСчетов(Счет, СхемаКомпоновкиДанных, КомпоновщикНастроек) Экспорт
    // Здесь происходит анализ выбранного счета и его иерархии
    // Если у субсчетов разный набор аналитики, запрос перестраивается
    ...
КонецФункции

Выясним причину сбоя: при первом нажатии кнопки «Сформировать» система обращается к временному хранилищу, где уже лежит подготовленная ранее схема компоновки данных (например, от предыдущего формирования по счету 60). Из-за программной ошибки в старых релизах (в частности, 3.0.80.40) очистка этого хранилища происходила позже, чем вызывалась функция построения запроса. В итоге система пыталась «наложить» настройки счета 62 на структуру запроса счета 60.

Официальное признание ошибки

Данная ситуация не является следствием неправильных действий пользователя или сбоя в базе данных (битых индексов или кэша платформы). Компания 1С официально зарегистрировала эту ошибку под номером 10224864.

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

Как решить проблему: пошаговая инструкция

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

Способ 1. Обновление конфигурации (рекомендуемый)

Самый надежный способ избавиться от этого «глюка» — обновить программу. Разработчики выпустили исправление в последующих версиях. Ошибка была полностью устранена в релизах 3.0.82.24 и выше. Если ваша конфигурация версии 3.0.83 и старше, данная проблема вас больше не побеспокоит.

Способ 2. Очистка пользовательских настроек

Иногда ошибка может «залипнуть» в сохраненных настройках конкретного пользователя. Проанализируем, как их сбросить:

  1. Перейдите в раздел Администрирование — Настройки пользователей и прав.
  2. Выберите пункт Очистка настроек.
  3. В списке найдите пользователя, у которого наблюдается проблема, и разверните список его настроек.
  4. Найдите отчет ОборотноСальдоваяВедомостьПоСчету и удалите все записи, связанные с ним.

Способ 3. Принудительное переформирование (обходной путь)

Если вы не можете обновиться прямо сейчас, научимся правильно «проталкивать» данные в отчет:

Резюме

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

← На главную