Как исправить ошибку «Не указаны способы отражения расходов по амортизации» при закрытии месяца в 1С:Бухгалтерия 3.0

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

Перенос данных из старых редакций программных продуктов 1С (например, переход с 1С:Бухгалтерии предприятия 2.0 на редакцию 3.0) — это процесс, который нередко сопровождается скрытыми трудностями. С одной стороны, перенос завершается успешно, документы проводятся, регламентные операции выполняются. Но с другой стороны, при очередном обновлении релиза или при попытке закрыть сложный период бухгалтеры внезапно сталкиваются с ошибками начисления амортизации основных средств (ОС).

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

Почему возникает ошибка: анализируем механику работы 1С

При выполнении регламентной операции «Амортизация и износ основных средств» в процедуре закрытия месяца программа собирает сведения о состоянии каждого объекта ОС. Ключевым регистром, из которого система считывает правила распределения затрат, является периодический регистр сведений СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.

Когда основные средства переносятся из редакции 2.0 в редакцию 3.0, они часто заносятся в систему без полноценных документов Принятие к учету ОС. Вместо этого остатки вводятся либо через специализированный документ ввода остатков, либо обычными ручными операциями (бухгалтерскими проводками по дебету счета 01 и кредиту счета 00). При таком «ручном» или упрощенном переносе записи в специализированных регистрах сведений по основным средствам могут отсутствовать или быть неполными.

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

«Не указаны способы отражения расходов по амортизации для объекта "..." Укажите эти данные в документах принятия к учету и изменения параметров начисления амортизации».

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

Первое интуитивное действие пользователя при возникновении такой ошибки — создать документ Изменение отражения амортизации ОС на начало закрываемого месяца (например, на 1 июля 2017 года). Но при повторном запуске закрытия месяца ошибка всё равно повторяется. Почему так происходит?

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

В запросе параметр начала периода устанавливается следующим образом:


// Пример логики инициализации границы периода в типовом решении
Запрос.УстановитьПараметр("НачалоПериода", Новый Граница(НачалоМесяца(Реквизиты.ДатаРасчета), ВидГраницы.Исключая));

Использование свойства ВидГраницы.Исключая означает, что сама точка времени 1-е число месяца 00:00:00 из выборки исключается. Программа ищет записи, сделанные строго до начала расчетного месяца. С точки зрения методологии бухгалтерского учета это абсолютно верно: любые изменения параметров амортизации, внесенные в текущем месяце, должны начать действовать только со следующего месяца.

Таким образом, если мы вводим документ изменения параметров 1 июля, система при расчете амортизации за июль его просто «не видит», так как граница установлена на 1 июля «Исключая». Если же мы попытаемся ввести документ концом предыдущего месяца (30 июня), то программа потребует перепровести и перезакрыть июнь, нарушая последовательность и грозя изменением уже сданной отчетности.

Давайте рассмотрим, как выйти из этого замкнутого круга.

Решение №1. Корректировка кода запроса (Вариант для программистов)

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

В модуле расчета амортизации найдем функцию получения текста запроса параметров отражения в учете (например, ПолучитьТекстЗапросаАмортизацияОСПараметрыОтраженияВУчете). В оригинальном коде срез последних берется по параметру &НачалоПериода, который передает границу с видом «Исключая».

Мы можем заменить этот параметр на обычную дату начала периода &НачалоПериодаДата (без использования исключающей границы). В этом случае документы, введенные в первый секунду месяца (01.07.2017 00:00:00), попадут в расчет за этот же месяц.

Ниже представлен пример изменения текста запроса:


Функция ПолучитьТекстЗапросаАмортизацияОСПараметрыОтраженияВУчете()
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    СпособыОтраженияРасходовБУ.ОсновноеСредство КАК ОсновноеСредство,
    |    СпособыОтраженияРасходовБУ.СпособыОтраженияРасходовПоАмортизации КАК СпособыОтраженияРасходовПоАмортизации
    |ПОМЕСТИТЬ СпособыОтраженияРасходовБУ
    |ИЗ
    |    РегистрСведений.СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.СрезПоследних(
    // Корректировка разработчика: заменяем границу на чистую дату
    //|            &НачалоПериода,
    |            &НачалоПериодаДата,
    |            Организация = &Организация
    |                И ОсновноеСредство В
    |                    (ВЫБРАТЬ
    |                        СписокОС.ОсновноеСредство
    |                    ИЗ
    |                        СписокОС КАК СписокОС)) КАК СпособыОтраженияРасходовБУ
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    ОсновноеСредство";
    
    Возврат ТекстЗапроса;
