подключение к 1С8.2 средствами Delphi? #607911


#0 by leftmails
Всем привет! Пожалуйста подскажите, как наиболее проще подключится к базе 8.2 средствами Delphi7? Перепробовал кучу вариантов, среди которых: Но ни чего не получается:( При создании Ole1C := CreateOleObject('V8.Application'); выдает ошибку Недопустимая срока с указанием класса Может есть вариант средствами ADO? (тоже пытался - не получилось) В заранее благодарю за помощь!
#1 by H A D G E H O G s
Ole1C := CreateOleObject('V82.Application');
#2 by leftmails
Да, это я тоже пробывал, но какраз таки выдает ошибку на эту строчку, что недопустимая строка
#3 by КМ155
значит на компике с Delphi не установлен 1С 8.2 или не зарегистрирована dll
#4 by leftmails
Вот как проверку подключения пытаюсь сделать: end; --------------------------------- Ну да, не установлена. Значит надо установить? База находится на удаленном сервере, доступ к которому я себе расширил.. Сейчас попытаюсь установить 1С8.2 к себе на компьютер. Подскажите тогда пожалуйста как и где вводить имя пользователя и пароль для доступа?
#5 by H A D G E H O G s
#6 by hhhh
'/D'+ path1c + ' /N'+name+' /P'+password
#7 by leftmails
Перетащил EXE скомпилированный на сервер с 1С, данная ошибка перестала быть. Теперь ругается на RMTrade: Method 'RMTrade' not supported automation object На что поменять надо? (Ole1C.RMTrade, '/D'+ path1c, ''); Спасибо, попробую!
#8 by H A D G E H O G s
Это строка для 7/7
#9 by H A D G E H O G s
if not VarIsEmpty(Connection) then  begin  except    AddLog('Не удалось выполнить соединение с базой 1С. Не установлены компоненты 1С для работы с внешним соединением!'); begin  if BaseType=1 then    Result:='File="'+BasePath+'";';  if BaseType=2 then
#10 by leftmails
Сложновато:( А как использовать эти функции? Можно обойтись вот этой строкой? ResOpen := Ole1C.Initialize(Ole1C.*****, '/D'+ path1c + ' /N'+name+' /P'+password, '');
#11 by leftmails
[9] H A D G E H O G s К сожалению у меня не получается использовать эти функции:(
#12 by H A D G E H O G s
Бида
#13 by leftmails
даа.. большая:( Ну ладно, придется все свои действия по шагам описывать: создал глобальные функции от   H A D G E H O G s:  public Вставил в них содержимое, Ставлю глобально:Connection:OleVariant; Компилю ругается: [Error] Unit1.pas: Undeclared identifier: 'Connect' Ставлю глобально OleVariant Adlog заменил на showmessage, т.к. у меня не видет эту штуку:( Застрял на типе BaseType, в функции MakeConnectionString Ошибка:[Error] Unit1.pas: Undeclared identifier: 'BaseType'
#14 by H A D G E H O G s
BaseType - глобальная переменная, 1 - sql база, 2 - файловая
#15 by leftmails
Присвоил глобально BaseType:integer; BaseType:=1; (  H A D немножко перепутал, только наоборот. А я сам с тормозил не догадался:) спасибо ему:)) Прописал данные для BasePath:='D:1Сase(8.2)'; UserName:='Логин'; Добавляю кнопку на форму, и вношу в нее вызов функции CreateConnect; Компилирую, запускаю на сервере.. немного подвисает секунд на 5 и отходит. Как теперь правильно обратится к справочнику Сотрудники и вывести какую либо информацию? Я видел что обращались так: Ole1C.CreateObject('Справочники.Сотрудники'); Поэтому пытаюсь: Connection.CreateObject('Справочники.Сотрудники'); и получаю ошибка при тесте на сервере: Method 'CreateObject' not supported by automation object
#16 by leftmails
эх:( и как же чтонибуть вытащить?
#17 by jsmith
что за программа на дельфи где скриншоты
#18 by H A D G E H O G s
While Selection.Следующий=True do begin showmessage(Selection.Наименование); end;
#19 by H A D G E H O G s
Но это конечно дикий пример
#20 by leftmails
str:=Connection.string(Connection.Справочники.Сотрудники); выдало ошибку Method 'Сотрудники' not supported by automation object Я код копирую, к сожалению  не знаю как выложить скриншоты сюда. Если необходимо выложу сюда все что у меня на данный момент получилось
#21 by H A D G E H O G s
Справочника Сотрудники нет, либо нет прав
#22 by H A D G E H O G s
Хотя нет - просто нет такого справочника
#23 by leftmails
Selection:=Connection.Справочники.Сотрудники.Выбрать; While Selection.Следующий=True do begin Выдает ошибку Method 'Сотрудники' not supported by automation object Справочник этот  есть и права у пользователя полные. Сейчас попробовал загрузить Организации, получилось!!! Всем огромное спасибо,  в частности    H A D G E H O G s, за помощь в настройки!!! Если позволите буду писать тут по возникшим вопросам, дабы не плодить темы, новичкам вышеописанное подойдет для практики:)
#24 by jsmith
ты скрины сначала выложи
#25 by leftmails
#26 by leftmails
А как провести обратную манипуляцию по записи?? пробовал: Selection.Наименование:='77777'; Он мне не дал:(
#27 by badboychik
по моему в инете давно написали кучу статей с примерами для такого скрещивания ужа с ежом, я еще лет 5 назад тягал данные из 1С чисто ради прикола попробовать. Вроде даже в инете была готовая библиотека-обертка для делфи чтоб удобнее было обращатся к 1С
#28 by leftmails
[27] да было, но к сожалению 7,7 . Да и непонятные ошибки возникали:( А так мне H A D G E H O G s помог, теперь данные тягаю спокойно, выяснить как бы можно было записать...
#29 by badboychik
а почему делфи? На C# прикольнее писать, и отладчик удобнее
#30 by badboychik
устанавливать значение присвоением вроде не прокатит, надо что то типа SetProperty("наименование","77777")
#31 by leftmails
[29] мне на дельфи как то удобнее,превычнее, а на Си давно уже не делаю( [30] не получается с SetProperty, (ошибка)пишет что не знает эту штуку
#32 by badboychik
причем тут Си? Я на Делфи ХЕ2 пишу прогу курсак щас и отладчик мне не нравится, в C# я могу по ходу отладки дописать кусок кода, потом продолжить без перезапуска или вернуться на несколько строк назад и отлаживать уже измененный код, а тут пробел поставил и он требует перекомпиляции заново. Просматривать переменные тоже удобнее в VisualStudio, в делфи не все свойства объектов показывает нормально и Inspect какойто неудобный. Может когданибуть в ХЕ5 сделают нормальную эргономику, можно будет попробовать снова чтото написать...
#33 by leftmails
[32] это да
#34 by badboychik
ты че хочешь присвоить то? И куда? выполнил запрос и пытаешься в результат что то записать? Ничего не смущает??
#35 by leftmails
смущает:) Вот допустим я загрузил справочник контр агентов и мне нужно переименовать одного контр агента, как это сделать не пойму?
#36 by badboychik
смотри в отладчике какой тип у Selection и какие свойства/методы есть
#37 by leftmails
как это сделать?
#38 by badboychik
что сделать? отладчиком не умеешь пользоваться что ли я не помню как там правильно с 1С из делфи обращаться, найди примеры в инете и все
#39 by ice777
А в чем, простите, смысл прямых запросов из дельфи в 82?
#40 by leftmails
Думал создать свой справочник по планированию и вносить некоторые данные через свою программку, без входа в 1С.
#41 by badboychik
через много лет потомки скажут - "Так зарождалась 1С 9"
#42 by leftmails
)))
#43 by H A D G E H O G s
pfffff Че там? Загрузить справочник?, типа списка, как в рассово верной 8.2? Тут либо 1) Загрузить весь справочник в Tstringgrid и по таймеру обновлять (бред) 2) Написать самому класс - рассово верный аналог динамического списка в 1С - со всеми движухами onscroll-ами, и прочей мутотней. Жуть - ниасилил. 3) Юзать рассово верный ADO от самой дельфи - но только в случае ms sql базы от 1С.
#44 by H A D G E H O G s
Не верь льстивым речам c++снутых адептов, не сходи не Темную сторону, светлый рыцарь.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С