Конвертация ставок НДС: из Перечисления в Справочник (правила обмена в конвертации 2.0)
При написании правил обмена между «более старой» и «более новой» конфигурациями можно столкнуться с тем, что в одной конфигурации ставки НДС — это перечисление, а в другой — справочник (или наоборот, но мой пример именно из перечисления в справочник). Ситуация несложная, но нестандартная, поэтому выкладываю работающий пример, может, кому пригодится.
- Описание
- Подробнее
Описание
В Конвертации 2.0 создаем правило обмена Ставок НДС.
Тип значения в конфигурации-источнике: Перечисление.СтавкиНДС
Тип значения в конфигурации-источнике: Справочник.СтавкиНДС
Создаем ПКО и в нем 4 ПКС для каждого реквизита справочника "Ставки НДС":

Для каждого реквизита прописываем получение значения из перечисления в обработчике "перед выгрузкой":
Вид ставки:

Если Источник = Перечисления.СтавкиНДС.НДС20 ИЛИ Источник = Перечисления.СтавкиНДС.НДС18 Тогда
Значение = "Общая";
ИначеЕсли Источник = Перечисления.СтавкиНДС.НДС20_120 ИЛИ Источник = Перечисления.СтавкиНДС.НДС18_118 Тогда
Значение = "ОбщаяРасчетная";
ИначеЕсли Источник = Перечисления.СтавкиНДС.НДС10 Тогда
Значение = "Пониженная";
ИначеЕсли Источник = Перечисления.СтавкиНДС.НДС10_110 Тогда
Значение = "ПониженнаяРасчетная";
ИначеЕсли Источник = Перечисления.СтавкиНДС.НДС0 Тогда
Значение = "Нулевая";
ИначеЕсли Источник = Перечисления.СтавкиНДС.БезНДС Тогда
Значение = "БезНДС";
КонецЕсли;
Не облагается:


Если Источник = Перечисления.СтавкиНДС.БезНДС Тогда
Значение = Истина;
Иначе
Значение = Ложь;
КонецЕсли;
Расчетная:

Если Источник = Перечисления.СтавкиНДС.НДС20_120
ИЛИ Источник = Перечисления.СтавкиНДС.НДС18_118
ИЛИ Источник = Перечисления.СтавкиНДС.НДС10_110 Тогда
Значение = Истина;
Иначе
Значение = Ложь;
КонецЕсли;
Ставка:

Если Источник = Перечисления.СтавкиНДС.НДС20 ИЛИ Источник = Перечисления.СтавкиНДС.НДС20_120 Тогда
Значение = 20;
ИначеЕсли Источник = Перечисления.СтавкиНДС.НДС18 ИЛИ Источник = Перечисления.СтавкиНДС.НДС18_118 Тогда
Значение = 18;
ИначеЕсли Источник = Перечисления.СтавкиНДС.НДС10 или Источник = Перечисления.СтавкиНДС.НДС10_110 Тогда
Значение = 10;
ИначеЕсли Источник = Перечисления.СтавкиНДС.НДС0 или Источник = Перечисления.СтавкиНДС.БезНДС Тогда
Значение = 0;
КонецЕсли;
Готово. Теперь можно указывать это ПКО, например, для реквизита табличной части документа:


