Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
1. Ошибка "Компонент Активикс не может создать объект" на строке
Set objV7 = CreateObject("V77.Application")
На компе, где запускается этот код, 1С не установлена. Можно как-то обойтись без ее установки?
2. Подскажите команды, с помощью которых можно запустить в 1С определенную процедуру? Второй строкой должно быть что-то типа
objV7.Initialize(objV7.RMTrade, "путь к файлу 1С", "NO_SPLASH_SHOW")
а как обратиться к процедуре, например, MyProcedure?
2 мар 07, 13:00    [3853300]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Честно говоря логичнее из 1С дергать библиотеку ADO или еще что.
2 мар 07, 13:02    [3853312]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
Ну а все-таки? Может и логичнее, но мне поставили такую задачу: надо вызывать из 1С процедуру и передавать в нее параметры.
2 мар 07, 13:25    [3853481]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
Genacvale
1. Ошибка "Компонент Активикс не может создать объект" на строке
Set objV7 = CreateObject("V77.Application")
На компе, где запускается этот код, 1С не установлена. Можно как-то обойтись без ее установки?
и кто там у вас, на голенькой машине, будет этим самым V77.Application -ом?

Почитайте чо-нить про OLE
автор
Программирование объектов (ранее программирование OLE ) является свойством модели COM (Component Object Model), стандартной технологии, которая используется приложениями, чтобы предоставить свои объекты в распоряжение средств разработки, макроязыков и других приложений, поддерживающих программирование объектов....


Genacvale
2. Подскажите команды, с помощью которых можно запустить в 1С определенную процедуру? Второй строкой должно быть что-то типа
objV7.Initialize(objV7.RMTrade, "путь к файлу 1С", "NO_SPLASH_SHOW")
а как обратиться к процедуре, например, MyProcedure?
после того, как вы поднимете из акса objV7 (т.е. реально - запустите аксом сеанс приложения 1С, на который получите ссылку), вы сможете управлять им из акса, используя практически синтаксис 1С, т.е. вопрос о исполнении процедур 1С - это вопрос об их исполнении из 1С приложения.


Для простого чтения данных из 1С нет необходимости поднимать 1С приложение. Достаточно подключиться к данным. Проблема обычно в том, чтобы понять структуру (соответствие полей таблиц полям интерфейса и, тем самым - полям документов и т.п.) Или в логически непротиворечивой вставке данных в 1С. Именно чтобы по возможности избежать не адекватных действий при вставке данных в 1С и предлагается пользоваться собственными методами 1С
2 мар 07, 13:33    [3853551]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
А нельзя ли только какую-нибудь dll из 1С зарегистрировать на компе, но не устанавливать саму программу?
2 мар 07, 14:12    [3853935]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
klen_
Member

Откуда:
Сообщений: 2404
zLibEng.dll
2 мар 07, 15:08    [3854464]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
bubucha
Member

Откуда:
Сообщений: 5642
klen_

zLibEng.dll

И че, работает ? А что там с хаспом?
2 мар 07, 15:24    [3854607]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
не, не работает
Скопировал zLibEng.dll в System32, зарегистрировал, но все-равно на строке
Set objV7 = CreateObject("V77.Application")
вылезает та же ошибка.
2 мар 07, 16:17    [3855072]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
iiiiiiiiiiiiiiiiiiiiiii
Guest
Genacvale
не, не работает
Скопировал zLibEng.dll в System32, зарегистрировал, но все-равно на строке
Set objV7 = CreateObject("V77.Application")
вылезает та же ошибка.


если полазить по сетке - узнаете, что это скорее всего 1с-овая библиотека архивирования.
2 мар 07, 16:37    [3855232]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
надругались, значит
Я так понял, что мне надо 1С-овский аналог Аксессного файла msacc.olb, чтоб заработала строка
Set objV7 = CreateObject("V77.Application")
так что-ли?
2 мар 07, 16:42    [3855288]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
klen_
Member

Откуда:
Сообщений: 2404
Dim z As ZLENGINELib.zlibEngine
Set z = New zlibEngine
z.pkZip "команда для упаковки"
по крайне мере зарегистрировалась
2 мар 07, 16:49    [3855339]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
klen_
Member

Откуда:
Сообщений: 2404
    Dim v7 As Object
    Dim tovar As Object
    Dim result As Variant
    Set v7 = CreateObject("V77.Application")
   result = v7.Initialize(v7.RMTrade, "/DC:\1C_зарплата /M/NфамилияПользователя", "")
    Set tovar = v7.evalexpr("СоздатьОбъект(""Справочник.Товары"")")
