Ставка НДС для УНФ в СНГ
В одной дружественной стране СНГ использовали УНФ российской версии для учета. Печатные формы использовали местные, но учет в целом был в российской конфигурации. Потому что местные конфигурации существенно отстают в возможностях.
Но вот когда УНФ перешла на ставку 22%, пришлось искать, как оставить местную ставку 20%.
Нашел в модуле менеджера справочника «Ставки НДС». И да, к сожалению 1с не дала параметризировать, пришлось ломать код:
&Вместо("ОбщаяСтавкаНДС") Функция дор_ОбщаяСтавкаНДС(Знач Период, Расчетная) ЭтоБазаСНГ = Истина; Если ЭтоБазаСНГ Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | СтавкиНДС.Ссылка КАК Ссылка, | 1 КАК Приоритет |ИЗ | Справочник.СтавкиНДС КАК СтавкиНДС |ГДЕ | СтавкиНДС.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.Общая) | И СтавкиНДС.Ставка = &ЗначениеСтавки | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ ПЕРВЫЕ 1 | СтавкиНДС.Ссылка, | 2 |ИЗ | Справочник.СтавкиНДС КАК СтавкиНДС |ГДЕ | СтавкиНДС.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.Общая) | И СтавкиНДС.Ставка <> &ЗначениеСтавки | |УПОРЯДОЧИТЬ ПО | Приоритет"; Если Период >= Дата('20260101') Тогда Запрос.УстановитьПараметр("ЗначениеСтавки", 20); //Тут исправление ИначеЕсли Период >= Дата('20190101') Тогда Запрос.УстановитьПараметр("ЗначениеСтавки", 20); Иначе Запрос.УстановитьПараметр("ЗначениеСтавки", 18); КонецЕсли; Если Расчетная Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, ".Общая", ".ОбщаяРасчетная"); КонецЕсли; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.Ссылка; Иначе Возврат Справочники.СтавкиНДС.ПустаяСсылка(); КонецЕсли; КонецЕсли; Результат = ПродолжитьВызов(Период, Расчетная); Возврат Результат; КонецФункции
Да и получение общей ставки по значению ставки не вынесено в отдельную функцию, не умеет 1С писать качественные функции.
Интересно, если в этой стране введут свои новые ставки НДС, как с этим будет жить российская УНФ?
Среда: УНФ 3.0.13.251




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