Документ поступления товаров. В табличной части есть реквизит СтавкаНДС.
У справочника нет предопределенных элементов, значит сопоставить нельзя.
Создал ПКО "СтавкиНДС". В событии "Перед выгрузкой", написал код. В ПКС, не добавлял реквизиты. т.к. в приемнике их нету. Сопаставлять нечем.
если Источник.Наименование = "10%" тогда
Значение = "НДС10";
//Выражение = "Перечисления.СтавкиНДС.НДС10";
иначеЕсли Источник.Наименование = "18%" тогда
Значение = "НДС18";
//Выражение = "Перечисления.СтавкиНДС.НДС18";
конецЕсли;
Это не работает
2) сделал по другому
Зашел в ПКО документа "Поступления". открыл ПКС "СтавкиНДС", установил связь "правило конвертации" на правило "СтавкиНДС"
(0) Давай еще раз. В источнике есть колонка ТЧ типа "справочник", а в приемнике - "перечисление" и нужно перенести документ, конвертируя справочник в перечисление, так?
в ПКО в "ПередВыгрузкой" переменная "Значение" не имеет особого смысла. Тебе нужно добавить ПКС, поставить там флаг "Передавать данные в параметр", обозвать его например "Наименование" и поставить по нему флаг "поиск". Затем в ПКО в событии "Поля поиска" по этому параметру вручную найти перечисление, например так:
Наименование = ПараметрыОбъекта["Наименование"];
Ссылка = Перечисления.СтавкиНДС[Наименование];
Нашел другой способ. Если кому то будет дальше интересно.
ПКО "СтавкиНДС". "Перед выгрузкой"
Приемник = Источник;
"После выгрузке"
если Источник.Наименование = "10%" тогда
//Значение = "НДС10";
//Выражение = "Перечисления.СтавкиНДС.НДС10";
УзелСсылки = "НДС10";
иначеЕсли Источник.Наименование = "18%" тогда
//Значение = "НДС18";
//Выражение = "Перечисления.СтавкиНДС.НДС18";
УзелСсылки = "НДС18";
конецЕсли;
Отказ = ИСТИНА;
И поставить галочку "Не запоминать выгруженные объекты"
Так работает. Проверил.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший