|
Мистика с COM connection
| ☑ |
0
patapum
21.07.14
✎
14:50
|
Разработал обработку, которая подключается из бухгалтерской базы в оперативную, она должна находить контрагента по ссылке (ссылка в бухгалтерии есть), и потом из контрагента-COM-объекта считать его реквизиты.
Обработка работает весьма странным образом, у некоторых контрагентов она реквизиты читает, а у некоторых не видит (хотя они есть, зайдя в базу напрямую, я их вижу).
Есть у кого-то идеи, с чем может быть связано и как это можно побороть?
Картинки:
читаются реквизиты
не читаются реквизиты
Кусок кода (отрабатывает на активизации строки):
УИД = ЭлементыФормы.дрСоответствиеКонтрагентамУТ.ТекущиеДанные.УникальныйИдентификаторУТ;
Если ЭлементыФормы.дрСоответствиеКонтрагентамУТ.ТекущиеДанные <> Неопределено И СокрЛП(УИД) <> "" Тогда
УТ_Контрагент = УТ.Справочники.Контрагенты.ПолучитьСсылку(УТ.NewObject("УникальныйИдентификатор",УИД));
//Наименование = УТ_Контрагент.Наименование;
ИНН = УТ_Контрагент.ИНН;
КПП = УТ_Контрагент.КПП;
Код77 = УТ_Контрагент.дрКод77;
Иначе
//Наименование = "";
ИНН = "";
КПП = "";
Код77 = "";
КонецЕсли;
|
|
1
ObjectRelation Model
21.07.14
✎
14:52
|
что говорит отладчик?
|
|
2
patapum
21.07.14
✎
14:56
|
(1) отладчик говорит, что в обоих случаях получаем COM-объект (причем, попадаем в основную ветку, не в "иначе"), но для первого контрагента читает ИНН, КПП, и все прочее, а для другого нет.
|
|
3
le_
21.07.14
✎
15:00
|
Может, по UID'у получается не то, что должно получаться? Т.е., UID некорректный.
|
|
4
exchang
21.07.14
✎
15:01
|
Если УТ_Контрагент.ПолучитьОбъект() = неопределено Тогда
// ошибка
КонецЕсли;
|
|
5
patapum
21.07.14
✎
15:11
|
(3) ага, УИД не тот. спасибо! буду копать, как он туда попал
|
|
6
Defender aka LINN
21.07.14
✎
15:12
|
(4) В коленку за такую проверку на существование ссылки расстреливать надо.
|
|