В процессе настройки функциональности программы «1С:Бухгалтерия 8» (редакция 3.0) пользователи и технические специалисты часто сталкиваются со сложными взаимосвязями опций. Две наиболее популярные проблемы — невозможность снять флаг «Учет по договорам» и отсутствие видимости или неработоспособность настройки «Обратное начисление НДС» (применяемой при расчетах налоговыми агентами по операциям с ломом, шкурами и макулатурой). В этой статье мы подробно разберем природу обеих проблем, изучим их техническую реализацию в коде конфигурации и предложим готовые практические решения.
Попытка просто снять флаг «Учет по договорам» в меню настройки функциональности часто приводит к ошибке или блокировке действия со стороны системы. Разберем по шагам, почему это происходит и как правильно решить задачу.
Дело в том, что в системе «1С:Предприятие» договор контрагента является ключевым разрезом аналитического учета (субконто) на счетах расчетов с контрагентами (таких как 60, 62, 76 и др.). Если в базе данных проведен хотя бы один документ с заполненным договором или по счетам учета числятся остатки в разрезе договоров, платформа заблокирует отключение этой опции во избежание нарушения целостности данных.
Выполним следующие действия для безопасного отключения настройки:
Договор (или удалить сами тестовые документы, если они больше не нужны), а затем провести их заново.Важное предупреждение: Отключение ведения учета по договорам в «живой» рабочей базе крайне не рекомендуется. Без этой аналитики программа не сможет корректно выполнять автоматический зачет авансов, отслеживать сроки оплаты, формировать акты сверки взаиморасчетов, а также правильно рассчитывать НДС.
---
Перейдем ко второму важнейшему вопросу — отображению и использованию функционала «Обратное начисление НДС» (согласно ст. 161 НК РФ при покупке/продаже лома металлов, сырых шкур и макулатуры).
Часто программисты пытаются принудительно вывести данную галочку на форму настроек функциональности через изменение программного кода. Проанализируем исходный код конфигурации, отвечающий за доступность этой опции:
Функция ЭтоВерсияКОРП() Экспорт
ФункциональностьКОРПДоступна = Ложь;
ВариантыПриложенийПереопределяемый.ОпределитьДоступностьФункциональностиКОРП(ФункциональностьКОРПДоступна);
Возврат ФункциональностьКОРПДоступна;
КонецФункции
Далее эта функция используется при инициализации структуры функциональности:
Функциональность = ДобавитьОписаниеФункциональности(ОписаниеФункциональности, Раздел, "ОбратноеНачислениеНДС");
Функциональность.ТребуетсяДляОбменов = Истина;
Функциональность.Доступна = ЭтоВерсияКОРП;
ДобавитьРодителя(Функциональность, "ВестиУчетПоДоговорам");
Функциональность.ИмяТарифнойОпции = ТарификацияБП.ИдентификаторУслугиОбратноеНачислениеНДС();
Как мы видим, свойство Функциональность.Доступна жестко привязано к результату функции ЭтоВерсияКОРП(). Также обратите внимание на вызов ДобавитьРодителя(Функциональность, "ВестиУчетПоДоговорам"). Это означает, что опция обратного начисления НДС является дочерней по отношению к опции учета по договорам. Если вы отключите учет по договорам (как описано в Части 1), функционал обратного начисления НДС станет недоступен физически.
Посмотрим на попытку обойти это ограничение в коде путем подмены возвращаемого значения функции:
Функция ЭтоВерсияКОРП() Экспорт
ФункциональностьКОРПДоступна = Истина;
//ФункциональностьКОРПДоступна = Ложь;
ВариантыПриложенийПереопределяемый.ОпределитьДоступностьФункциональностиКОРП(ФункциональностьКОРПДоступна);
Возврат ФункциональностьКОРПДоступна;
КонецФункции
Даже если вы примените эту доработку (через расширение или напрямую в конфигурации) и галочка «Обратное начисление НДС» отобразится в интерфейсе вашей версии ПРОФ, автоматический функционал все равно работать не будет.
Выясним причину этого поведения. Фирма «1С» проектирует свои конфигурации таким образом, что в базовых версиях и версии ПРОФ физически отсутствуют необходимые структуры метаданных, алгоритмы проведения документов, специализированные регистры накопления (например, специфические движения по регистру НДС продажи для налоговых агентов) и модули формирования Книги покупок и Книги продаж для этой операции. Программа просто проигнорирует эту галочку при проведении документов реализации или поступления, и никаких движений по НДС налогового агента создано не будет.
Опровергнем распространенное заблуждение некоторых консультантов: утверждение о том, что «независимо от версии КОРП данный функционал должен был появиться в ПРОФ в новых релизах», является ошибочным. Официальная позиция разработчиков «1С» однозначна — полноценная автоматизация учета обратного начисления НДС реализована исключительно в версиях КОРП, Комплексная автоматизация (КА) и ERP.
---
Если ваша организация работает на версии ПРОФ и регулярно сталкивается с операциями по обратному начислению НДС, рассмотрим три возможных пути решения проблемы.
Это самый надежный и простой в долгосрочной перспективе вариант. Разница в стоимости лицензий ПРОФ и КОРП несопоставима со стоимостью часов работы программиста, который будет пытаться вручную дописывать учет НДС или постоянно исправлять ошибки пользователей. В версии КОРП весь функционал учета лома, макулатуры и шкур работает «из коробки» строго в соответствии с законодательством РФ.
Если подобные операции носят разовый характер, вы можете отражать их вручную. Разберем этот процесс по шагам:
НДС предъявленный или НДС продажи.Этот способ требует идеального знания налогового учета и крайне трудоемок, так как малейшая ошибка приведет к искажению декларации по НДС.
Если бюджет не позволяет перейти на КОРП прямо сейчас, можно приобрести или разработать специализированное расширение конфигурации (например, готовые решения на специализированных порталах для разработчиков). Такие расширения добавляют в версию ПРОФ недостающие алгоритмы и структуры из КОРП-версии без снятия основной конфигурации с поддержки, что позволяет автоматизировать процесс заполнения декларации.