КД 2 выгружать произвольную структуру #810594


#0 by breezee
Добрый день! У меня есть выгрузка из 8 в 7. В выгрузке, в зависимости от контрагента и договора контрагента надо подставлять контрагенту разные ИНН. То есть если у нас есть контрагент "Ромашка" с догвором "Договор1" ИНН ставить "888". Если контрагент "Ромашка" с договором "Договоро2" ИНН ставить "666". Я знаю, что есть волшебная функция "ВыгрузитьПоПравилу" но есть проблема. Эта функция не может вернуть выгружаемую структуру в объект выгрузки(документ, откуда идет выгрузка), а подмена происходит непосердственно при выгрузке документа. Как мне выгружать не ссылку на контрагента, а произвольную структуру? Я выгружаю только ИНН, ссылка мне не нужна совсем, но как выгрузить структуру не понимаю. Подскажите, пожалуйста.
#1 by Вафель
выгружать параметры
#2 by breezee
Это их еще загружать надо, я хз как это в семерке делать. Можно без этого?
#3 by Вафель
те тебе нужно разные пары К/Д выгружать в разных контрагентов. Тебе нужно сделать правило: источник пустой (из вход. данных) приемник "Контрагент"  и при выгрузке формировать Исхходящие данные
#4 by vde69
ты делай конвертацию при выгрузки в восьмерке, а в семерке у тебя все будет красиво
#5 by Ёпрст
дык выгружай сразу как надо.
#6 by Byasha
В обработчике "При выгрузке" у ПКС добавь "Значение = <Нужный ИНН>". Выгрузится не ИНН контрагента а то что ты хочешь
#7 by Вафель
так зависит не от контрагента, а от договора
#8 by Ёпрст
в пкс у ИНН в Перед выгрузкой воткни значение = нужный инн в зависимости от договора. усё.
#9 by vde69
а какая разница? где то при загрузке правил пишем мСоотв = новый соответствие мСоотв.добавить(дог1,Инн222) далее ищешь по этому и все...
#10 by mistеr
И я попробую. В обработчике ПередВыгрузкой документа определяешь ИНН и пихаешь в ИсходящиеДанные. В ПКС для ИНН ПКО контрагента подставляешь ИНН из входящих данных, если он там есть. Галку "получить из входящих" не ставишь, это позволит выгружать контрагента как обычно, со своим ИНН.
#11 by breezee
Так я примерно так и сделал, добавил таблицу значений в параметры, заполняю её а потом в перед выгрузкой для ИНН пишу Если СтрокаКонтрагента = Неопределено Тогда     Сообщить("Критическая ошибка! Не найден ИНН для контрагента в таблице параметров в правилах выгрузки. Контр = " +Источник.Ссылка); Однако, на уровне подстановки ИНН я не могу уже видеть договор, то есть если у меня в одном документе будет 2 договора для одного контрагента, а такое может быть, так как я загружаю в табличную часть в приемнике контрагентов и договоров - я могу найти не те данные. А исходящие данные -  это тоже типо параметров общих? Есть параметры, которые я могу передать ввместе с конкретной ссылкой?
#12 by breezee
Так я там не вижу договор уже, только ссылку на контрагента
#13 by mistеr
Тогда вопрос - а на каком этапе ты договор видишь?
#14 by PCcomCat
Выгружай только договор, а у договора при выгрузке владельца (Контрагента) посылай исходящие данные, в которых записывай договор. У контрагента лови входящие данные и анализируй, ставь нужное. А ссылка на контрагента меняется, надеюсь? Два ИНН - два контрагента? Коды контрагентов?
#15 by vde69
+ Сделай ПКО где в нем в обработчике ПослеВыгрузкой пишешь ВыгрузитьПоПравилу(Источник,"Договор")
#16 by breezee
Договор вижу на этапе выгрузки самого документа, в котором указан контрагент и договоров. Спасибо за идею, но у контрагента может быть несколько договоров при выгрузке двух договоров по одному контрагенту у этого контрагента может криво проставиться ИНН второй раз. Два ИНН - 2 контрагента в источнике. 2 ИНН - неизвестно сколько контргантов в приемнике, такая связь. Вообще звучит хорошо, спасибо! Попробую так сделать. Получу договор при выгрузке, из договра получу нужное инн и через исходящие данные в ВыгрузитьПоПравилу передам ИНН для контрагента. Вот только есть проблема. При выгрузке этого документа, откуда тащу договор я произвольным алгоритмом заполняю контрагента и если я использую "ВыгрузитьПоПравилу" контрагент может и не встать в выгрузку, если я не укажу его на прямую, вроде...
#17 by PCcomCat
Создай правило, где превращай договор в контрагента, и укажи вместо источником договор, приемником контрагента и правило твое по превращению. Опять же исходящие и входящие данные используй.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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