![]() |
![]() |
![]() |
|
1с82 как обратиться к StorHauz через OLE | ☑ | ||
---|---|---|---|---|
0
Aleks_ST
26.07.12
✎
16:15
|
Добрый день!
Подскажите в чем ощибка при обращении к StorHauz через OLE . Пишу: OLEОбъект=""; OLEОбъект=Новый COMОбъект("Sh4Ole.Sh4App"); Открыта=OLEОбъект.DBLogin(); Если Открыта = 0 Тогда ЕстьПодключение = Истина; Иначе Предупреждение("Ошибка при подключении!"); ЕстьПодключение = Ложь; КонецЕсли; Пишет МетодОбъекта не обнаружен DBLogin. Но в инструкции к StorHauz именно через эти команды идет подключение к базе??? При работе с 1с7 все эти команды работали?? Подскажите в чем ошибка |
|||
1
СноваЗдорова
26.07.12
✎
16:17
|
Давай инструкцию сюда
|
|||
2
Serginio1
26.07.12
✎
16:43
|
Может
Открыта=OLEОбъект.DBLogin; |
|||
3
Aleks_ST
26.07.12
✎
17:30
|
Инструкция от StorHauz:
-------------------------------------------------------------------------------------------------------------- Описание процедур - Подцепиться к базе данных 0 -OK <>0 код ошибки. function DBLogin: integer ; safecall; function SetServerName (const ServName:WideString ): integer; safecall; для установки названия сервера перед вызовом DBLoginEx Формат строки: [S]:p[N или T]a[n1]t[n2], где S - имя сервера pN - протокол NetBios pT - протокол TCP/IP a[n1] - номер адаптера t[n2] - таймаут в мсек. Пример: 'SDBSERV:pTa3t1000' Подцепиться к базе данных без вызова формы логина 0 -OK <>0 код ошибки. function DBLoginEx (const UserName, PassWord: WideString): integer ; safecall; Отцепиться от базы данных } procedure DBLogout; safecall; Подцеплена ли БД 0 - подцеплена <> 0 - код ошибки } function DBConnected: integer; safecall; Возвращает версию базы данных } function GetDbVersion: WideString; safecall; Возвращает версию DLL } function GetVersion: WideString; safecall; Возвращает Текущий тип учета 0-учет 1-спец учет} function GetSysFlag: integer; safecall; Максимальное число одновременно открытых запросов } function MaxQueryCount: integer; safecall; Закрытие запроса меняет флаг used на False function CloseQuery (IndQuery: Integer) :integer; safecall; После любой операции можно посмотреть код ошибки и сообщение } function GetExcMessage: WideString; safecall; // сообщение function GetExcCode: integer; safecall; // код |
|||
4
Aleks_ST
26.07.12
✎
17:35
|
Спасибо,Serginio1, действительно правильно было написать: Открыта=OLEОбъект.DBLogin;, без()
|
|||
5
Serginio1
26.07.12
✎
17:47
|
(4) Хотя странно, но по описанию DBLogin это функция. Кстати для интереса можешь в отладчике посмотреть все свойства.
Или посмотреть тлб библиотеки. Просто в 7 ке свойсва и методы одинаково вызывались |
|||
6
Михаил Козлов
26.07.12
✎
17:50
|
4 года назад делал обработку для загрузки документов из СторХауза в 1С (8.1).
Она, правда, специфическая. Могу прислать - пришлите на мыло (в профиле). |
|||
7
Aleks_ST
26.07.12
✎
18:18
|
Подцепился к базе, теперь не работает выборки из бызы:
ГруппыКонтр = OLEОбъект.CorrTree(); Пока OLEОбъект.EOF(ГруппыКонтр) <> 1 Цикл Если ( (Число(OLEОбъект.ValByName(ГруппыКонтр,"1.101.1.0")) = 1 ) ИЛИ (НайтиГруппуКонтрагент(Строка(OLEОбъект.ValByName(ГруппыКонтр,"1.101.2.0"))) <> "" ) ) Тогда Сообщение = ""; Сообщение = Сообщение+" Контрагент с наименованием :: " + Строка(OLEОбъект.ValByName(ГруппыКонтр,"1.101.3.0")); Если НайтиГруппуКонтрагент(Строка(OLEОбъект.ValByName(ГруппыКонтр,"1.101.1.0"))) <> "" Тогда Сообщение = Сообщение + " УЖЕ СУЩЕСТВУЕТ "; Иначе НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу(); НоваяГруппа.Наименование = Строка(OLEОбъект.ValByName(ГруппыКонтр,"1.101.3.0")); НоваяГруппа.sh_rid = Строка(OLEОбъект.ValByName(ГруппыКонтр,"1.101.1.0")); Если Строка(OLEОбъект.ValByName(ГруппыКонтр,"1.101.2.0 ")) <> "" Тогда РодительКонтрагент = НайтиГруппуКонтрагент(Строка(OLEОбъект.ValByName(ГруппыКонтр,"1.101.2.0 "))); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; инструкция по Дерево корреспондентов function CorrTree: integer; safecall; 1.101.1.0 уникальный идентификатор .Всегда есть запись с (1.101.1.0) = 0, (1.101.2.0) is NULL - корень для складов (1.101.1.0) = 1, (1.101.2.0) is NULL - корень для корреспондентов 1.101.2.0 ссылка на предка (1.101.2.0) = 0 ссылка на группу CКЛАДЫ 1.101.3.0 наименование группы |
|||
8
Aleks_ST
26.07.12
✎
18:59
|
Добрый день, Михаил Козлов!
Буду рад любой подсказки. На ваш адрес написал письмо, с просьбой выслать обработку. Заранее благодарю. |
|||
9
Aleks_ST
26.07.12
✎
23:26
|
Ребята, помогите, не проходит у меня обработка OLE. Подключилась нормально, т.е. после исправление и используя обработку Михаила
OLEОбъект=""; OLEОбъект=Новый COMОбъект("Sh4Ole.Sh4App"); Открыта=OLEОбъект.DBLogin Подключение прошло, но выборки ни какой не делает: IndQuery = OLEОбъект.CorrFullList();//** получаю IndQuery =0, //** ошибка не выдается, но ничего не делается Если IndQuery < 0 Тогда Сообщить(OLEОбъект.GetExcMessage()); Иначе ПОКА OLEОбъект.EOF(IndQuery) <> 1 Цикл статус = OLEОбъект.ValByName(IndQuery,"0.102.2.0"); Если OLEОбъект<>0 Тогда новСтр = Контрагенты.Добавить(); КонецЕсли; OLEОбъект.Next(IndQuery); КонецЦикла; OLEОбъект.CloseQuery(IndQuery); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |