Добрый день! Вопрос такой, есть сильно переписанная БП 3. Конф 3.0.37.2. В документах ставка НДС по умолчанию подтягивается из номенклатуры. Хочу реализовать чтобы до 01012019 подтягивался НДС18, после НДС20. Ставка НДС это перечисление.
Подскажите пожалуйста как лучше реализовать? Как сделано в последних версиях БП 3?
Подскажите пожалуйста как лучше реализовать? Как сделано в последних версиях БП 3?
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)В зависимости от даты получают ставку по умолчанию, затем везде где есть реквизит НДС и ставка пересчитывают, если отличается от умолчания. При записи можно в подписке заменить с предупреждением или без если ставка отличается.
Присоединяюсь к (3) - так и делал при адаптации старенькой УТ 11.1. Добавил два значения перечисления СтавкиНДС: НДС20 и НДС20_120, поискал по строке "НДС18", вставил проверки вида . Еще советую просмотреть формы документов (и объектов, и списков) на предмет списков выбора, заполненных непрограммным способом. Например, мне попались форма списка авансовых СФ.
Объект.СтавкаНДС = ?(ТекущаяДата() >= Дата(2019, 1, 1), Перечисления.СтавкиНДС.НДС20, Перечисления.СтавкиНДС.НДС18);
Добавить еще одно перечисление "20%" , пройтись поиском , и везде где есть "18%" ,включить вилку на дату, до 01012019, "18%" после 20%
В последней БП в номенклатуре СтавкаНДС переименована в УдалитьСтавкаНДС.
Добавлено перечисление ВидыСтавокНДС со значениями Общая, ОбщаяРасчетная, Пониженная, ПониженнаяРасчетная, Нулевая, БезНДС.
Перечисление СтавкиНДС осталось и используется в документах.
Для получения ставки НДС из ВидаСтавкиНДС используется функция в модуле менеджера перечисления СтавкиНДС:
Для получения ВидаСтавкиНДС из СтавкиНДС используется функция в модуле менеджера перечисления ВидыСтавокНДС:
Текст УчетНДСКлиентСервер.ОбщаяСтавкаНДС(Период):
Добавлено перечисление ВидыСтавокНДС со значениями Общая, ОбщаяРасчетная, Пониженная, ПониженнаяРасчетная, Нулевая, БезНДС.
Перечисление СтавкиНДС осталось и используется в документах.
Для получения ставки НДС из ВидаСтавкиНДС используется функция в модуле менеджера перечисления СтавкиНДС:
Функция СтавкаНДС(ВидСтавки, Период) Экспорт
Если ВидСтавки = Перечисления.ВидыСтавокНДС.Общая Тогда
Возврат УчетНДСКлиентСервер.ОбщаяСтавкаНДС(Период);
ИначеЕсли ВидСтавки = Перечисления.ВидыСтавокНДС.ОбщаяРасчетная Тогда
Возврат УчетНДСКлиентСервер.ОбщаяРасчетнаяСтавкаНДС(Период);
ИначеЕсли ВидСтавки = Перечисления.ВидыСтавокНДС.Пониженная Тогда
Возврат Перечисления.СтавкиНДС.НДС10;
ИначеЕсли ВидСтавки = Перечисления.ВидыСтавокНДС.ПониженнаяРасчетная Тогда
Возврат Перечисления.СтавкиНДС.НДС10_110;
ИначеЕсли ВидСтавки = Перечисления.ВидыСтавокНДС.Нулевая Тогда
Возврат Перечисления.СтавкиНДС.НДС0;
ИначеЕсли ВидСтавки = Перечисления.ВидыСтавокНДС.БезНДС Тогда
Возврат Перечисления.СтавкиНДС.БезНДС;
Иначе
Возврат Перечисления.СтавкиНДС.ПустаяСсылка();
КонецЕсли;
КонецФункции
ПоказатьДля получения ВидаСтавкиНДС из СтавкиНДС используется функция в модуле менеджера перечисления ВидыСтавокНДС:
Функция ВидСтавки(СтавкаНДС) Экспорт
Если СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
Возврат Перечисления.ВидыСтавокНДС.Общая;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
Возврат Перечисления.ВидыСтавокНДС.ОбщаяРасчетная;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
Возврат Перечисления.ВидыСтавокНДС.Пониженная;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
Возврат Перечисления.ВидыСтавокНДС.ПониженнаяРасчетная;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС0 Тогда
Возврат Перечисления.ВидыСтавокНДС.Нулевая;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
Возврат Перечисления.ВидыСтавокНДС.БезНДС;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
Возврат Перечисления.ВидыСтавокНДС.Общая;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
Возврат Перечисления.ВидыСтавокНДС.ОбщаяРасчетная;
Иначе
Возврат Перечисления.ВидыСтавокНДС.ПустаяСсылка();
КонецЕсли;
КонецФункции
ПоказатьТекст УчетНДСКлиентСервер.ОбщаяСтавкаНДС(Период):
Функция ОбщаяСтавкаНДС(Период) Экспорт
Если Период < '20190101' Тогда
Возврат ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС18");
Иначе
Возврат ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20");
КонецЕсли;
КонецФункции
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот