Как настроить автоматическое отражение расходов в КУДиР сразу при списании денежных средств в 1С?

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

В практике работы с 1С:Бухгалтерией часто возникает ситуация, когда бухгалтеру требуется максимально упростить налоговый учет по УСН. Одно из наиболее частых пожеланий — сделать так, чтобы любые списания с расчетного счета или выдачи наличных сразу попадали в Книгу учета доходов и расходов (КУДиР) в графу 7 (расходы, учитываемые при исчислении налоговой базы), не дожидаясь выполнения других условий, предусмотренных Налоговым кодексом РФ.

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

Методологическая база учета КУДиР в 1С

Прежде чем переходить к коду, давайте разберем, почему в типовой конфигурации 1С:Бухгалтерия 8.3 расходы не всегда попадают в КУДиР в момент оплаты. Согласно статье 346.17 НК РФ, для разных видов затрат установлены разные правила:

  1. Материалы: должны быть оплачены поставщику и оприходованы.
  2. Товары для перепродажи: должны быть оплачены поставщику, оприходованы и реализованы конечному покупателю.
  3. Услуги: должны быть оплачены и фактически оказаны (подписан акт).
  4. Зарплата и налоги: признаются в момент фактической выплаты/перечисления.

В программе 1С для контроля этих условий используются специальные регистры накопления, такие как Расходы при УСН. Запись в итоговый регистр Книга учета доходов и расходов (раздел I) делает тот документ, который в цепочке событий оказался последним. Если вы сначала получили товар, а потом оплатили его, запись сделает Списание с расчетного счета. Если сначала была предоплата, то запись сделает Поступление (акт, накладная, УПД) в момент оприходования или документ Реализация товаров и услуг в момент продажи.

Программная реализация: вмешательство в общий модуль

Если решение о доработке принято, рассмотрим основной механизм, отвечающий за формирование записей КУДиР. Нам необходимо внести изменения в общий модуль НалоговыйУчетУСН. Рассмотрим по шагам, как это сделать через расширение конфигурации.

Основная процедура, которую нам нужно «захватить», называется ОтразитьВУСН. Именно в ней происходит заполнение структуры, которая в дальнейшем превращается в движения по регистрам КУДиР. Проанализируем пример кода, который позволяет форсировать запись в Графу 7 при проведении платежных документов.

Пример кода для расширения

Для корректной работы нам потребуется создать расширение и добавить в него процедуру ОтразитьВУСН с аннотацией &После или &Вместо (в зависимости от глубины переработки логики). Разберем вариант, предложенный участниками сообщества, с нашими дополнениями для стабильности:


&После("ОтразитьВУСН")
Процедура ИН_ОтразитьВУСН(ЗаписьКУДиР, Расход, Параметры)
    
    // Проверяем, является ли регистратор документом списания денежных средств
    ТипРегистратора = ТипЗнч(ЗаписьКУДиР.Регистратор);
    
    Если ТипРегистратора = Тип("ДокументСсылка.СписаниеСРасчетногоСчета") 
        Или ТипРегистратора = Тип("ДокументСсылка.ВыдачаНаличных") Тогда
        
        Попытка
            // В документе списания может быть несколько строк расшифровки платежа.
            // Нам нужно понять, к какой строке относится текущая запись КУДиР.
            Если ЗаписьКУДиР.СтрокаДокумента > 0 Тогда
                ТекСтрока = ЗаписьКУДиР.Регистратор.РасшифровкаПлатежа[ЗаписьКУДиР.СтрокаДокумента - 1];
                
                // Проверяем документ-основание (Сделка), если он заполнен
                Если ЗначениеЗаполнено(ТекСтрока.Сделка) Тогда
                    
                    // Пример логики: заглядываем в документ поступления, чтобы понять настройки УСН
                    // Это нужно, если мы хотим разделять "Принимаемые" и "Не принимаемые" расходы
                    МетаданныеОбъекта = ТекСтрока.Сделка.Метаданные();
                    
                    Если МетаданныеОбъекта.ТабличныеЧасти.Найти("Товары") <> Неопределено Тогда
                        // Проверяем признак отражения в УСН первой строки товаров
                        Если ТекСтрока.Сделка.Товары.Количество() > 0 Тогда
                            ПерваяСтрока = ТекСтрока.Сделка.Товары[0];
                            Если СокрЛП(ПерваяСтрока.ОтражениеВУСН) = "Принимаются" Тогда
                                // Форсируем запись всей суммы в расходы (Графа 7)
                                ЗаписьКУДиР.Графа7 = ЗаписьКУДиР.Графа6; 
                            КонецЕсли;
                        КонецЕсли;
                    КонецЕсли;
                Иначе
                    // Если сделка не указана, просто принимаем расход по факту оплаты
                    ЗаписьКУДиР.Графа7 = ЗаписьКУДиР.Графа6;
                КонецЕсли;
            КонецЕсли;
        Исключение
            // В случае ошибки возвращаемся к типовому алгоритму
            // (ЗаписьКУДиР.Графа7 останется рассчитанной системой)
        КонецПопытки;
        
    КонецЕсли;
    
КонецПроцедуры

Разбор ключевых моментов кода

Рассмотрим подробнее, что происходит в данном фрагменте:

  1. Идентификация документа: Мы используем ТипЗнч(ЗаписьКУДиР.Регистратор), чтобы убедиться, что код сработает только для банковских и кассовых документов.
  2. Связь со строкой документа: Поскольку 1С формирует записи КУДиР в цикле по строкам расшифровки платежа, мы обращаемся к ЗаписьКУДиР.СтрокаДокумента. Это позволяет вытащить данные о конкретной сделке (например, счете или накладной).
  3. Графа 6 и Графа 7: В КУДиР Графа 6 — это сумма всего, а Графа 7 — расходы, принимаемые для налогообложения. Присваивая ЗаписьКУДиР.Графа7 = ЗаписьКУДиР.Графа6, мы принудительно говорим системе, что вся оплаченная сумма должна уменьшить налог.
  4. Проверка аналитики: Попытка проверить документ-основание через ТекСтрока.Сделка критически важна. Если бухгалтер ошибочно оплатит личные нужды или задолженность, не относящуюся к расходам УСН, такая проверка позволит избежать грубых ошибок.

Важные предостережения и риски

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

1. Дублирование расходов. Это самая опасная проблема. Типовой механизм 1С продолжит работать. Если вы форсируете расход по оплате, а затем программа увидит, что товар был продан (через месяц), она может попытаться сделать запись в КУДиР еще раз в рамках регламентной операции Расчет налога УСН. Вам придется дополнительно дорабатывать регистр Расходы при УСН, чтобы «закрывать» остатки по оплатам, иначе учет «развалится».

2. Налоговые проверки. Если налоговая увидит, что вы приняли в расходы товары, которые еще лежат на складе (не реализованы), вам доначислят налог, пени и штраф в размере 20% от суммы недоимки. Статья 346.17 НК РФ прямо запрещает признавать товары к расходу до их продажи.

3. Обновление конфигурации. Даже при использовании расширений, структура общего модуля НалоговыйУчетУСН может измениться при очередном обновлении 1С (особенно часто это бывает при изменениях в законодательстве). Это потребует ручного пересмотра вашего кода в расширении.

Альтернативное решение: Документ «Записи КУДиР»

Вместо того чтобы ломать программный код, предложим рассмотреть более безопасный вариант. В 1С есть штатный документ Записи книги учета доходов и расходов УСН. Рассмотрим его преимущества:

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

← На главную