Имя: Пароль:
1C
 
Конвертация данных. Один документ в два документа разного вида и наоборот. Как?
0 patria0muerte
 
03.04.15
04:26
Доброго времени суток, коллеги!

Развлекаюсь с КД. И наткнулся на такую вот непонятку. Ситация:

Есть две конфы, УПП и "Самописка на БСП 2.1" (далее "УНГ"). Из УПП в УНГ выгружается два вида документов, которые загружаются в УНГ как один вид. С этим все норм и вопросов нет.
Но проблема наступает тогда, когда мне необходимо из УНГ в УПП передать изменения по данным документам. Т.е. выходит, что вид документа из УНГ должен выгрузиться в тот вид документа в УПП, из которого был выгружен.
Надеюсь понятно обьяснил.

И как быть? Впринципе можно было бы в УНГ определить какой то идентификатор вида документа в УПП и по нему уже задавать КлючВыгружаемыхДанных, но кажется мне, что если происходит поиск по внутреннему идентификатору (а для этих доков как раз таки он и стоит в обе стороны)- то в этом нет необходимости. Или есть?

Чуется мне, что это все тривиально очень, но сам дойти не могу своей головой...
1 patria0muerte
 
03.04.15
04:28
+(0) В xml файле, который выплевывает УНГ в УПП, указывается тип приемника всегда как "первый" (первый в списке документов в КД) документ из УПП...
2 mehfk
 
03.04.15
04:42
Что будешь делать, если из УНГ в УПП будешь выгружить документ, которого еще нет в УПП ?
3 patria0muerte
 
03.04.15
04:48
(2) Такого не будет.
В УНГ при выгрузке из УПП передается признак УчаствуетВОбмене и для обмена в УНГ регистрируются только документы с этим признаком. Да и галка вроде стоит для подстраховки в КД "НеЗагружатьЕслиНеНайден"

Т.е. УПП как инициатор обмена. С УНГ летят только те доки, что созданы в УПП. "Свои" документы УНГ никуда не передает.
4 lxndr
 
03.04.15
05:25
ПКО 2 штуки. Твоя задача определить по какому из них выгружать из УГ
5 patria0muerte
 
03.04.15
05:46
(4) Ну сейчас в Правилах обмена УНГ-УПП у меня 2 ПКО есть:
1) унгЗаявкаНаПоселение -> ПРС_Командировка
2) унгЗаявкаНаПоселение -> ПРС_ЗаявкаНаПоселение

Для каждого ПВД заведено. Предполагал, что реально будет выгружать для обоих видов документов, а для нужный обработка сама найдет и загрузит. Но выгружает почему-то именно всегда для одного документа.

Вот я и спрашиваю наше доблестное коммьюнити: заводить реквизит документу, с указанием типа источника, или как то КД сама может разрулить ситуацию, с учетом того, что документы по УИД синхронизируются?
6 Feunoir
 
03.04.15
05:51
(5) Скорее всего оно у тебя не выгружает потому что по умолчанию КД не выгружает дважды один и тот-же объект. Либо вообще отключить контроль повторной выгрузки, либо для разных видов документов формировать разные ключи выгрузки.
7 lxndr
 
03.04.15
05:51
(5) так потому что определение ПКО, если он явно не задан, идет по типу источника. В твоем случае, вероятно берется первое попавшееся.
8 lxndr
 
03.04.15
05:53
>> или как то КД сама может разрулить ситуацию, с учетом того, что документы по УИД синхронизируются?
Сама не сможет. Сначала определяется ПКО, по нему уже способ поиска: УИДЫ/не уиды и т.д.
9 Feunoir
 
03.04.15
05:55
+(6) Если у тебя всегда 1-в-2 выгружается, тогда в ПВД проще вручную написать

ВыгрузитьПоПравилу(ПКО_Командировка...)
ВыгрузитьПоПравилу(ПКО_Заявка...)
10 patria0muerte
 
03.04.15
06:04
(6)(7)(8) Спасибо ребята, понял вас...
(9) Попробую сейчас...
11 patria0muerte
 
03.04.15
08:55
(9) Не взлетело почему то... но и не важно.
Сейчас завел ключ (перечисление с именами документов). При загрузке из УПП в УНГ проставляю значения, при выгрузке из УНГ в УПП в зависимости от значения ключа юзаю ВыгрузитьПоПравилу()

Вроде работает, еще потестирую...
12 lxndr
 
03.04.15
09:05
(11) можно просто в ПВД -> ПередВыгрузкой:
ИмяПКО = "ПКОВЗависимостиОтРеквизита";
13 patria0muerte
 
03.04.15
09:19
(12) Благодарю. Как раз таки ВыгрузитьПоПравилу выдавало странную ошибку.

Просто устанавливая имяПКО - ошибка ушла, все работает.

Всем спасибо!