| 
    
            
         
         | 
    
  | 
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  Зачем в ней создавать "сом-объекты"? Для каких целей вообще?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |