Как отключить «Учет по договорам» и настроить «Обратное начисление НДС» в 1С:Бухгалтерии

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

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

Часть 1. Как убрать галочку «Учет по договорам» в функциональности программы

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

Дело в том, что в системе «1С:Предприятие» договор контрагента является ключевым разрезом аналитического учета (субконто) на счетах расчетов с контрагентами (таких как 60, 62, 76 и др.). Если в базе данных проведен хотя бы один документ с заполненным договором или по счетам учета числятся остатки в разрезе договоров, платформа заблокирует отключение этой опции во избежание нарушения целостности данных.

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

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

Важное предупреждение: Отключение ведения учета по договорам в «живой» рабочей базе крайне не рекомендуется. Без этой аналитики программа не сможет корректно выполнять автоматический зачет авансов, отслеживать сроки оплаты, формировать акты сверки взаиморасчетов, а также правильно рассчитывать НДС.

---

Часть 2. Почему не появляется или не работает «Обратное начисление НДС»

Перейдем ко второму важнейшему вопросу — отображению и использованию функционала «Обратное начисление НДС» (согласно ст. 161 НК РФ при покупке/продаже лома металлов, сырых шкур и макулатуры).

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


Функция ЭтоВерсияКОРП() Экспорт
    
    ФункциональностьКОРПДоступна = Ложь;
    ВариантыПриложенийПереопределяемый.ОпределитьДоступностьФункциональностиКОРП(ФункциональностьКОРПДоступна);
    Возврат ФункциональностьКОРПДоступна;
    
КонецФункции

Далее эта функция используется при инициализации структуры функциональности:


Функциональность = ДобавитьОписаниеФункциональности(ОписаниеФункциональности, Раздел, "ОбратноеНачислениеНДС");
Функциональность.ТребуетсяДляОбменов = Истина;
Функциональность.Доступна = ЭтоВерсияКОРП;
ДобавитьРодителя(Функциональность, "ВестиУчетПоДоговорам");
Функциональность.ИмяТарифнойОпции = ТарификацияБП.ИдентификаторУслугиОбратноеНачислениеНДС();

Как мы видим, свойство Функциональность.Доступна жестко привязано к результату функции ЭтоВерсияКОРП(). Также обратите внимание на вызов ДобавитьРодителя(Функциональность, "ВестиУчетПоДоговорам"). Это означает, что опция обратного начисления НДС является дочерней по отношению к опции учета по договорам. Если вы отключите учет по договорам (как описано в Части 1), функционал обратного начисления НДС станет недоступен физически.

Почему «хак» с кодом в версии ПРОФ не сработает

Посмотрим на попытку обойти это ограничение в коде путем подмены возвращаемого значения функции:


Функция ЭтоВерсияКОРП() Экспорт
    ФункциональностьКОРПДоступна = Истина;
    //ФункциональностьКОРПДоступна = Ложь;
    ВариантыПриложенийПереопределяемый.ОпределитьДоступностьФункциональностиКОРП(ФункциональностьКОРПДоступна);
    Возврат ФункциональностьКОРПДоступна;
КонецФункции

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

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

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

---

Практические варианты решения для учета лома и шкур в версии ПРОФ

Если ваша организация работает на версии ПРОФ и регулярно сталкивается с операциями по обратному начислению НДС, рассмотрим три возможных пути решения проблемы.

Вариант 1. Переход (апгрейд) на версию КОРП (Рекомендуемый метод)

Это самый надежный и простой в долгосрочной перспективе вариант. Разница в стоимости лицензий ПРОФ и КОРП несопоставима со стоимостью часов работы программиста, который будет пытаться вручную дописывать учет НДС или постоянно исправлять ошибки пользователей. В версии КОРП весь функционал учета лома, макулатуры и шкур работает «из коробки» строго в соответствии с законодательством РФ.

Вариант 2. Использование ручных корректировок документов

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

  1. При создании документа поступления или реализации установите флаг «Ручная корректировка (разрешает редактирование движений документа)».
  2. Перейдите во вкладку движений по регистру НДС предъявленный или НДС продажи.
  3. Вручную добавьте необходимые записи.
  4. Сформируйте счет-фактуру вручную, указав код вида операции 34 (который предназначен именно для налоговых агентов при покупке сырых шкур, лома металлов и макулатуры).
  5. В печатных формах документов добавьте надпись «НДС исчисляется налоговым агентом».

Этот способ требует идеального знания налогового учета и крайне трудоемок, так как малейшая ошибка приведет к искажению декларации по НДС.

Вариант 3. Использование сторонних расширений конфигурации

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

← На главную