КонецФункции

Важное предупреждение: Данный способ является вынужденной мерой и не рекомендуется для постоянного использования. Внесение изменений в типовые механизмы расчета амортизации усложняет последующие обновления конфигурации и потенциально может нарушить методологию учета ФСБУ 6/2020 при штатном изменении параметров ОС в будущем.

Решение №2. Заполнение исторических регистров вручную (Рекомендуемый штатный способ)

Наиболее правильным и безопасным способом является наведение порядка в исторических данных. Нам необходимо сделать так, чтобы на дату начала ведения учета в базе 1С:Бухгалтерия 3.0 в регистре сведений уже содержались нужные записи. Для этого не требуется перепроводить старые периоды или менять код конфигурации.

Разберем по шагам, как внести записи в регистр прошлым периодом:

  1. Перейдем в раздел Операции и откроем журнал Операции, введенные вручную.
  2. Создадим новый документ Операция. Дату документа установим на один день ранее даты начала учета в новой базе (например, если учет ведется с 01.01.2017, то дату операции ставим 31.12.2016).
  3. По умолчанию этот документ предназначен для ввода бухгалтерских проводок. Чтобы включить возможность записи в регистры сведений, в правом верхнем углу документа нажмем кнопку Еще и выберем пункт Выбор регистров.
  4. В открывшемся окне перейдем на вкладку Регистры сведений, найдем в списке регистр Способы отражения расходов по амортизации ОС (бухгалтерский учет), установим напротив него флаг и нажмем ОК.
  5. В документе появится новая вкладка с названием выбранного регистра. Перейдем на нее и добавим строки по всем проблемным основным средствам.
  6. Для каждого ОС укажем:
    • Период — 31.12.2016 (дата ввода остатков);
    • Основное средство — наше проблемное ОС;
    • Организация — наша организация;
    • Способ отражения — выберем необходимый элемент справочника способов отражения расходов (например, "Амортизация (счет 20)", "Амортизация (счет 26)" и т.д.).
  7. Запишем и закроем документ.

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

Решение №3. Корректный ввод изменений в предыдущем периоде без перепроведения документов

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

Давайте проанализируем этот сценарий:

  1. Создадим документ Изменение отражения амортизации ОС и датируем его последним числом предыдущего месяца — 30.06.2017. В табличной части укажем проблемные ОС и новый способ отражения расходов.
  2. Этот документ делает движения только в регистр сведений и не создает бухгалтерских проводок. Следовательно, финансовые результаты июня физически измениться не могут.
  3. После проведения документа перейдем в помощник Закрытие месяца. Программа обнаружит появление нового документа в июне и окрасит этот месяц в красный цвет, сообщая о нарушении последовательности и требуя перезакрыть июнь.
  4. Чтобы избежать реального перепроведения документов июня (которое может исказить учетные данные или сбить последовательность), кликнем левой кнопкой мыши по первому этапу «Перепроведение документов за месяц» в июне.
  5. В выпадающем меню выберем команду Пропустить операцию (или "Пометить как выполненную"). Статус июня снова станет зеленым (актуальным).
  6. Перейдем в расчетный месяц (июль 2017 г.) и выполним процедуру закрытия месяца. Теперь июльская амортизация рассчитается без ошибок, основываясь на данных, внесенных 30 июня.

Резюме

Мы подробно рассмотрели проблему закрытия месяца при расчете амортизации перенесенных ОС в программе 1С:Бухгалтерия. Столкнувшись с ошибкой отсутствия способов отражения расходов, не спешите сразу менять конфигурацию. Использование штатных инструментов работы с регистрами (Решение №2) или корректный ввод документов с временным пропуском перепроведения (Решение №3) позволяют быстро, надежно и без рисков для будущих обновлений решить эту проблему.

← На главную