Вход | Регистрация

1С:Предприятие ::

Метки: 

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

Я
   breezee
 
19.12.17 - 17:19
Добрый день! У меня есть выгрузка из 8 в 7. В выгрузке, в зависимости от контрагента и договора контрагента надо подставлять контрагенту разные ИНН.
То есть если у нас есть контрагент "Ромашка" с догвором "Договор1" ИНН ставить "888".
Если контрагент "Ромашка" с договором "Договоро2" ИНН ставить "666".
Я знаю, что есть волшебная функция "ВыгрузитьПоПравилу" но есть проблема.
Эта функция не может вернуть выгружаемую структуру в объект выгрузки(документ, откуда идет выгрузка), а подмена происходит непосердственно при выгрузке документа.
Как мне выгружать не ссылку на контрагента, а произвольную структуру? Я выгружаю только ИНН, ссылка мне не нужна совсем, но как выгрузить структуру не понимаю.
Подскажите, пожалуйста.
 
  Рекламное место пустует
   Вафель
 
1 - 19.12.17 - 17:21
выгружать параметры
   breezee
 
2 - 19.12.17 - 17:23
(1) Это их еще загружать надо, я хз как это в семерке делать. Можно без этого?
   Вафель
 
3 - 19.12.17 - 17:25
те тебе нужно разные пары К/Д выгружать в разных контрагентов.
Тебе нужно сделать правило: источник пустой (из вход. данных) приемник "Контрагент"  и при выгрузке формировать Исхходящие данные
   vde69
 
Модератор
4 - 19.12.17 - 17:28
(2) ты делай конвертацию при выгрузки в восьмерке, а в семерке у тебя все будет красиво
   Ёпрст
 
5 - 19.12.17 - 17:37
(0) дык выгружай сразу как надо.
   Byasha
 
6 - 19.12.17 - 17:40
(0) В обработчике "При выгрузке" у ПКС добавь
"Значение = <Нужный ИНН>". Выгрузится не ИНН контрагента а то что ты хочешь
   Вафель
 
7 - 19.12.17 - 17:54
(6) так зависит не от контрагента, а от договора
   Ёпрст
 
8 - 19.12.17 - 17:56
в пкс у ИНН в Перед выгрузкой воткни значение = нужный инн в зависимости от договора. усё.
   vde69
 
Модератор
9 - 19.12.17 - 17:57
(7) а какая разница?

где то при загрузке правил пишем

мСоотв = новый соответствие()
мСоотв.добавить(дог1,Инн222)

параметры.добавить("СоответсвиеИННДоговор", мСоответсвие)


далее ищешь по этому и все...
   mistеr
 
10 - 19.12.17 - 18:11
И я попробую. В обработчике ПередВыгрузкой документа определяешь ИНН и пихаешь в ИсходящиеДанные. В ПКС для ИНН ПКО контрагента подставляешь ИНН из входящих данных, если он там есть. Галку "получить из входящих" не ставишь, это позволит выгружать контрагента как обычно, со своим ИНН.
 
  Рекламное место пустует
   breezee
 
11 - 20.12.17 - 04:55
(9) (8) Так я примерно так и сделал, добавил таблицу значений в параметры, заполняю её а потом в перед выгрузкой для ИНН пишу
СтрокаКонтрагента = Параметры.ТаблицаКонтрагенты2.Найти(Источник.Ссылка, "Контрагент");
Если СтрокаКонтрагента = Неопределено Тогда
    Сообщить("Критическая ошибка! Не найден ИНН для контрагента в таблице параметров в правилах выгрузки. Контр = " +Источник.Ссылка);
Иначе
    Значение = СтрокаКонтрагента.ИНН;    
КонецЕсли;    

Однако, на уровне подстановки ИНН я не могу уже видеть договор, то есть если у меня в одном документе будет 2 договора для одного контрагента, а такое может быть, так как я загружаю в табличную часть в приемнике контрагентов и договоров - я могу найти не те данные. А исходящие данные -  это тоже типо параметров общих? Есть параметры, которые я могу передать ввместе с конкретной ссылкой?
   breezee
 
12 - 20.12.17 - 05:34
(8) Так я там не вижу договор уже, только ссылку на контрагента
   mistеr
 
13 - 20.12.17 - 08:21
(12) Тогда вопрос - а на каком этапе ты договор видишь?
   PCcomCat
 
14 - 20.12.17 - 08:40
(0) Выгружай только договор, а у договора при выгрузке владельца (Контрагента) посылай исходящие данные, в которых записывай договор. У контрагента лови входящие данные и анализируй, ставь нужное. А ссылка на контрагента меняется, надеюсь? Два ИНН - два контрагента? Коды контрагентов?
   vde69
 
15 - 20.12.17 - 09:03
(14) +
Сделай ПКО где 
Источник - Договор
Приемник - Контрагент

в нем в обработчике ПослеВыгрузкой пишешь

ВыгрузитьПоПравилу(Источник,"Договор")
   breezee
 
16 - 20.12.17 - 13:09
(13) Договор вижу на этапе выгрузки самого документа, в котором указан контрагент и договоров.
(14)Спасибо за идею, но у контрагента может быть несколько договоров при выгрузке двух договоров по одному контрагенту у этого контрагента может криво проставиться ИНН второй раз. Два ИНН - 2 контрагента в источнике. 2 ИНН - неизвестно сколько контргантов в приемнике, такая связь.
Вообще звучит хорошо, спасибо! Попробую так сделать. Получу договор при выгрузке, из договра получу нужное инн и через исходящие данные в ВыгрузитьПоПравилу передам ИНН для контрагента. Вот только есть проблема. При выгрузке этого документа, откуда тащу договор я произвольным алгоритмом заполняю контрагента и если я использую "ВыгрузитьПоПравилу" контрагент может и не встать в выгрузку, если я не укажу его на прямую, вроде...
   PCcomCat
 
17 - 20.12.17 - 16:09
(16) Создай правило, где превращай договор в контрагента, и укажи вместо источником договор, приемником контрагента и правило твое по превращению. Опять же исходящие и входящие данные используй.


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует