Как исправить ошибку «Не заполнен счет дебета» при списании нормируемых расходов в 1С:ERP

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

При выполнении процедуры закрытия месяца в системе 1С:ERP Управление предприятием 2.5 пользователи часто сталкиваются с ошибкой на этапе регламентной операции «Списание нормируемых расходов». Ошибка сопровождается системным сообщением: Запись не верна! Не заполнен счет дебета (Регистр бухгалтерии: Журнал проводок (регламентированный учет); Номер строки: 1). Эта ситуация блокирует дальнейшее формирование финансового результата и требует детального анализа как настроек системы, так и данных в регистрах.

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

Выясняем причину ошибки

Проанализируем ситуацию: регламентная операция пытается сформировать проводку по списанию расходов, которые в налоговом учете (НУ) ограничиваются нормативами (например, представительские расходы, расходы на рекламу или добровольное страхование). Система рассчитывает долю списания, определяет сумму, которую нужно перенести со счета 76.01.9 (или аналогичных счетов нормируемых расходов) на счета затрат, но не может определить счет дебета. Это происходит из-за того, что в матрице настроек отражения расходов для конкретной статьи не задан целевой счет списания для ОСНО.

Решение 1: Проверка и донастройка Групп финансового учета (ГФУ)

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

  1. Перейдем в список Статьи расходов и найдем ту статью, по которой возникают нормируемые расходы (ее можно вычислить по оборотам счета нормируемых расходов в ОСВ).
  2. Откроем карточку статьи и проверим реквизит Группа финансового учета.
  3. В настройках ГФУ для налогового учета может быть по ошибке установлена настройка, характерная для прямых производственных затрат, где счет списания не заполняется в явном виде.
  4. Для нормируемых расходов, которые должны списываться на финансовый результат, необходимо убедиться, что в настройках отражения (режим Настройка отражения документов в регл. учете) для данной статьи заполнен счет в колонке Списание расходов ОСНО (обычно это счета 90.07.1 или 90.08.1).

Важный нюанс: Если в ГФУ стоит признак отнесения на себестоимость, но статья фактически должна закрываться на 90 счет, система может потерять аналитику. Попробуем установить счет списания явно, даже если статья кажется "прямой".

Решение 2: Массовое перепроведение и восстановление последовательности

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

Рассмотрим порядок действий:

  1. Воспользуемся стандартной обработкой Групповое перепроведение документов.
  2. Выберем период (в нашем примере — Февраль 2022) и выполним перепроведение всех документов, влияющих на затраты.
  3. После этого запустим процедуру закрытия месяца повторно. В ряде случаев это обновляет временные таблицы, которые использует регламентная операция, и ошибка уходит.

Решение 3: Программное исправление через расширение (для разработчиков)

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

Проанализируем пример кода, который переопределяет функцию ПолучитьРасчетСписанияКосвенныхРасходов в модуле менеджера документа РегламентнаяОперация:


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

    ЭтоКонецГода = КонтекстРасчета.КонДата = КонецГода(КонтекстРасчета.КонДата);
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("КонецПериодаГраница", КонтекстРасчета.КонГраница);
    Запрос.УстановитьПараметр("Организация", КонтекстРасчета.Организация);
    
    СоздатьВременнуюТаблицуДолиСписанияКосвенныхРасходов(
        КонтекстРасчета.Дата, 
        КонтекстРасчета.Организация, 
        Запрос.МенеджерВременныхТаблиц);

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

    РегистрыСведений.ПорядокОтраженияНаСчетахУчета.ПереопределитьВТекстеЗапросаПорядокОтраженияСчетаУчета(Запрос.Текст);
    Выборка = Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл
        Если Выборка.СуммаНУОстаток = 0 Тогда
            Продолжить;
        КонецЕсли;

        СписаниеПоНУ = Окр(Выборка.СуммаНУОстаток * Выборка.ДоляСписания, 2);
        Если СписаниеПоНУ <> 0 Тогда
            ОписаниеРасходов = ТаблицаДанных.Добавить();
            ЗаполнитьЗначенияСвойств(ОписаниеРасходов, Выборка);

            // Проверка на заполнение счета. Если пустой - подставляем счет по умолчанию.
            Если НЕ ЗначениеЗаполнено(Выборка.СчетСписанияОСНО) Тогда
                ОписаниеРасходов.СчетДт = ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.Продажи_УправленческиеРасходыНеЕНВД");
            Иначе
                ОписаниеРасходов.СчетДт = Выборка.СчетСписанияОСНО;
            КонецЕсли;

            ОписаниеРасходов.СчетКт = Выборка.СчетНормируемыхРасходов;
            ОписаниеРасходов.Содержание = КонтекстРасчета.Содержание;
            ОписаниеРасходов.СуммаНУ = СписаниеПоНУ;
            ОписаниеРасходов.СуммаВР = Выборка.СуммаВРОстаток;
            ОписаниеРасходов.СуммаПР = - СписаниеПоНУ - Выборка.СуммаВРОстаток;
        КонецЕсли;
    КонецЦикла;

    Возврат ТаблицаДанных;
КонецФункции

В данном коде мы проанализировали запрос, который обращается к регистру сведений ПорядокОтраженияНаСчетахУчета. Если левое соединение не находит подходящую запись по комбинации Организация + Статья + Подразделение, поле СчетСписанияОСНО остается пустым. Вставка условия Если НЕ ЗначениеЗаполнено... Тогда позволяет избежать аварийной остановки закрытия месяца.

Диагностика через отчеты

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

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

Резюме

Для исправления ошибки Запись не верна! Не заполнен счет дебета в регламентной операции списания нормируемых расходов:

  1. Проверьте ГФУ статьи расходов: убедитесь, что для налогового учета правильно задан порядок отражения и заполнен счет списания ОСНО.
  2. Перевыберите счет: иногда помогает простая очистка и повторный выбор счета в настройках отражения для обновления записей в регистре.
  3. Обновите систему: если вы работаете на релизе 2.5.7, проверьте наличие патчей, исправляющих алгоритмы подбора счетов для нормируемых расходов.
  4. Используйте расширение: если ошибка носит массовый характер и связана с архитектурными особенностями релиза, примените приведенный выше программный код для подстановки счета по умолчанию.

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

← На главную