Имя: Пароль:
1C
1C 7.7
v7: Работа с 1с++ через COM
,
0 Franchiser
 
гуру
12.11.21
12:03
Нужно вызвать функцию гл. модуля из 7.7 через COM. Обращаюсь из 1С 8.3.
Функция используется объекты 1cpp.
При попытке создать объект 1cpp возникает ошибка:
"Неудачная попытка создания объекта (ODBCRecordset): 4238".
P.S. загрузка компоненты 1cpp  прописана.
В чем ошибка?
1 Ёпрст
 
12.11.21
13:01
(0) зачем ?
2 Ёпрст
 
12.11.21
13:02
и, сама по себе конфа работает, 7.7 которая ?
3 Franchiser
 
гуру
12.11.21
13:10
(0) нужно на выходе функции получить ТЗ, содержащую com-объекты 7.7.
Сама конфа работает.
4 МихаилМ
 
12.11.21
13:12
(0)формэкс используется ?
5 Franchiser
 
гуру
12.11.21
13:18
(4) нет, в глобальном модуле не используется
6 Franchiser
 
гуру
12.11.21
13:20
самое интересное: загрузитьвнешнююкомпоненту выполняется успешно - в исключение не попадает.
7 vladmenleo
 
12.11.21
13:34
(6) а где грузишь внешнюю компоненту? Она должна грузится в 7.7
вот пример рабочего кода
ПриложениеV7 = ПолучитьCOMОбъект("","V77S.Application");
    
    СтрокаИнициализации=" enterprise /DE:\PVK_SQL /N" + Пользователь + " /P" + Пароль;
    Сообщить("Выгрузка идет в "+СтрокаИнициализации);
    
    ПоказыватьЗаставку = "NO_SPLASH_SHOW";
    Результат = ПриложениеV7.Initialize(ПриложениеV7.RMTrade, СтрокаИнициализации, ПоказыватьЗаставку);
    
    Если НЕ Результат Тогда
        Предупреждение(    "Не удалось подключится к информационной базе ""1С:7.7""!
        |Проверьте корректность ввода имени пользователя и пароля!",, "Ошибка соединения");
        Возврат;        
    КонецЕсли;
    
    Подразделения = ПриложениеV7.CreateObject("Справочник.Подразделения");
    ПС77 = ПриложениеV7.CreateObject("Счет.Основной");
    
    
    Выборка = ПриложениеV7.CreateObject("ODBCRecordset");
    //
    ТекстЗапроса = "
    |    select
    |        СпрСубъектыУчета.ID as [Элемент $Справочник.СубъектыУчета],
    |        СпрСубъектыУчета.descr as Наименование,
    |        РасчетныеСчета.ID as [РасчетныqСчет $Справочник.РасчетныеСчета]
    |    from $Справочник.СубъектыУчета СпрСубъектыУчета (nolock)
    |   left join  $Справочник.РасчетныеСчета РасчетныеСчета (nolock)
    |   on СпрСубъектыУчета.SP1394 = РасчетныеСчета.id        
    |    order by СпрСубъектыУчета.descr
    |";
Организации = Выборка.ВыполнитьИнструкцию(ТекстЗапроса);
8 Franchiser
 
гуру
12.11.21
13:41
(7) все варианты перепробовал:
При начале работы , в конце гл. модуля, в самой функции.
Подключение к 7.7 производится в серверной процедуре тонкий клиент.
9 Ёпрст
 
12.11.21
13:43
1cpp какой хоть версии в клюшках ?
10 МихаилМ
 
12.11.21
13:58
что пишет odbc tracer ?
11 Franchiser
 
гуру
12.11.21
14:02
Причину нашел: на тестовом сервере где выполнялось подключение в каталоге программы 7.7 не было dll 1cpp
12 Franchiser
 
гуру
12.11.21
14:03
Теперь другой вопрос: можно или  из 1С8 передать COM-объект в гл. процедуру 1с 7.7 ?
Ругается на тип параметра, сейчас пока переделал на передачу значениестрокивнутр()
13 Franchiser
 
гуру
12.11.21
14:05
Вот такой вызов не работает:
СписокД = ComОбъект77.МояФункц(ДокСуперСекретный.ТекущийДокумент())
14 Franchiser
 
гуру
12.11.21
14:10
Так, похоже и вторая проблема решилась сама по себе)
15 Franchiser
 
гуру
12.11.21
14:14
Где находится "odbc tracer" ?
никогда не использовал.
16 МихаилМ
 
12.11.21
14:17
17 Ёпрст
 
12.11.21
15:32
(15)
в 1cpp Запрос.Отладка(1), более чем достаточно
18 Franchiser
 
гуру
12.11.21
19:50
(17) у меня нет запроса
19 Ёпрст
 
12.11.21
21:12
(18) как это нету, если ты создаешь ODBCRecordset
20 Franchiser
 
гуру
13.11.21
01:15
(19) ладно , ты прав, но до запуска запроса же дело не доходит.
21 Franchiser
 
гуру
13.11.21
01:16
(19) валилось на создание объекта
22 Franchiser
 
гуру
13.11.21
01:18
И все же не ясно почему загрузитьвнешнююкомпоненту("1cpp.dll") отрабатывало успешно и не сваливались в исключение при отсутствующей компоненте.
23 Salimbek
 
13.11.21
09:19
(22) Потому что загрузитьвнешнююкомпоненту возвращает 0 или 1 в зависимости от того, загрузилась компонента или нет.
24 zinzillya
 
13.11.21
11:56
25 Franchiser
 
гуру
13.11.21
14:28
(23) понял
26 big
 
13.11.21
18:26
Надо все-таки подробнее рассказать что же хочется сделать в 7.7  Зачем в ней создавать "сом-объекты"? Для каких целей вообще?
2 + 2 = 3.9999999999999999999999999999999...