Имя: Пароль:
1C
1С v8
Исчезают-появляются владельцы у договоров при обмене УТ 10.3 -> БП 2.0
0 Cyberhawk
 
28.10.11
09:32
Друзья, столкнулся с проблемой: в базе БП 2.0 пустые значения субконто 1 ("Контрагент") в проводках по 60 и 62 счету у некоторых документов.
Открываем договор (субконто 2) - поле "Владелец" не заполнено. Открываем контрагента, который должен быть его владельцем - в списке "Счета и договоры" нужного договора нет. Проблема плавающая, владельцы то появляются, то исчезают.
Сразу стал подозревать односторонний обмен УТ -> БП и внедрил в конфигурацию БП код в обработчик "Перед записью" справочника "Договоры контрагентов":

Если Владелец <> Ссылка.Владелец Тогда
   ЗаписьЖурналаРегистрации("Изменение владельца договора", УровеньЖурналаРегистрации.Ошибка, ЭтотОбъект.Метаданные(), Ссылка, "Был владелец """ + Ссылка.Владелец.Код + " " + Ссылка.Владелец.Наименование + " " + Владелец.УникальныйИдентификатор() + """, стал владелец """ + Владелец.Код + " " + Владелец.Наименование + " " + Владелец.УникальныйИдентификатор() + """");    
КонецЕсли;

Да, кстати, пока постил, заметил ошибку в коде: в обоих случаях УИД нового владельца фиксирую, а надо старого и нового. Ладно, не беда.

Подозрение на обмен подтвердилось: при обмене происходит то "обнуление" владельца, то его заполнение, и так по нескольку раз в день на нескольких объектах.
В базе УТ привел РС "Соответствие объектом для обмена" в порядок: убрал дубли, когда одному значению договора/контрагента (СобственнаяСсылка) соответствует два УИДа в другой ИБ (СсылкаВДругойИБ) (в разрезе одного и того же узла обмена, конечно).
Проблему это не решило, владельцы по-прежнему то обнуляются, то встают обратно. Вот выдержка из журнала регистрации БП 2.0 (помним про внедренный в БП 2.0 код): http://dl.dropbox.com/u/4517049/100.png
Владельцы то исчезают, то появляются вновь (у исчезающих УИД нули + помним про ошибку в коде: УИД в журнале обоих местах от нового владельца пишутся).
Обмен по правилам, правила почти типовые (в плане контрагентов и договоров точно не менял), галки обе стоят "Искать объект приемника по внутреннему ИД объекта источника" и "Продолжить поиск по полям поиска, если по ИД объект-приемник не найден".

Подскажите, в какую сторону можно еще посмотреть?
1 Cyberhawk
 
28.10.11
09:53
Ап.
2 Cyberhawk
 
28.10.11
11:31
Ап.
3 Cyberhawk
 
28.10.11
12:52
Ап.
4 Cyberhawk
 
31.10.11
11:00
Понедельничный ап.
5 Cyberhawk
 
02.11.11
11:59
Уп.