Имя: Пароль:
1C
1С v8
Конвертация данных: Заполнение реквизитов приемника после загрузки
0 Andrey_I
 
18.02.15
09:49
Доброе утро. Есть две конфигурации торговли, сильно переписанные, в источнике есть документ накладная и заказ покупателя. Накладная делается на основании заказа покупателя. Документы источника не имеют реквизита контрагент. При переносе в приемник в обработчике после загрузки накладной (пробовал и при загрузке) заполняется реквизит контрагент, который в приемнике у заказа присутствует, выглядит, примерно, так:ТекЗаказПокупателя = Объект.ЗаказПокупателя.Ссылка;
        Объект.Контрагент = ТекЗаказПокупателя.Контрагент.Ссылка;
Если обмен делать через файл, то реквизит контрагент заполняется, если через сом подключение , то заполняется со второго раза. Понятно, что можно сделать нужные изменения в конфигурации приемника, но очень хочется понять что не так с правилами.
1 VladZ
 
18.02.15
09:54
Делай после загрузки
2 VladZ
 
18.02.15
09:54
все должно работать.
3 Godofsin
 
18.02.15
09:55
(0) Слабо верится, что не работает. И .ссылка не нужна
4 Stim
 
18.02.15
09:55
Объект.ЗаказПокупателя.Ссылка - вернет тебе пустую ссылку, если заказ - новый и еще не записан.

Должно быть как-то так:

  Объект.Контрагент = Объект.ЗаказПокупателя.Контрагент;
5 Andrey_I
 
18.02.15
10:01
(4) Заказ покупателя в приемнике есть всегда.
6 kosts
 
18.02.15
10:04
В конвертации посмотри на закладке On-line обмен есть галочки "Выгружать объект полностью только при наличии ссылки"
"Не замещать объект  созданный  в приемнике"
может это как-то
Отличий ком от файлового других вроде нету (но могут быть). Тут отладка может помочь, но муторно очень.
7 Stim
 
18.02.15
10:05
(5) о чем мы еще должны догадаться?
8 Stim
 
18.02.15
10:06
(6) отличия в том, что при загрузке в приемнике обработка загрузки(уни обмен хмл) вызывается программно, соответственно, некоторые параметры могут не установиться, по сравнению с интерактивным запуском
9 kosts
 
18.02.15
10:12
(8) Обмен через файл может тоже программно вызываться, в задании.
ТС что-то не рассказал, как делает... Обработку руками открывает запускает или через задание...
10 Andrey_I
 
18.02.15
10:19
(7)(9) упустил. Приемник в источник выгружает заказы. В источнике по заказу набирается накладная и через программную обработку обмена перегружается в приемник, при загрузке надо заполнить контрагента.
Вот параметры обработки :
Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать();
Обработка.ИмяФайлаПравилОбмена= ИмяФайлаПравилВыгрузки;
Обработка.РежимОбмена= "Выгрузка";
Обработка.ЗагружатьДанныеВРежимеОбмена    = Истина;
Обработка.ЗаписыватьРегистрыНаборамиЗаписей= Истина;
Обработка.ЗапоминатьЗагруженныеОбъекты    = Истина;
Обработка.ИспользоватьОтборПоДатеДляВсехОбъектов= ЛОЖЬ;
Обработка.ВыгружатьТолькоРазрешенные= Истина;
Обработка.ЗаписыватьВИнформационнуюБазуТолькоИзмененныеОбъекты = Истина;
11 Stim
 
18.02.15
10:31
>>Приемник в источник выгружает заказы
>>Заказ покупателя в приемнике есть всегда.

Чувак, разберись пжл что у тебя куда выгружается, иначе тут сложно тебе помочь
12 Andrey_I
 
18.02.15
10:47
Попробую сформулировать еще раз. При выгрузке в базу приемник документ накладная получает по правилу заказ покупателя, в обработчике "после загрузки" прописано заполнение реквизита накладной приемника из реквизитов документа заказ приемника. Это правило отрабатывает при загрузке / выгрузке через файл, при сом обмене, реквизит документа накладная, не заполняется.
13 Stim
 
18.02.15
10:53
(12) пробуй (4)
14 Andrey_I
 
18.02.15
10:57
(13) первоначально так и было: Объект.Контрагент = Объект.ЗаказПокупателя.Контрагент;
15 Stim
 
18.02.15
11:01
(14) попробуй что-нить типа
Сообщить( Объект.ЗаказПокупателя);
Сообщить( Объект.ЗаказПокупателя.Контрагент);
16 Andrey_I
 
18.02.15
11:49
Сделал ЗаписьЖурналаРегистрации("Отладка правил КД",
УровеньЖурналаРегистрации.Информация, , ,"Получили " +строка( Объект.ЗаказПокупателя.Контрагент));
ЗаписьЖурналаРегистрации("Отладка правил КД",
УровеньЖурналаРегистрации.Информация, , ,"Установили " +строка( Объект.Контрагент));
В журнале контрагент определен, в документе - отсутствует. в модуле документа переопределение и перезаписи контрагента нет.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс