Как настроить автоматическую подстановку кода вида операции 26 в счете-фактуре выданном

Программист 1С v8.3 (Обычные формы) Налоговый учет Промышленность, строительство и АПК
← На главную

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

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

Зачем нужен код вида операции 26?

Код 26 используется для операций реализации товаров, работ или услуг лицам, не являющимся плательщиками НДС, или в случаях, когда счета-фактуры не выставляются в соответствии с пунктом 7 статьи 168 НК РФ. Для системы налогового контроля АСК НДС-2 этот код критически важен. Если указан код 01, система пытается найти «встречную» запись в книге покупок контрагента. Поскольку физические лица не сдают декларации по НДС, возникает разрыв. Код 26 сообщает системе, что встречной проверки не требуется, что избавляет бухгалтерию от лишних запросов и пояснений.

Рассмотрим подробнее, как реализовать автоматическую подстановку этого кода в программе, чтобы избежать ручного исправления каждого документа.

Способ 1. Прямое изменение программного кода (Хардкодинг)

Это самый простой и быстрый способ, который часто применяется, если база уже снята с поддержки или изменения нужны «здесь и сейчас». Нам необходимо найти модуль документа СчетФактураВыданный и внести условие проверки контрагента.

Проанализируем процедуру, отвечающую за заполнение реквизитов документа. Обычно это ПередЗаписью или специализированные процедуры заполнения в модуле объекта. Найдем строку, где переменной КодВидаОперации присваивается значение "01".

Разберем пример кода, который можно внедрить:


Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    // Проверяем, что это новый документ или меняется контрагент
    Если ЗначениеЗаполнено(Контрагент) Тогда
        // Пример условия по конкретному контрагенту (например, "Население")
        // Лучше использовать ссылку, но для примера покажем логику по наименованию
        Если СокрЛП(Контрагент.Наименование) = "Население" Тогда
            КодВидаОперации = "26";
        Иначе
            // Оставляем стандартную логику, если КВО еще не заполнен
            Если ПустаяСтрока(КодВидаОперации) Тогда
                КодВидаОперации = "01";
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Важный момент: такой подход не является гибким. Если появится еще один контрагент, требующий КВО 26, придется снова лезть в код. Поэтому перейдем к более изящным решениям.

Способ 2. Использование дополнительных реквизитов (Рекомендуемый)

Чтобы не «привязываться» к конкретным именам или кодам контрагентов в конфигураторе, задействуем механизм дополнительных свойств. Это позволит бухгалтеру самостоятельно управлять настройками прямо в пользовательском режиме.

Выясним алгоритм действий:

  1. В справочнике Контрагенты создадим дополнительный реквизит с типом Строка или Булево (например, «ИспользоватьКВО26»).
  2. В модуле документа СчетФактураВыданный пропишем чтение этого реквизита.

Посмотрим на пример кода для реализации этой логики:


// Функция для получения доп. реквизита (упрощенно)
ЗначениеКВО = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Контрагент, "ДополнительныйРеквизит_КВО");

Если ЗначениеКВО = "26" Тогда
    КодВидаОперации = "26";
Иначе
    КодВидаОперации = "01";
КонецЕсли;

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

Способ 3. Определение кода по типу контрагента

Проанализируем ситуацию: если большинство покупателей, требующих код 26, являются физическими лицами, мы можем добавить условие на проверку типа контрагента. В типовых решениях 1С у справочника Контрагенты есть реквизит ЮридическоеФизическоеЛицо.

Применим следующую логику в коде:


Если Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда
    КодВидаОперации = "26";
КонецЕсли;

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

Способ 4. Работа через расширение конфигурации

Для того чтобы не снимать конфигурацию БСХП с поддержки (что крайне важно для регулярных обновлений агропромышленного софта), все изменения логики следует выносить в Расширение. Мы создаем расширение, заимствуем туда документ СчетФактураВыданный и переопределяем процедуру заполнения через аннотацию &После или &Вместо.

Рассмотрим структуру расширения:


&После("ЗаполнитьПоДокументуОснованию")
Процедура Расш_ЗаполнитьПоДокументуОснованию(ДокументОснование)
    
    // Если в документе-основании (Реализации) контрагент — физлицо
    Если ЗначениеЗаполнено(Объект.Контрагент) И 
         Объект.Контрагент.ЮридическоеФизическоеЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо") Тогда
        
        Объект.КодВидаОперации = "26";
        
    КонецЕсли;
    
КонецПроцедуры

Методологическая рекомендация для сельхозпроизводителей

Выясним, существует ли альтернатива массовой выписке счетов-фактур на каждое частное лицо. Согласно письмам Минфина, при розничной торговле или массовой реализации населению за наличный расчет, организация имеет право формировать сводную справку по окончании месяца (или квартала).

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

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

← На главную