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




Свежие комментарии