Как исправить удвоение начального сальдо в акте сверки взаиморасчетов в 1С:БГУ?

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

После проведения очередного обновления программных продуктов пользователи часто сталкиваются с неожиданным поведением стандартных отчетов и документов. Одной из таких неприятных проблем в программе «1С:Бухгалтерия государственного учреждения, редакция 1.0» (БГУ 1.0) в релизе 1.0.53.2 стало некорректное формирование документа Акт сверки взаиморасчетов. Бухгалтеры начали массово замечать, что при формировании акта сверки происходит автоматическое удвоение начального сальдо.

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

Выясняем причину: почему дорабатывали «Акт сверки» и откуда взялся баг

Для того чтобы понять природу ошибки, рассмотрим контекст изменений в релизе 1.0.53.2. В 2018 году государственные учреждения перешли на применение нового федерального стандарта СГС «Аренда» (утвержден приказом Минфина России от 31.12.2016 № 258н). Этот стандарт кардинально изменил принципы отражения арендных отношений в учете:

  1. Отражение задолженности: Теперь дебиторская и кредиторская задолженность по долгосрочным договорам аренды признается в учете сразу в полном объеме за весь период действия договора.
  2. Несоответствие реальных взаиморасчетов: Из-за признания всей суммы договора остатки на стандартных счетах расчетов (таких как 205.21, 205.23 или 302.24) перестали отражать текущий реальный долг контрагента к оплате на конкретную дату. В балансе числится вся сумма будущего договора, а фактически оплачена должна быть только текущая часть.

Чтобы предоставить пользователям корректную печатную форму акта сверки, отражающую реальные платежи и фактические расчеты, разработчикам 1С пришлось полностью переписать алгоритм расчета остатков. Программа начала высчитывать сальдо по сложным формулам:

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

Проанализируем техническую суть ошибки в коде

Проблема кроется в функции ТекстЗапросаСверки_Остатки, которая отвечает за сбор и подготовку данных по остаткам на начало и конец выбранного периода сверки. Для оптимизации работы системы и уменьшения количества обращений к базе данных разработчики объединили получение начальных и конечных остатков в один пакет запросов.

В процессе выборки итоговых данных по начальным остаткам в запросе был пропущен важный фильтр. Программа выбирала записи из временной таблицы остатков, но забыла отсечь записи, относящиеся к концу периода. В результате в таблицу начального сальдо попали записи со значением как «Начало», так и «Конец». Система суммировала их между собой, что привело к некорректным расчетным показателям. Если у учреждения были обороты за период, входящее сальдо рассчитывалось хаотично, а при отсутствии оборотов — ровно удваивалось.

Рассмотрим два способа исправления этой ситуации.

Способ 1. Временное решение: исправление кода в конфигураторе

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

Выполним следующие шаги вместе:

  1. Запустите программу 1С в режиме Конфигуратор. Перед началом любых работ обязательно сделайте резервную копию информационной базы (меню Администрирование -> Выгрузить информационную базу).
  2. Откройте конфигурацию (меню Конфигурация -> Открыть конфигурацию).
  3. Найдите в дереве метаданных документ АктСверкиВзаиморасчетов. Обычно он находится в ветке Документы.
  4. Перейдите в модуль менеджера или модуль объекта документа (в зависимости от архитектуры версии, функция формирования запроса расположена там) и найдите функцию с именем ТекстЗапросаСверки_Остатки.
  5. Проанализируем код формирования текста запроса. В месте, где происходит выборка из временной таблицы остатков для начального сальдо, необходимо добавить строгое условие фильтрации по типу остатка.

Посмотрим на пример кода, который необходимо скорректировать. Вам нужно найти фрагмент запроса, формирующий начальные остатки, и дописать условие:


// Было в релизе 1.0.53.2 (условие по типу остатка отсутствует):
|ГДЕ
|	ТаблицаОстатков.Договор = &Договор

// Должно быть (добавляем условие фильтрации):
|ГДЕ
|	ТаблицаОстатков.Договор = &Договор
|	И ТаблицаОстатков.ТипОстатков = "Начало"

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

Способ 2. Кардинальное решение: обновление до релиза 1.0.53.3

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

В релизе 1.0.53.2 на счетах учета прав пользования активами 111.хх и амортизации прав пользования 114.хх был по ошибке установлен признак количественного учета. Из-за этого бухгалтеры не могли корректно провести документы принятия к учету прав пользования, так как система требовала заполнения несуществующего «количества» услуг аренды, а также ломалось заполнение инвентаризационных описей (форма 0504087).

При обновлении конфигурации на релиз 1.0.53.3 система производит следующие действия:

Рекомендуем вам выполнить обновление конфигурации до актуального релиза по стандартной процедуре через поиск обновлений в пользовательском режиме или через конфигуратор с использованием файла обновления 1cv8.upd.

← На главную