Добавление ставок НДС в старой УТ 10.3 на платформе 8.1

Немного странно, что конфигурация базовая, но она доработанная и запускается на платформе Проф. А так обновление по аналогии с обновлениями УПП и отраслевой, что я делал раньше.

Добавляем нужные ставки 5, 7, 22:

Вхождений поля НДС20 найдено 380:

Доработки помечаю //НДС22 Осипов 26.01.13

Функции модуля _Доработки:

Функция УточнениеСтавки(СтавкаНДС) Экспорт
	//Вызов: Р = _Доработки.УточнениеСтавки(СтавкаНДС); Если ЗначениеЗаполнено(Р) Тогда Возврат Р; КонецЕсли; //НДС22 Осипов 26.01.13
	Если СтавкаНДС = Перечисления.СтавкиНДС.НДС22 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС22_122 Тогда
		Возврат 22;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС5 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС5_105 Тогда
		Возврат 5;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС7 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС7_107 Тогда
		Возврат 7;
	КонецЕсли;
КонецФункции


Процедура ДополнитьСтавкуНДСВЗапросе(ТекстЗапроса, ИмяПоля, ИмяНДС = "&НДС20") ЭКспорт
	//Вызывать: _Доработки.ДополнитьСтавкуНДСВЗапросе(Запрос.Текст, "Планы.Номенклатура"); //НДС22 Осипов 26.01.13

	Маркер = "КОГДА " + ИмяПоля + ".СтавкаНДС = " + ИмяНДС;
	
	Замена = 
	"
	|КОГДА ТчРасшифровка.СтавкаНДС = Значение(Перечисление.СтавкиНДС.НДС7) ИЛИ ТчРасшифровка.СтавкаНДС = Значение(Перечисление.СтавкиНДС.НДС7_107) ТОГДА
	|            7
	|КОГДА ТчРасшифровка.СтавкаНДС = Значение(Перечисление.СтавкиНДС.НДС5) ИЛИ ТчРасшифровка.СтавкаНДС = Значение(Перечисление.СтавкиНДС.НДС5_105) ТОГДА
	|            5
	|КОГДА ТчРасшифровка.СтавкаНДС = Значение(Перечисление.СтавкиНДС.НДС22) ИЛИ ТчРасшифровка.СтавкаНДС = Значение(Перечисление.СтавкиНДС.НДС22_122) ТОГДА
	|            22";
	Замена = СтрЗаменить(Замена, "ТчРасшифровка", ИмяПоля);

	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Маркер, Замена + " " + Маркер);
	
КонецПроцедуры


Процедура ДополнитьСоответствиеСтавокНДС(СоответствиеСтавок) ЭКспорт
	//Вызывать: _Доработки. ДополнитьСоответствиеСтавокНДС(СоответствиеСтавок);  //НДС22 Осипов 26.01.13
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС5, Перечисления.СтавкиНДС.НДС5_105);
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС7, Перечисления.СтавкиНДС.НДС7_107);
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС22, Перечисления.СтавкиНДС.НДС22_122);
КонецПроцедуры

Процедура ДополнитьСоответствиеСтавокНДССложное(СоответствиеСтавок) ЭКспорт
	//Вызывать: _Доработки. ДополнитьСоответствиеСтавокНДССложное(СоответствиеСтавок);  //НДС22 Осипов 26.01.13
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС5, Перечисления.СтавкиНДС.НДС5_105);
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС7, Перечисления.СтавкиНДС.НДС7_107);
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС22, Перечисления.СтавкиНДС.НДС22_122);
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС5_105, Перечисления.СтавкиНДС.НДС5_105);
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС7_107, Перечисления.СтавкиНДС.НДС7_107);
	СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС22_122, Перечисления.СтавкиНДС.НДС22_122);
КонецПроцедуры

Функция ЭтоНеПустаяСтавкаНДС(СтавкаНДС) Экспорт
	//Вызывать: _Доработки. ЭтоНеПустаяСтавкаНДС(СтавкаНДС);  //НДС22 Осипов 26.01.13
	Возврат 
	СтавкаНДС = Перечисления.СтавкиНДС.НДС5 
	ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС5_105 
	ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС7 
	ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС7_107 
    ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС22 
	ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС22_122;
КонецФункции


Функция ПересчитатьСуммуНДСПоСтавке(Сумма, СтавкаНДС, СуммаНДС)   //НДС22 Осипов 26.01.13
	//Вызывать: _Доработки. ПересчитатьСуммуНДСПоСтавке(ТД.Сумма, ТД.СтавкаНДС, ТД.СуммаНДС);  //НДС22 Осипов 26.01.13
	Если СтавкаНДС = Перечисления.СтавкиНДС.НДС5 Тогда
		СуммаНДС = Сумма * 5 / 100;
		Возврат Истина;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС5_105 Тогда
		СуммаНДС = Сумма * 5 / 105;
		Возврат Истина;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС7 Тогда
		СуммаНДС = Сумма * 7 / 100;;
		Возврат Истина;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС7_107 Тогда
		СуммаНДС = Сумма * 7 / 107;;
		Возврат Истина;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС22 Тогда
		СуммаНДС = Сумма * 22 / 100;
		Возврат Истина;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС22_122 Тогда
		СуммаНДС = Сумма * 22 / 122;
		Возврат Истина;
	КонецЕсли;
КонецФункции


Вызовы:

Основная конфигурация ОбщийМодуль.УчетНДС.Модуль(2110, 101)	Р = _Доработки.УточнениеСтавки(СтавкаНДС); Если ЗначениеЗаполнено(Р) Тогда Возврат Р; КонецЕсли; //НДС22 Осипов 26.01.13
Основная конфигурация Документ.ПриходныйКассовыйОрдер.Форма.ФормаСписка.Форма.Модуль(128, 76)	_Доработки.ДополнитьСтавкуНДСВЗапросе(Запрос.Текст, "ТчРасшифровка"); //НДС22 Осипов 26.01.13
Основная конфигурация Документ.СчетФактураВыданный.Модуль объекта(90, 77)	_Доработки. ДополнитьСоответствиеСтавокНДССложное(СоответствиеСтавок);  //НДС22 Осипов 26.01.13
Основная конфигурация Документ.СчетФактураВыданный.Модуль объекта(1138, 69)	_Доработки. ДополнитьСоответствиеСтавокНДС(СоответствиеСтавок);  //НДС22 Осипов 26.01.13
Основная конфигурация Документ.СчетФактураВыданный.Модуль объекта(1148, 78)	_Доработки. ДополнитьСоответствиеСтавокНДССложное(СоответствиеСтавок);  //НДС22 Осипов 26.01.13
Основная конфигурация Документ.СчетФактураВыданный.Модуль объекта(1226, 79)	_Доработки. ДополнитьСоответствиеСтавокНДССложное(СоответствиеСтавок);  //НДС22 Осипов 26.01.13
Основная конфигурация Документ.СчетФактураПолученный.Модуль объекта(1424, 76)	_Доработки. ДополнитьСоответствиеСтавокНДССложное(СоответствиеСтавок);  //НДС22 Осипов 26.01.13
Основная конфигурация Обработка.РегистрацияСчетовФактурНаАванс.Модуль объекта(21, 98)	ИначеЕсли _Доработки.ПересчитатьСуммуНДСПоСтавке(ТД.Сумма, ТД.СтавкаНДС, ТД.СуммаНДС)  Тогда  //НДС22 Осипов 26.01.13
Основная конфигурация Обработка.РегистрацияСчетовФактурНаАванс.Модуль объекта(67, 69)	_Доработки. ДополнитьСоответствиеСтавокНДС(СоответствиеСтавок);  //НДС22 Осипов 26.01.13

В некоторых местах получилось довольно элегантно. Главное, что теперь при добавлении новой ставки можно ничего не менять в конфигурации, а поменять только в модуле _Доработки.

Далее я почти забыл, но пользователь напомнил заменить основные ставки НДС. Тут я немного загрустил, потому что платформа 8.1, а у меня нет инструментов под нее. Но в самой конфигурации нашлась групповая обработка справочников, я проставил ею ставку НДС 22%:

Также установил пользователю ставку по умолчанию:

Среда: УТ 10.3.7.8, 1С 8.1.13.41 Объем: 1.5 час

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *