|
COM соединение + Документы.НайтиПоНомеру ничего не возвращает | ☑ | ||
---|---|---|---|---|
0
Darhon
18.04.17
✎
12:37
|
Добрый день! Соединяю через COM две базы - идентичной конфигурации. Соединение устанавливается без ошибок, при попытке поиска в базе преемнике по номеру документа, возвращает пустые ссылки даже для тех доков что точно есть. Код привел ниже:
ПараметрыПодкл = "Srvr = ""srv"";Ref = ""srv""; Usr=""usr"";Pwd=""pwd"";"; V83COMConnector= Новый COMОбъект("V83.COMConnector"); Попытка Подключение= V83COMConnector.Connect(ПараметрыПодкл); Сообщить("Успешно подключено"); Исключение Сообщить ("Ошибка подключения!"); Возврат Неопределено; КонецПопытки; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПрочееОприходованиеТоваров.Ссылка КАК Ссылка |ИЗ | Документ.ПрочееОприходованиеТоваров КАК ПрочееОприходованиеТоваров"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //Сообщить(ВыборкаДетальныеЗаписи.Ссылка); СсылкаНаДокумент = Подключение.Документы.ПрочееОприходованиеТоваров.НайтиПоНомеру(ВыборкаДетальныезаписи.Ссылка.Номер); Если СсылкаНаДокумент.Пустая() Тогда Сообщить (ВыборкаДетальныеЗаписи.Ссылка.Номер); КонецЕсли; КонецЦикла; Подскажите где я ошибся, заранее благодарю |
|||
1
catena
18.04.17
✎
12:38
|
А дата?
|
|||
2
Cyberhawk
18.04.17
✎
12:39
|
Если СсылкаНаДокумент.Пустая() - там будет СОМ-объект же, а не ссылка, не?
|
|||
3
drcrasher
18.04.17
✎
12:40
|
(2) у СОМ объект есть такой метод
|
|||
4
Timon1405
18.04.17
✎
12:44
|
(1) +1 (0) см. второй параметр у метода или используйте запрос
|
|||
5
Darhon
18.04.17
✎
12:53
|
(4) Со вторым параметром тоже самое. Вываливает весь список документов, включая те, которые есть в базе приемнике. А если через уникальный идентификатор пойти??
|
|||
6
Рэйв
18.04.17
✎
13:14
|
(5)если уверен, что УИДы в двух базах у доков одинаковые, то можешь попробовать так:
УИД=Подключение.NewObject("УникальныйИдентификатор",Строка(ДокТут.УникальныйИдентификатор())); ДокТам=Подключение.Документы.ИмяДокумента.ПолучитьСсылку(УИД); |
|||
7
Darhon
18.04.17
✎
13:29
|
(6) с уидами заработало но не совсем так как хотелось бы ) теперь не находит те документы которых нет в преемнике)
|
|||
8
Darhon
18.04.17
✎
13:33
|
(6) В отладчике пишет СсылкаНаДокумент.пустая() метод объекта не обноружен. При просмотре COMОбъекта СсылкаНаДокумент видно что он соответствует пустой ссылке (
|
|||
9
Рэйв
18.04.17
✎
13:53
|
(7)Так если нет, он тебе их и по номеру не найдет.
В этом случае он возвращает не пустую ссылку, а "битую" Проверить можно просто попробовав получить из нее объект.Должно вернуть Неопределено вместо объекта |
|||
10
Darhon
18.04.17
✎
14:34
|
(9) Просто на Мисте в прошлом обсуждении у человека работал код: ЕстьЛиПоступление = МодульВнешнихСоединений.Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(Номер);
Если ЕстьЛиПоступление.Пустая() Тогда НовыйДокумент = МодульВнешнихСоединений.Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); Я делал по аналогии... |
|||
11
Darhon
18.04.17
✎
14:35
|
||||
12
h-sp
18.04.17
✎
14:42
|
(10) по номеру без даты не будет искать. хоть ты головой об стенку бейся. Всё равно надо по-человечески написать
МодульВнешнихСоединений.Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(Номер, КакаяТоДата); |
|||
13
catena
18.04.17
✎
14:45
|
(12)Не правда, при определенных условиях будет
|
|||
14
X Leshiy
18.04.17
✎
14:47
|
(0) По COM ты ссылку не получишь.
СсылкаНаДокументНомер = Подключение.Документы.ПрочееОприходованиеТоваров.НайтиПоНомеру(ВыборкаДетальныезаписи.Ссылка.Номер).Номер; Если СсылкаНаДокументНомер = "" Тогда Сообщить (ВыборкаДетальныеЗаписи.Ссылка.Номер); КонецЕсли; |
|||
15
r_i_n_i_k
18.04.17
✎
14:49
|
(13) только если нумерация не периодическая
|
|||
16
Darhon
18.04.17
✎
14:50
|
Сделал через УИД и объект. Всем спасибо )
УИД=Подключение.NewObject("УникальныйИдентификатор",Строка(ВыборкаДетальныеЗаписи.Ссылка.УникальныйИдентификатор())); СсылкаНаДокумент = Подключение.Документы.ПрочееОприходованиеТоваров.ПолучитьСсылку(УИД).ПолучитьОбъект(); Если СсылкаНаДокумент=Неопределено Тогда Сообщить (ВыборкаДетальныеЗаписи.Ссылка.Номер); КонецЕсли; |
|||
17
X Leshiy
18.04.17
✎
14:52
|
Оптимальнее получить по СОМ массив номеров документов (по нужным параметрам) и уже на стороне первой базы с ним работать. IMHO.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |