Конвертация данных: ВыгрузитьПоПравилу #453887


#0 by Nicole
Есть выгрузка данных из УТ в БП. Есть два правила выгрузки документа РеализацияТоваровУслуг - в зависимости от вида договора. Для договора вида "Х" - стандартная выборка документов и правило "Х", для договора вида "У" - произвольный алгоритм (через запрос) и правило "У". И есть необходимость выгрузить к этим Реализациям СчетФактуруВыданную. Задаю для СчетФактуры ПКО ПередВыгрузкой: Если  Источник.ДокументОснование.ДоговорКонтрагента.ВидВзаиморасчетов = "Х" Тогда ВыгрузитьПоПравилу( Источник.ДокументОснование,,,, "Правило Х"); КонецЕсли; Но выгрузка по правилу У у меня через запрос. И в итоге документ-основание по этому правилу просто не выгружается. Можно ли каким-то образом передать через ВыгрузитьПоПравилу в запрос ссылку на конкретный документ?
#1 by agarych
Не понял, у тебя не срабатывает? ВыгрузитьПоПравилу( Источник.ДокументОснование,,,, "Правило У")
#2 by agarych
Ты этот код где написал в ПВД или ПКО?
#3 by agarych
Попробуй описать другими словами - немного не понятно )
#4 by Nicole
Прошу прощения, догуливала праздники... Действительно непонятно... попробую описать по-другому...
#5 by Nicole
Да, не совсем корректно срабатывает ВыгрузитьПоПравилу(Источник.ДокументОснование,,,,"Правило У"). Сам ДокументОснование выгружается, но не подставляется в реквизит ДокументОснование СчетФактурыВыданной.
#6 by AlexHP
В смысле в реквизит выгруженного документа?
#7 by Nicole
Да.
#8 by DUDE
Если реквизит ДокументОснование счета-фактуры в базе-источнике заполнен, то по идее его и не обязательно явно перегружать. Не подставляться же у вас может лишь в том случае, если в источнике он не заполнен, тогда вы используя ВыгрузитьПоПравилу выгрузили в файл обмена нужный док, но не установили значение самого реквизита. Может вам в ПКО СчетаФактуры при выгрузке задавать значение документа-основания?
#9 by AlexHP
Усточню: не просто в ПКО а в ПКО ПослеЗагрузки, когда СчетФактуры уже создан.
#10 by Nicole
В зависимости от вида договора реквизит ДокументОснование должен перегружаться по одному из двух правил - "Правило Х" и "Правило У"; если я не перегружаю его явно, то этот реквизит перегружается только по правилу "Х".
#11 by Nicole
Ага. Попробую.
#12 by x-a-d
На сколько я понимаю, если есть "Источник", следовательно конструкция задается в ПКС каком-то. далее, если ПКС = Источник.ДокументОснование, а правила - это ПКО, а не алгоритм, то можно написать Если Источник.ДокументОснование.ДоговорКонтрагента.ВидВзаиморасчетов = "Х" Тогда просто не совсем понял по задаче. Правило - это ПКО или производный алгоритм?
#13 by Nicole
Правило - это ПКО. Спасибо за помощь, попробую и так.
#14 by DUDE
Имхо, вы при выгрузке этот реквизит не выгружаете (у вас он отключен), соответственно воспользовавшись ВыгрузитьПоПравилу вы лишь выгрузили тот док, который у вас был значением реквизита. Если вы его хотите заполнять, то можно как в делать поиск нужного документа после загрузки счета-фактуры. А так вообще проще просто при выгрузке реквизита задавать правило его обработки, из справки конфы обработчика ПКС ПриВыгрузке: "ИмяПКО - имя правила конвертации, по которому производится преобразование значения свойства. Может быть переопределено в зависимости от каких-либо условий. ... ПКОСвойств - ссылка на правило конвертации объектов свойства. Определено, если правило конвертации объектов указано в ПКС или ИмяПКО инициализировано в обработчике ПередВыгрузкой. В противном случае ПКОСвойств - Неопределено. ". Думаю то, что вам нужно. ;)
#15 by Nicole
, Спасибо большое, все получилось.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С