Добавление ставки НДС 22% в древнюю УПП
Клиенту понадобилось добавить ставку НДС 22% в старую УПП, которая не обновлялась с 2017 года.
Да, для УПП есть обновление, которое добавляет новую ставку НДС, но, учитывая, что база не обновлялась 7 лет, проще внести изменения в базу, чтобы добавить новую ставку.
Изменения в конфигурации
Предварительно сохранил старую конфигурацию:

Затем добавил новые значения перечислений, заменив синонимы, подставленные 1С по умолчанию на нужные:



Запустил поиск в конфигурации. Первоначальные результаты поиска впечатляют, найдено 771 строк с НДС20:

Изменения помечаю комментарием //Осипов НДС22
Сделал штук пять замен в модуле УчетНДС, налицо копирование кода в типовой УПП:

Для соответствие СоответствиеСтавок написал свою процедуру, чтобы не копировать одно и тоже, очень часто встречается описание этого соответствия, повсеместно:
СоответствиеСтавок = Новый Соответствие(); СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.ПустаяСсылка(), Перечисления.СтавкиНДС.ПустаяСсылка()); СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС10, Перечисления.СтавкиНДС.НДС10_110); СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС18, Перечисления.СтавкиНДС.НДС18_118); СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС20, Перечисления.СтавкиНДС.НДС20_120); СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС10_110, Перечисления.СтавкиНДС.НДС10_110); СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС18_118, Перечисления.СтавкиНДС.НДС18_118); СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС20_120, Перечисления.СтавкиНДС.НДС20_120); СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС0, Перечисления.СтавкиНДС.НДС18_118); _Доработки.ДобавитьСтавкиНДСВСоотсветствия(СоответствиеСтавок); ////Осипов НДС22
Сделал на всякий случай изменения в модуле УчетНДСФормированиеДвижений, их там два:

Модуль УчетНДСФормированиеОтчетности не трогал, клиент в УПП ее не формирует.
Далее пошли изменения по модулям документов.
Отчет книга покупок, продаж, план закупок и план производства не используется.
Регламентированный отчет НДС не используется.
Поработал над документами счет-фактура выданный и полученный. Там немного.
Поправил обработку «Регистрация счетов-фактур на аванс».
В книге покупок и продаж (отчеты КнигаПродаж1137 и КнигаПокупок1137) вроде бы не все так страшно. Нужно просто добавить новую ставку в группу ставок НДС 20:
СтавкиНДС20 = Новый Массив(); СтавкиНДС20.Добавить(Перечисления.СтавкиНДС.НДС20); СтавкиНДС20.Добавить(Перечисления.СтавкиНДС.НДС20_120); СтавкиНДС20.Добавить(Перечисления.СтавкиНДС.НДС22_122); //Осипов НДС22 СтавкиНДС20.Добавить(Перечисления.СтавкиНДС.НДС22);
Еще понадобилось поправить два внешних отчета — УПД и Счет. Счет поправлять не пришлось, а в УПД поправил буквально в трех местах.
Тестирование справочников и документов
В документах проверил что ставка НДС выбирается и корректно обсчитывается:

В карточках номенклатуры стояла ставка 20%:

Заменил с помощью обработки «Универсальные подбор и обработка объектов 82» на новую ставку 22%:



В настройках пользователя поменял ставку с 20% на 22%, чтобы у новых товаров подставлялась ставка 22%:

Можно сделать это сразу для всех пользователей в регистре настроек:

Заключение
Увы, 1С плохо параметризирует данные. Казалось бы, достаточно в одном месте описать новую ставку НДС, но в УПП пришлось менять довольно много где. Плохо 1С, плохо, позор Вашим архитекторам и методистам. Слишком много копи-пасты в коде. Очень плохо.
Среда: УПП 1.3.96.1 Объем: 1.5 час.
