При работе в программе 1С:Бухгалтерия предприятия 3.0 (БП 3.0) многие пользователи сталкиваются с тем, что при создании новой карточки товара в поле Ставка НДС автоматически подставляется значение 20%. Если предприятие занимается реализацией товаров, облагаемых по льготной ставке 10% (например, продукты питания или детские товары), ручное изменение этого реквизита в каждой новой карточке становится трудоемкой задачей и источником ошибок.
В этой статье мы разберем, почему в пользовательском режиме нельзя просто изменить одну «галочку» в настройках, и рассмотрим эффективные способы решения этой задачи: от самых простых «бытовых» приемов до профессиональной разработки расширения.
Проанализируем структуру конфигурации через Конфигуратор. В справочнике Номенклатура для реквизита СтавкаНДС в свойстве Значение заполнения жестко прописана ссылка на перечисление со значением 20%. В отличие от более сложных систем, таких как «1С:Управление торговлей», в БП 3.0 ставка НДС не привязана к Виду номенклатуры. Это упрощает архитектуру программы для большинства пользователей, но создает неудобства для тех, кто работает с иными ставками налога.
Рассмотрим по шагам все возможные варианты решения данной проблемы.
Это самый быстрый и доступный способ для рядового пользователя, не требующий внесения изменений в код или использования специальных инструментов. Проанализируем алгоритм действий:
Важно: При таком подходе вероятность ошибки минимальна, так как вы наследуете настройки от проверенного «шаблона».
Если вы уже создали большое количество номенклатурных позиций со ставкой 20% и теперь хотите массово исправить их на 10%, воспользуемся встроенным механизмом корректировки данных. Рассмотрим этот процесс подробнее:
Номенклатура.Этот метод позволяет быстро исправить последствия того, что ставка по умолчанию была установлена неверно.
Для того чтобы система всегда автоматически подставляла 10% при нажатии кнопки Создать, наиболее правильным с технической точки зрения будет использование Расширения конфигурации. Это позволит сохранить программу на поддержке и не мешать автоматическим обновлениям.
Разберем, как реализовать этот функционал программисту. Нам необходимо перехватить процедуру ОбработкаЗаполнения в модуле менеджера справочника Номенклатура. Посмотрим на пример кода, который нужно внедрить в расширение:
&НаСервере
&Вместо("ОбработкаЗаполнения")
Процедура Расш_ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
// Вызываем стандартную обработку, чтобы заполнились остальные реквизиты
ПродолжитьВызов(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка);
// Если это создание нового объекта (а не заполнение на основании чего-либо)
Если ЭтоНовый() Тогда
// Устанавливаем нашу ставку НДС
ЭтотОбъект.СтавкаНДС = Перечисления.СтавкиНДС.НДС10;
КонецЕсли;
КонецПроцедуры
Пояснение к коду: Мы используем аннотацию &Вместо, чтобы дополнить логику заполнения. Метод ПродолжитьВызов обеспечивает выполнение типового кода, после чего мы принудительно перезаписываем значение реквизита СтавкаНДС. Это гарантирует, что при открытии формы новой номенклатуры пользователь сразу увидит нужную ставку.
Иногда пользователи путают ставку НДС в карточке номенклатуры и ставку НДС в документах. Проанализируем ситуацию: в разделе Главное — Персональные настройки существует поле Основное значение НДС.
Обратите внимание: Эта настройка в типовой БП 3.0 влияет в первую очередь на заполнение документов (например, «Счет на оплату покупателю»), если в них добавляются пустые строки или услуги без предварительного выбора из справочника. Однако она не переопределяет значение реквизита внутри самой карточки Номенклатура, так как приоритет всегда отдается данным, указанным в самом объекте (товаре).
Мы выяснили, что жесткая привязка к ставке 20% в 1С:Бухгалтерии 3.0 является особенностью типового решения. Для эффективной работы со ставкой 10% рекомендуем:
СтавкаНДС при создании объекта.Используя эти методы, вы значительно сократите время на ввод данных и минимизируете риск ошибок в налоговом учете организации.