Как перейти на ставку НДС 20% в «1С:Управление торговлей 11.2» без полного обновления конфигурации?

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

Изменение ставки налога на добавленную стоимость (НДС) с 18% до 20% в свое время потребовало от пользователей систем 1С оперативных действий. Для тех, кто использует актуальные версии конфигураций, переход прошел относительно безболезненно через стандартное обновление. Однако в реальной практике автоматизации бизнеса часто встречаются ситуации, когда в компании развернута старая, сильно кастомизированная и переписанная конфигурация — например, «1С:Управление торговлей 11.2» (УТ 11.2). Полное обновление такой базы до версии 11.4 может занять десятки часов кропотливой работы программиста, потребовать исправления сотен конфликтов объединения и вылиться в серьезные финансовые затраты.

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

---

Почему НДС в 1С — это не просто значение в справочнике?

Многие начинающие разработчики и пользователи удивляются, почему нельзя просто зайти в режим «1С:Предприятие» и отредактировать ставку налога. Дело в том, что в архитектуре старых версий 1С (включая УТ 11.2) ставки НДС реализованы не в виде справочника, а через системное перечисление. Значения перечислений жестко прописаны в метаданных конфигурации, и программный код системы ориентируется на конкретные имена этих значений (например, НДС18 или НДС18_120).

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

---

Метод 1. Ручное добавление ставки НДС 20% в конфигураторе (быстрый путь)

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

Шаг 1. Модификация перечисления в Конфигураторе

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

  1. Добавляем новое значение перечисления с именем НДС20 (синоним: 20%).
  2. Добавляем расчетное значение перечисления с именем НДС20_120 (синоним: 20%/120%) для оформления расчетных операций и авансовых платежей.

Шаг 2. Глобальный поиск и адаптация программного кода

Простого добавления метаданных недостаточно — система еще не умеет производить математические расчеты с новыми значениями. Нам нужно научить конфигурацию распознавать созданную ставку. Для этого воспользуемся механизмом глобального поиска:

  1. Нажмите сочетание клавиш Ctrl + Shift + F (или меню «Правка» -> «Глобальный поиск»).
  2. В поле поиска введите поисковый запрос: НДС18.
  3. Проанализируем ситуацию: система выдаст список всех модулей, где упоминается старая ставка. Наша задача — аккуратно продублировать эти строки кода для новой ставки НДС20.

Посмотрим на пример доработки одной из ключевых функций в общем модуле ЦенообразованиеКлиентСервер. Нам необходимо скорректировать функцию получения числового значения ставки:


Функция ПолучитьСтавкуНДСЧислом(СтавкаНДС) Экспорт

    Если СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
        Возврат 18;
    ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
        Возврат 20;
    ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18_120 Тогда
        Возврат 18;
    ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
        Возврат 20;
    // ... логика для остальных ставок
    КонецЕсли;

КонецФункции

Аналогичным образом необходимо обработать функции расчета сумм налога в документах. Например, везде, где встречается деление на 118 или умножение на 18 для получения суммы налога из расчетной ставки, мы должны прописать аналогичное условие для коэффициентов 120 и 20:


// Пример расчета для ставки 20/120
Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
    СуммаНДС = Округлить(СуммаДокумента * 20 / 120, 2);
КонецЕсли;

Шаг 3. Установка новой ставки по умолчанию для номенклатуры

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

  1. Открываем обработку Групповое изменение реквизитов (или аналогичный инструмент «Групповая установка свойств номенклатуре»).
  2. Задаем отбор по нужной группе товаров или выбираем всю номенклатуру.
  3. Для реквизита СтавкаНДС выбираем новое созданное значение 20%.
  4. Выполняем изменение реквизитов. Теперь при подборе товаров в новые документы продажи или закупки автоматически подставится актуальная ставка.

---

Критические риски и «подводные камни» ручной доработки

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

1. Взаимодействие с торговым оборудованием (онлайн-кассы и ККТ)

Согласно требованиям Федерального закона № 54-ФЗ, при пробитии чека на онлайн-кассе в фискальный накопитель и ОФД должна передаваться корректная ставка налога. При подключении торгового оборудования ККТ программа 1С передает данные о товарных позициях в виде специального XML-пакета.

В модулях интеграции БСП (Библиотеки стандартных подсистем), отвечающих за работу с ККТ (например, в общем модуле МенеджерОборудованияКлиент), жестко запрограммировано сопоставление перечисления ставок НДС и идентификаторов налоговых групп, которые поддерживает касса. Если вы передадите в ККТ созданное «вручную» значение НДС20, модуль интеграции его попросту проигнорирует или вернет ошибку вида: «Неверная налоговая ставка». В худшем случае касса пробьет чек по умолчанию без налога или со старой ставкой 18%, что является прямым нарушением законодательства и грозит штрафами от налоговой службы. Чтобы избежать этой проблемы, программисту придется глубоко переписывать код сериализации XML для торгового оборудования.

2. Синхронизация данных с «1С:Бухгалтерия предприятия» (БП 3.0)

Как правило, оперативный учет ведется в УТ, а регламентированный и бухгалтерский — в БП. Данные мигрируют между базами при помощи механизмов синхронизации (правил обмена на базе «Конвертации данных»).

В обновленной конфигурации «1С:Бухгалтерия» ставка 20% является предопределенным системным элементом. В вашей же нетиповой УТ 11.2 добавленное значение перечисления будет иметь совершенно другой внутренний идентификатор (UUID). При переносе документов правила обмена не смогут сопоставить ваше кастомное значение с типовым значением БП. В результате в перенесенных документах в бухгалтерии ставка налога либо очистится («Без НДС»), либо вернется к 18%. Для исправления этой ситуации придется редактировать правила конвертации данных (xml-файлы правил) в специализированной программе «Конвертация данных 2.0/3.0», прописывая ручное сопоставление узлов.

3. Формирование отчетности и ЭДО

Регламентированные печатные формы (Универсальный передаточный документ (УПД), Счет-фактура) в старой УТ 11.2 не соответствуют новым постановлениям Правительства РФ. Даже если математически сумма налога будет рассчитана верно, сама печатная форма останется устаревшей. Более того, при использовании электронного документооборота (1С-ЭДО) старые схемы выгрузки документов в формате XML будут отклоняться сервером оператора ЭДО или налоговым органом.

---

Метод 2. Использование расширения конфигурации (продвинутый путь)

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

Разберем по шагам, как реализовать изменения с помощью расширения:

  1. В Конфигураторе переходим в меню «Конфигурация» -> «Расширения конфигурации» и создаем новое расширение.
  2. Добавляем в расширение перечисление СтавкиНДС.
  3. Заимствуем в расширение модуль ЦенообразованиеКлиентСервер.
  4. Используя аннотацию &Вместо или &После, переопределяем расчетные функции. Посмотрим на пример реализации перехвата функции расчета в модуле расширения:

&Вместо("ПолучитьСтавкуНДСЧислом")
Функция Расш1_ПолучитьСтавкуНДСЧислом(СтавкаНДС)
    // Сначала вызываем стандартную обработку для базовых ставок
    Результат = ПродолжитьВызов(СтавкаНДС);
    
    // Если результат не определен или это наша новая ставка
    Если СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20") Тогда
        Возврат 20;
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

Применение расширений минимизирует риски потери данных при будущих обновлениях: если компания все же решит перейти на УТ 11.4, расширение можно будет безболезненно отключить.

---

Метод 3. Полноценное обновление до УТ 11.4 (рекомендуемый путь)

Несмотря на то, что «быстрые» патчи кода привлекательны своей дешевизной, единственным технически верным решением в долгосрочной перспективе является последовательное обновление конфигурации до актуальных релизов (в которых ставка НДС 20% реализована разработчиками фирмы «1С» штатно и протестирована во всех режимах).

Проанализируем ситуацию: почему процесс перехода с УТ 11.2 на 11.4 может затянуться?

Для минимизации трудозатрат разработчики часто используют специализированное ПО, например, «Обновлятор-1С». Эта утилита позволяет автоматизировать рутинный процесс накатывания десятков промежуточных релизов: она самостоятельно скачивает обновления, делает резервные копии, последовательно запускает конфигуратор в пакетном режиме и выполняет реструктуризацию таблиц базы данных.

---

Сравнительный анализ решений: что выбрать вашему бизнесу?

Для того чтобы принять окончательное решение о способе реализации ставки НДС 20%, сопоставим рассмотренные методы по ключевым бизнес-параметрам:

Критерий сравнения Ручная допилка (Метод 1) Использование расширения (Метод 2) Полное обновление до УТ 11.4 (Метод 3)
Время реализации Очень быстро (1–3 часа) Быстро (3–6 часов) Долго (от 8 часов до нескольких дней)
Стоимость работ Минимальная Средняя Высокая
Стабильность ККТ и чеков Низкая (требует ручных тестов) Средняя (зависит от версии драйверов) Абсолютная (из коробки)
Синхронизация с Бухгалтерией Требует ручной правки правил обмена Требует ручной правки правил обмена Работает в штатном режиме
Сложность будущих обновлений Критически высокая (база «зависает» на этой версии) Низкая (расширение легко отключить) Низкая (база возвращается в типовое русло)

---

Заключение

Подводя итог нашему детальному анализу, дадим практическую рекомендацию разработчикам и ИТ-директорам:

Если автоматизированная на базе УТ 11.2 компания является небольшой, использует исключительно ручной ввод первичных документов без обмена с БП, не применяет ККТ и не отправляет документы по ЭДО — ручная корректировка конфигурации (или внедрение расширения) станет отличным временным и экономичным решением.

Во всех остальных случаях (при наличии интеграций, синхронизации данных, онлайн-касс и планов развития бизнеса) попытка сэкономить на обновлении обернется регулярными сбоями и постоянными затратами на доработку «костылей». Единственным правильным решением здесь будет проведение планового обновления конфигурации до актуальной версии 11.4.

← На главную