Добавление новой ставки НДС в «древнюю» базу 1С:Управление холдингом 3.1 (УХ) — это комплексная задача, которая выходит далеко за рамки простого добавления нового значения в список. Поскольку УХ 3.1 базируется на ядре 1С:Бухгалтерия КОРП, она имеет ряд архитектурных особенностей, связанных с грядущими изменениями налогового законодательства и введением ставки 22%, которые мы разберем в этой статье.
Первым делом проанализируем, как хранятся ставки НДС в вашей конфигурации. В отличие от современных редакций ERP, в УХ 3.1 ставки НДС чаще всего реализованы через Перечисление.СтавкиНДС, а не через справочник. Это создает первую серьезную трудность: добавление нового значения в перечисление инициирует реструктуризацию всех таблиц, где используется этот тип (а это почти все документы закупки, продажи и регистры бухгалтерии). На больших базах этот процесс может занять значительное время, поэтому операцию следует планировать на периоды минимальной активности.
Рассмотрим необходимые действия:
Перечисление.СтавкиНДС новое значение — НДС22.НДС22_122.Проанализируем программный код на предмет жестко прописанных констант. Опытные разработчики знают, что в старых конфигурациях часто встречаются расчеты «на лету». Нам необходимо выполнить глобальный поиск по всей конфигурации, включая расширения и внешние обработки, по следующим паттернам:
/ 1.2 и * 1.2 (коэффициенты для НДС 20%);/ 6 (расчет суммы НДС 20/120);"20%" (текстовые упоминания в печатных формах);СтавкиНДС.НДС20 (прямые ссылки на перечисление).Посмотрим на пример функции, которую необходимо внедрить или доработать для корректного определения ставки в зависимости от даты документа:
Функция ПолучитьАктуальнуюСтавкуНДС(АктуальнаяДата) Экспорт
Если АктуальнаяДата < '20190101' Тогда
Возврат ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС18");
ИначеЕсли АктуальнаяДата < '20260101' Тогда
Возврат ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20");
Иначе
Возврат ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС22");
КонецЕсли;
КонецФункции
В «1С:Управление холдингом» значительная часть логики может быть вынесена в режим предприятия. Проанализируем настройки бюджетов. В справочниках Показатели бюджетов и Произвольные формулы часто встречаются зашитые коэффициенты 1.2 или 0.2. Глобальный поиск по конфигуратору их не найдет.
Рекомендация: необходимо проверить все активные бланки и экземпляры отчетов, где используется расчет НДС. Возможно, потребуется создать новые версии показателей для бюджетных циклов 2026 года, чтобы не испортить расчеты прошлых периодов.
Разберем ситуацию с обменами. Если база интегрирована через 1С:Шина или использует формат EnterpriseData, простого добавления ставки в текущую базу недостаточно. При передаче данных в другие системы (например, в БП 3.0 или ЗУП) возникнут следующие проблемы:
EnterpriseData (например, 1.15) могут не поддерживать ставку 22%. Потребуется расширение пакета XDTO в обеих базах (источнике и приемнике).В этом случае придется либо дорабатывать правила конвертации, либо использовать «заглушки» в расширениях для подмены ставки на лету при выгрузке/загрузке.
Выясним причину, почему задача считается трудоемкой. Самое сложное — это логика переходного периода. Рассмотрим два сценария:
Для решения этих задач необходимо проверить все запросы в документах ФормированиеЗаписейКнигиПокупок и КнигиПродаж, а для оперативного контроля за правильностью ввода данных стоит использовать отчет для поиска ошибок заполнения ставок НДС в переходный период.
Подводя итог, можно сказать, что чистая разработка (добавление перечисления и правка кода) может занять от 20 до 40 часов. Однако тестирование всех цепочек (Казначейство -> Бюджетирование -> Интеграция -> Печатные формы) в такой сложной конфигурации, как УХ, может потребовать до 160 рабочих часов. Рекомендуем выполнять работы поэтапно: сначала обследование и аудит формул в режиме предприятия, затем кодирование и длительный период тестирования на копии базы. Если в вашем ландшафте используются старые торговые системы, не забудьте заранее подготовить комплект доработок и правил обмена для УТ 10.