В процессе эксплуатации 1С:ERP Управление предприятием (а также 1С:Комплексная автоматизация) часто возникают ситуации, когда требуется изменить логику учета налогов. Одним из самых острых вопросов является переключение признака Цена включает НДС в справочнике Виды цен. Рассмотрим подробно, почему простое изменение этого флага в уже существующих элементах справочника является крайне опасной операцией и к каким последствиям это может привести.
Основная проблема, которую мы должны осознать, заключается в так называемом «заднем числе». Когда мы открываем карточку Вид цены и устанавливаем или снимаем флаг Цена включает НДС, мы меняем логику интерпретации данных для всех документов в базе — и будущих, и прошлых. Проанализируем, как это работает на практике.
Представим, что у нас есть закрытый период за прошлый год. Бухгалтерия и отдел продаж уверены, что данные там зафиксированы. Однако, если пользователь с правами доступа к редактированию документов (или даже просто при выполнении регламентных операций) откроет старый Заказ клиента или Реализацию товаров и услуг и случайно нажмет кнопку «Обновить цены» или перевыберет номенклатурную позицию, система мгновенно пересчитает суммы.
Почему это происходит? Программа 1С:ERP не хранит внутри документа информацию о том, какой была настройка вида цены на момент создания документа. Она обращается к текущим настройкам объекта СправочникСсылка.ВидыЦен. Если вчера цена 100 рублей понималась как «без НДС» (итого 120), то сегодня, после смены флага, программа решит, что 100 рублей — это уже цена «с НДС» (итого 100). Это приведет к катастрофическому расхождению в суммах взаиморасчетов и налоговой отчетности.
Давайте заглянем «под капот» системы. Цены номенклатуры хранятся в регистре сведений ЦеныНоменклатуры. Важно понимать, что в этом регистре записывается само числовое значение цены. Там нет отдельного поля, которое бы жестко фиксировало, включает эта конкретная цифра НДС или нет.
Проанализируем алгоритм работы системы при подстановке цены в документ:
ЦеныНоменклатуры по срезу последних на нужную дату.Виды цен.Цена включает НДС, то число 1000 подставляется в колонку «Цена» (с налогом).Следовательно, меняя один-единственный булевый признак, мы меняем смысл всех исторических записей в базе данных. Вчерашние цены мгновенно обесцениваются или, наоборот, необоснованно вырастают в глазах системы.
Разберем ситуацию с точки зрения точности вычислений. Переход от системы «НДС сверху» к системе «НДС внутри» часто сопровождается появлением «копеечных» разниц, которые крайне сложно администрировать.
Рассмотрим пример:
Чистая цена товара составляет 100 рублей. При ставке НДС 20% сумма налога составит 20 рублей, итого 120 рублей.
Если мы решим, что теперь цена должна «включать НДС» и оставим значение 120, то при обратном расчете (выделении НДС из суммы) мы получим те же цифры.
Но что, если исходная цена была более сложной, например 100 рублей 55 копеек?
100.55 * 1.2 = 120.66.
Если же мы начнем округлять промежуточные значения в разных режимах работы 1С, то при массовых отгрузках (тысячи строк в документе) итоговая сумма документа может «поплыть» на несколько копеек. Это создаст огромные проблемы при сверке с контрагентами, у которых учет настроен иначе.
Выясним, как это повлияет на взаимодействие с внешними контрагентами и контролирующими органами. Логика формирования типовых печатных форм (таких как УПД, Торг-12, Счет-фактура) в 1С:ERP напрямую зависит от настроек вида цены.
Если в виде цены флаг включает НДС снят, в колонку «Цена» печатной формы попадает стоимость без налога. Если флаг установлен — цена с налогом.
Представьте ситуацию: вам необходимо перепечатать документ двухлетней давности для встречной проверки. Если вы изменили настройки существующего вида цены, новая печатная форма будет визуально отличаться от той, что была выдана клиенту ранее. Колонки «Цена» и «Сумма без НДС» могут поменяться местами или пересчитаться. Для аудиторов это прямой признак некорректного ведения учета.
Вместо изменения существующих объектов, мы рекомендуем использовать методику создания новых сущностей. Рассмотрим этот процесс по шагам:
Вместо редактирования старого вида цены (например, «Оптовая»), создадим новый элемент справочника Виды цен с названием «Оптовая (с НДС)». В настройках этого нового объекта сразу установим флаг Цена включает НДС.
Воспользуемся документом Установка цен номенклатуры. Мы можем скопировать цены из старого вида в новый, применив формулу или просто пересчитав их с учетом включения налога. Таким образом, в системе сохранится история: до определенной даты действовал старый вид цены, после — новый.
Проанализируем наши правила продаж. В 1С:ERP цены обычно привязаны к Типовым соглашениям или Индивидуальным соглашениям. Нам необходимо:
Если в вашей базе настроен автоматический расчет цен по формулам или используются регламентные задания для синхронизации с интернет-магазином, убедитесь, что они переключены на новый объект. Это предотвратит блокировки таблиц и массовые ошибки в прайс-листах, которые неизбежны при попытке системы пересчитать всю историю по старому виду цены.
Подведем итог нашего анализа. Ответ на вопрос автора темы однозначен: изменять признак «Цена включает НДС» в существующих видах цен нельзя.
Как справедливо отмечено в обсуждении, «всегда лучше, когда дурак кто-то другой». Если вы пойдете по пути создания новых объектов, вы защитите себя от ответственности за некорректные данные в прошлых периодах. Если же вы просто переключите флаг, любые ошибки округления или пересчета старых документов станут вашей технической проблемой, которую придется «разгребать» в условиях спешки и давления со стороны бухгалтерии.
Работайте в системе 1С:ERP архитектурно правильно: сохраняйте историчность данных и создавайте новые настройки для новых правил учета. Это обеспечит стабильность базы данных и спокойствие всех пользователей системы.