![]() |
7.7-8.3 OLE Коллеги, не могу понять. Хочу попробовать из 7.7 подцепиться к базе на 8.3, но метод Connect объекта V83.COMConnector не вызывается: V83 = СоздатьОбъект("V83.COMConnector"); Сообщить(ТипЗначенияСтр(V83)); РезультатПодключения = V83.Connect("File=" + ПутьКБазеOLE, + ";Usr=" + ПользовательOLE); ругается Поле агрегатного объекта не обнаружено (Connect) V83 благополучно создается. К 8.3 первый раз цепляюсь Причем с 8.2 по моему соединяется, просто недели 2 назад пробовал, не помню. Сейчас повторю ) |
Да, для 82Connector метод Connect вызывается, там другой косяк, неверное число параметров, но это уже понятно. А надо для 8.3 ) |
А зачем запятая после пути к базе? |
(2)проверю, тут может просто ошибка, первый раз коннекчусь Но метод совсем не вызывается |
Исправил, спасибоРезультатПодключения = V83.Connect("File=""" + ПутьКБазеOLE + """; usr=""" + ПользовательOLE + """; pwd=""" + ПарольOLE + """;"); Но понятно что эффекта нет. С 8.2 соединяется |
Да, все это на домашнем компе с Win7 x64, платформа 8.3.6.2152 |
0-USSR > "Неправильно ты, дядя Фёдор, бутерброд ешь. Его колбасой надо на язык класть." v77 не знает методов COM-соединения. v77 знает только методы OLE-соединения. |
(6)Но с 8.2 же соединяется, Я соединился уже через 83.Application Теперь надо дальше разбираться что с этим делать. Все совсем не так как привык )) |
7-USSR > Ээээ... Платформа 8.3 (особенно, с 8.3.6) несколько отличается от 8.2. Посмотри в описании различий на предмет СОМ-соединений: вдруг что полезное прочтешь... |
(8)я понимаю, что отличается. тут еще и управляемое приложение |
9-USSR > Ты поищи особенности-то. Напр., [url]http://infostart.ru/public/276794/[/url] пост (5) |
(11)Спасибо, Валера! Я обязательно почитаю ) |
Новый документ записать удалось, а вот получить объект для существующего не получается: ДокументСсылка = V83.Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(НомерДок); Если ДокументСсылка = V83.Документы.ПоступлениеТоваровУслуг.ПустаяСсылка() Тогда ДокументОбъект = V83.Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); ДокументОбъект.Дата = ДатаДок; ДокументОбъект.Номер = НомерДок; Иначе ДокументОбъект = ДокументСсылка.ПолучитьОбъект(); КонецЕсли; Пишет почему то, что элемент не выбран. Причем тут элемент )) ДокументОбъект = ДокументСсылка.ПолучитьОбъект(); **..\EXTFORMS\77_83_OLE.ERT(30)**: 1C:Enterprise 8.3.6.2152: Элемент не выбран! |
2(12) СП говорит, что у НайтиПоНомеру() есть ещё третий вариант возвращаемого значения: Неопределено. |
(13)это верно, спасибо ) Щас попробую. Но документ то существует И V83.ЗначениеВстрокуВнутр(ДокументСсылка) показывает строку с непустым UID |
В СП написано чуть иначе : Возвращаемое значение: Тип: ДокументСсылка.<Имя документа>; Неопределено. Ссылка на найденный документ. Если документ не найден, возвращается пустая ссылка на документ. Если номер не задан (длина = 0), то будет возвращено Неопределено У меня же номер задан )) |
2(15) [em]У меня же номер задан )) [/em] Мне отсюда плохо видно :-) В любом случае, надо глянуть, что там возвращает НайтиПоНомеру(). А то мало ли что в СП напишут... |
(16)с указанием второго параметра в методе НайтиПоНомеру все заработало. Спасибо. Я на него и грешил )) Так по OLE мало что проверишь, что там возвращает. Тем более в 8.3 )) |
(19)А как из 7.7 сравнить с "Неопределено" ? Писать в 8.3 глобальную функцию, возвращающую это значение ? |
решил через v83.значениевстрокувнутр() Но поиск по номеру все равно как то криво работает, сделал связь по уникальному идентификатору, все прекрасно вроде. Мне важно было просто попробовать, чтобы иметь инструмент |
Текущее время: 21:48. Часовой пояс GMT +3. |