Добавление ставки НДС 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 час.