Как исправить ошибку расчета остаточной стоимости при продаже ОС с целевым финансированием в 1С:ERP

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

При работе в 1С:ERP Управление предприятием пользователи часто сталкиваются с методологическими сложностями при учете целевого финансирования (субсидий). Одной из наиболее критичных проблем является некорректное формирование проводок при выбытии основного средства (ОС), приобретенного за счет таких средств. В частности, при использовании документа Подготовка к передаче ОС система может сформировать ошибочную сумму по дебету счета 98.05 («Доходы будущих периодов») в корреспонденции со счетом 91.01 («Прочие доходы»). Вместо остаточной стоимости программа подтягивает сумму, равную «первоначальная стоимость плюс накопленная амортизация», что в корне неверно и ведет к существенному искажению финансового результата.

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

Анализ механизмов учета целевого финансирования в ERP

Для начала проанализируем, как методологически должен выглядеть процесс признания доходов от целевого финансирования при продаже актива. Согласно ПБУ 13/2000, при выбытии объекта ОС, приобретенного за счет бюджетных средств, не списанная на доходы часть целевого финансирования (остаток на счете 98.05) должна быть признана в качестве прочего дохода в момент выбытия актива. Эта сумма должна строго соответствовать остаточной стоимости объекта в части, профинансированной за счет субсидии.

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

  1. При проведении документа Подготовка к передаче ОС (или Списание ОС), система обращается к данным регистров для определения текущего состояния актива.
  2. Для формирования проводки Дт 98.05 Кт 91.01 программный код выполняет выборку из виртуальных таблиц остатков и оборотов.
  3. Суть ошибки: В некоторых релизах (особенно ветки 2.5.7–2.5.12) запрос к регистру Стоимость ОС игнорирует вид движения (приход/расход) или некорректно обрабатывает ресурс Амортизация. Вместо вычитания амортизации из стоимости, алгоритм может суммировать эти показатели в абсолютных величинах.

Выясним причину технического сбоя

Разберем ситуацию, описанную в практике сопровождения. При формировании проводок система берет данные из регистра накопления Стоимость ОС, но делает это без учета контекста операции выбытия. Если мы посмотрим на структуру этого регистра, мы увидим ресурсы Стоимость и Амортизация. Логика расчета должна выглядеть следующим образом:

ОстаточнаяСтоимость = Стоимость (Остаток) - Амортизация (Остаток)

Однако в проблемных версиях конфигурации запрос в модуле проведения документа ПодготовкаКПередачеОС обращается к оборотам регистра за период, не учитывая, что накопленная амортизация уже «сидит» в регистре с определенным знаком. В итоге получается абсурдная ситуация: если ОС стоило 100 000 руб., а амортизация составила 40 000 руб., система вместо 60 000 руб. (100 - 40) может подставить в проводку 140 000 руб. (100 + 40).

Решение через использование переопределяемых модулей

Начиная с последних релизов 2.5, фирма «1С» начала активный перенос кода, отвечающего за расчет проводок внеоборотных активов, в специализированные модули с приставкой Переопределяемый. Это сделано специально для того, чтобы специалисты на местах могли корректировать логику без изменения основной конфигурации. Рассмотрим, как мы можем этим воспользоваться.

Вам необходимо обратить внимание на общий модуль ВнеоборотныеАктивыПереопределяемый. Именно в нем теперь локализованы процедуры, позволяющие вмешаться в процесс формирования проводок по целевому финансированию. Если вы обнаружили ошибку в своем релизе, наиболее правильным путем будет создание расширения конфигурации.

Посмотрим на пример логики, которую необходимо внедрить в расширение (процедура-обработчик формирования проводок):


// В расширении перехватываем процедуру расчета сумм целевого финансирования
&После("СформироватьДвиженияПоЦелевомуФинансированию")
Процедура Расш1_СформироватьДвиженияПоЦелевомуФинансированию(ДокументСсылка, ПараметрыПроведения, Движения)
    
    // Проанализируем таблицу проводок, сформированную типовым механизмом
    Для Каждого Проводка Из Движения.Хозрасчетный Цикл
        Если Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ДоходыБудущихПериодов_05 
             И Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеДоходы Тогда
            
            // Получаем верную остаточную стоимость из регистра "Стоимость ОС"
            // Важно: учитываем только организацию и конкретный инвентарный номер
            ВернаяСумма = ПолучитьОстаточнуюСтоимостьЦелевыхСредств(ДокументСсылка.ОсновноеСредство);
            
            Если Проводка.Сумма <> ВернаяСумма Тогда
                Проводка.Сумма = ВернаяСумма;
                Проводка.СуммаНУ = ВернаяСумма; // Если требуется по налоговому учету
            КонецЕсли;
            
        КонецЕсли;
    КонецЦикла;

КонецПроцедуры

Пошаговая инструкция по диагностике и исправлению

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

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

Почему 1С меняет алгоритмы «втихушку»?

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

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

← На главную