Проблема подключения из VB.NET к 1с v77 #441788


#0 by Nicolas_d
Есть непонятка, тренируюсь в подключении к базе 1с77 как к OLE серверу. Для тренировок взял васик из VS2008.Пишу следующий код Dim my1c as object Dim res в инициализации пишу пустые строки, чтобы самому выбрать базу и ввести пароль логин. После входа в базу выскакивает ошибка при отладке что свойство только для чтения не может быть записано, ну и соответственно прога стреляется. Тут же переношу этот же код на VB6, все отлично работает. Кто сталкивался, что это может быть?. В догонку, на VB6 подключился, запустил внешнюю обработку, она отобразилась видимой. Эта обработка сама запускает еще одну, но параметры в нее не передает, хотя при запуске этой же обработки из среды 1с все гут.
#1 by CODER082
а каталог базы ты непробовал указать ?
#2 by CODER082
Например "Initialize(V77.RMTrade, C:MyBase, "NO_SPLASH_SHOW")"
#3 by CODER082
Методы системы 1С:Предприятие как OLE Automation сервера Система 1С:Предприятие в качестве OLE Automation сервера предоставляет полный доступ к своему глобальному контексту (см. «Контекст выполнения программного модуля»). Поэтому объект OLE-сервер 1С:Предприятие в каче­стве своих методов может иметь: системные процедуры и функции, а также процедуры и функции глобального программного модуля, объявленные с клю­чевым словом Экспорт. Кроме того, OLE-сервер 1С:Предприятие имеет три дополнительных метода: Initialize, EvalExpr, ExecuteBatch. Initialize Выполнить инициализацию системы 1С:Предприятие. Синтаксис: Англоязычный синоним: Initialize Параметры: <Имя_Объекта> Идентификатор созданного OLE объекта 1С:Предприятие. RMTrade Добавочное ключевое слово. <КоманднаяСтрока> Строковое выражение — командная строка за­пуска 1С:Предприятие. <ПустаяСтрока> Строковое выражение. Параметр может содер­жать пустую строку или строковое значение "NO_SPLASH_SHOW" — отключить заставку при запуске системы 1С:Предприятие в режиме OLE Automation сервера. Возвращаемое значение: Значение логического типа: TRUE, если инициализация прошла удачно, или FALSE, если нет. Замечание: В OLE Automation TRUE и FALSE имеют соответственно значе­ния: -1 (минус единица) и 0. Описание: Метод Initialize выполняет инициализацию системы 1С:Предприятие. Пример: * здесь пример приводится на языке MS Visual Basic: Dim v7 As Object EvalExpr Вычислить выражение системы 1С:Предприятие. Синтаксис: EvalExpr(<СтрокаВыражения>) Англоязычный синоним: EvalExpr Параметры: <СтрокаВыражения> Строковое выражение — выражение, записанное на встроенном языке 1С:Предприятие. Возвращаемое значение: Результат вычисленного выражения. Описание: Метод EvalExpr вычисляет выражение, записанное в параметре <СтрокаВыражения> на встроенном языке 1С:Предприятие и возвращает ре­зультат вычисления. Результатом выражения может быть число, строка, дата или значение любого агрегатного типа данных. Результат с неопределенным типом данных преобразуются к строковому типу. Пример: * здесь пример приводится на языке MS Visual Basic: Dim v7 As Object Dim Товары As Object
#4 by skunk
ты не фиха не понял
#5 by DrZombi
Что именно не понял он? Автор А что ты далее делаешь с олешной базой? Как ты из нее выходишь? Покажи полный код и выдели то место где ошибка :)
#6 by CODER082
Здесь неуказан каталог базы данных Куда подключаемся то ?
#7 by Nicolas_d
Извиняюсь за задержку, решение нашлось в MSDN, оказывается в VB.NET  при позднем связывании нельзя передавать метод COM/OLE объекта в качестве параметра, его надо присвоить переменной. т.е. решение выглядит так Dim my1c as object dim varTrade и все замечательно работает. то что я в параметрах оставляю пустые строки, абсолютно не страшно, т.к. при вызове инициализации при пустых параметрах появляется диалог выбора базы и логина в нее
#8 by Nicolas_d
еще выяснилась интересная особенность при вызове внешней обработки из VB(пока не пробовал из 1с через OLE) при открытии формы, пока форма не закроется, метод является не исполненным. т.е. код внешней обработки, на форме выбирается документ, потом выполняется процедура При выполнении внешней обработки из 1с нормально открывается форма существующего документа, затем отрабатывается дополнительная внешняя обработка, куда передается контекст открытого документа. При открытии этого же внешнего отчета из VB также выбирается документ, выполняется процедура, но!!! пока открыта форма документа метод ОткрытьФормуМодально не выполняется, а ждет закрытия формы.
#9 by skunk
эсина сама спрашивает базу
#10 by skunk
плюс читай что все абсолютно тоже самое на шестом отрабатывает
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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