вот содрал из учебника
но у меня 1С установлен
работает дико медленно
а отдельные DLL-ки это не 1С
2 мар 07, 16:57    [3855438]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
Здорово! Ну а мне-то это как-то поможет?
2 мар 07, 16:58    [3855441]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
Мой предыдущий пост - к твоему предыдущему
а отдельные DLL-ки это не 1С
т.е. нет у 1С файла типа msacc.olb(object library)? Блин!!!
2 мар 07, 17:02    [3855460]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
поставьте 1С - он ить сам себе уш точно буратинка
2 мар 07, 17:04    [3855473]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
Не хотелось бы, только из-за одной строки кода тянуть на комп этот "продукт". Где бы еще спросить? Что такой файл должен быть - сто пудов.
2 мар 07, 17:10    [3855518]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
Гляньте чего накопал:
http://i-gent.infostart.ru/
Разработка в 1С, без установки самой 1С. Может кому интересно?
2 мар 07, 18:31    [3856118]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
bubucha
Member

Откуда:
Сообщений: 5642
Genacvale

Гляньте чего накопал:
http://i-gent.infostart.ru/
Разработка в 1С, без установки самой 1С. Может кому интересно?

Ссылка не открывается, но если это опенконф, то вроде оно как альтернатива конфигуратору, а не как альтернативный движек 1с. Честно говоря, вызывает большое сомнение, что существует решение для реализации вашего 1-го пункта. Вам уже написали о способах "внедрится" в 1с, без самой 1с (с учетом возможных последствий). Имхо. работать с объектами 1с, лучьше из самой 1с (хотя бы из-за того, что от вас не требуется доскональное знание структуры хранения данных 1с). Даже когда вы разберетесь с этой структурой и реализуете прямую работу, всегда есть вероятность , что с выпуском новой версии той, или иной конфигурации 1с, они поменяют структуру таблиц и вам надо будет переписывать свой код. Ну конечно все зависит от вашей задачи, если скажем просто добавить (прочитать) значение в(из) одноуровневого справочника, то да, вероятность "попасть потом" уменьшается.

ЗЫ если , так найдете альтернативный движек (очень сомниваюсь), дайте плиз ссылку, интерестно ради расширения кругозора, не более того
3 мар 07, 15:02    [3858071]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
Поставил 1С, а как сделать теперь сделать ранее связывание? На что надо ссылку установить?
5 мар 07, 11:16    [3862071]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
Вот пытаюсь запустить:
Dim objV7 As Object, asd As String
Set objV7 = CreateObject("V77.Application")
result = objV7.Initialize(objV7.RMTrade, "/D" + "\1c_bases$\BuhBases\upr_01" + " /ntransfer /p1234", "NO_SPLASH_SHOW")
asd = objV7.EvalExpr("DatasIn('abc', '123', '--')")
На последней строке получаю ошибку:
Run-time error '2'
1 DatasIn <<?>> ('abc', "123", "--")
Функция не обнаружена (DatasIn)

На стороне 1с вроде все нормально.
А чему значение result должно быть равно? У меня оно всегда False.
5 мар 07, 15:36    [3864385]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
Genacvale
Guest
Попробовал заменить последнюю строку:
Set rez = objV7.evalexpr("СоздатьОбъект(""Справочник.Товары"")")
Ошибка: "Неудачная попытка создания объекта (Справочник.Товары):и 0", но уже не ругается, что процедуры нет.
5 мар 07, 16:04    [3864627]     Ответить | Цитировать Сообщить модератору
 Re: Управление 1С из Аксеса. Два вопроса.  [new]
bubucha
Member

Откуда:
Сообщений: 5642
Genacvale

Попробовал заменить последнюю строку:
Set rez = objV7.evalexpr("СоздатьОбъект(""Справочник.Товары"")")
Ошибка: "Неудачная попытка создания объекта (Справочник.Товары):и 0", но уже не ругается, что процедуры нет.

Скорее всего, в вашей 1с просто нет справочника Товары
Set tovar = v7.evalexpr("СоздатьОбъект(""Справочник.Номенклатура"")")
tovar.ВыбратьЭлементы
While tovar.ПолучитьЭлемент() > 0
    Debug.Print tovar.ТекущийЭлемент.Код & ", " & tovar.ТекущийЭлемент.Наименование
Wend
5 мар 07, 17:51    [3865499]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить