Имя: Пароль:
1C
 
COM соединение, как с ним работать
0 kathleen
 
08.07.15
08:58
Пробую подключиться к другой базе 1с через com соединение. Примеры взяла из форума, но почему-то ругается при создании объекта
Connector = Новый COMОбъект("V8.ComConnector");
Ошибка "Недопустимая строка с указанием класса", в чем тут дело, чего не хватает?
1 zak555
 
08.07.15
08:59
1, 2, 3
2 Smile 8D
 
08.07.15
08:59
(0) Не хватает цифры. "V81.COMConnector" и т.д.
3 ДенисЧ
 
08.07.15
09:00
ком-коннектор от 8.3 не зарегистрирован. Переустанови платформу
4 zak555
 
08.07.15
09:01
(3) это слишком просто
Надо руками его регистрировать
5 ДенисЧ
 
08.07.15
09:04
(4) нам работать или трахаться? ))
6 Ненавижу 1С
 
гуру
08.07.15
09:05
(0) какая версия базы, к которой подключаешься?
7 zak555
 
08.07.15
09:06
(5) повышать уровень
8 kathleen
 
08.07.15
09:26
у меня последняя 8.2, единичку добавила - не помогло
9 kathleen
 
08.07.15
09:27
(6) что значит версия базы? Моя самописная конфа, на той же платформе 8.2
10 zak555
 
08.07.15
09:27
(8) ты 2 добавь
11 kathleen
 
08.07.15
09:28
(4)руками зарегистрировала
12 kathleen
 
08.07.15
09:29
(10) Проскочило!!! Спасибо)))
13 kathleen
 
08.07.15
09:33
А к базе почему-то не подключился
Попытка
        DataSource = Connector.Connect(СтрокаПодключения);
    Исключение
        ОписаниеОшибки = ОписаниеОшибки();
    КонецПопытки;
Падает в исключение, как найти причину
Может в строке подключения ошибка?
"File="D:\1с бд\Склад металла";Usr="Технолог";"
14 Ненавижу 1С
 
гуру
08.07.15
09:38
"File=""D:\1с бд\Склад металла"";Usr=""Технолог"";"

а пароль, пароль где?
15 kathleen
 
08.07.15
09:41
(14) я не ставила этому пользователю пароль
16 kathleen
 
08.07.15
09:48
к типовой подключается, а к моей нет, может там настройки надо какие-то в базе?
17 ukolabrother
 
08.07.15
09:48
(15) Pwd="" попробуй
18 ДенисЧ
 
08.07.15
09:49
(16) Правов на ком-соединение у пользователя нет
19 ukolabrother
 
08.07.15
09:50
20 kathleen
 
08.07.15
09:54
(19) все стоит
21 ДенисЧ
 
08.07.15
09:54
(20) а журнал регистрации что говорит?
22 kathleen
 
08.07.15
09:58
(21)странно, пишет ошибка аутентификации, в поле данные пишет моего пользователя операционной системы
23 ДенисЧ
 
08.07.15
09:58
(22) И всё?
24 Trotter
 
08.07.15
10:00
(22) ситуация:
Подключился - отключился в одну секунду ?
25 Ненавижу 1С
 
гуру
08.07.15
10:00
убери галку "Аутентификация ОС" у пользователя Технолог
26 kathleen
 
08.07.15
10:03
(24)сейчас добавила пользователю с паролем Администратор галку "Аутентификация ОС", и походу именно это и получается "Подключился - отключился в одну секунду "
27 Trotter
 
08.07.15
10:05
дело наверное в том, что процедура\функция отработала и com закрылся. Он не где не хранится воде как.
28 kathleen
 
08.07.15
10:19
https://img-fotki.yandex.ru/get/4419/137014894.6/0_152f06_6ee9a478_orig.png
Теперь вот такая ситуация
29 Ненавижу 1С
 
гуру
08.07.15
10:24
(28) см (25)
30 kathleen
 
08.07.15
10:33
(29) такая же ситуация, все равно завершается
31 Ненавижу 1С
 
гуру
08.07.15
10:35
(30) значит таки не хватает прав для COM
32 Trotter
 
08.07.15
10:41
Дайте код, чего вы ходите делать.
33 Trotter
 
08.07.15
10:44
34 kathleen
 
08.07.15
10:48
35 kathleen
 
08.07.15
10:50
(32)Функция СформироватьСтрокуПодключения()
    ЭтоСервер=Ложь;
    СтрокаПодключения = "";
    Если ЭтоСервер Тогда
       // СтрокаПодключения = СтрокаПодключения + "Srvr=" + Сервер + ";Ref=" + Имя + ";";
    Иначе
        СтрокаПодключения = СтрокаПодключения + "File=""" + КаталогБазыДанных + """;";
    КонецЕсли;
    СтрокаПодключения = СтрокаПодключения + ?(ПустаяСтрока(Пользователь), "", "Usr="""  + Пользователь + """;");
    СтрокаПодключения = СтрокаПодключения + ?(ПустаяСтрока(Пароль), "", "Pwd="""  + Пароль + """;");
    
    Возврат СтрокаПодключения;    
КонецФункции

Функция ОткрытьСоединение(ОписаниеОшибки) Экспорт
     СтрокаПодключения = СформироватьСтрокуПодключения();
        Connector = Новый COMОбъект("V82.ComConnector");
    
    Попытка
        DataSource = Connector.Connect(СтрокаПодключения);
    Исключение
        ОписаниеОшибки = ОписаниеОшибки();
    КонецПопытки;
    
    Если DataSource = Неопределено И ПустаяСтрока(ОписаниеОшибки) Тогда
        ОписаниеОшибки = "Неизвестная ошибка подключения к 1С:Предприятие 8.0";
    КонецЕсли;
    
    Если Не ПустаяСтрока(ОписаниеОшибки) Тогда
        DataSource = Неопределено;
        Connector  = Неопределено;
    КонецЕсли;
    
    Возврат DataSource;    
КонецФункции
Процедура ДействияФормыПрочитать(Кнопка)
    //**************************************************************
    ОписаниеОшибки="";
    v8=ОткрытьСоединение(ОписаниеОшибки);
36 Trotter
 
08.07.15
10:50
(34) читаем (33)
"модуля объекта обработки хранятся только на время серверного вызова. При последующем серверном вызове мы получим девственно чистые переменные. "

Внутри решение
37 Trotter
 
08.07.15
10:51
Вон, автор статьи посетил тему, сейчас поможет )
38 Остап Сулейманович
 
08.07.15
10:52
(33) Вот это вот "Мы поместим COMОбъект во ВременноеХранилище" на 8.3 уже не работает.
39 Trotter
 
08.07.15
10:54
(38) Ну вот ( как быть в 8.3 тогда ? Нужно срочно дописать статью! )
40 kathleen
 
08.07.15
10:54
Еще у меня в параметрах моей конфы не сохраняется настройка основной режим запуска, каждый раз ставится управляемое приложение, т.е если у пользователя указан режим авто, всегда запускается управляемое приложение, может еще в этом дело
41 kathleen
 
08.07.15
10:55
К зуп у меня нормально подключается, наверное надо как-то правильно базу настроить, но не могу понять как
42 Остап Сулейманович
 
08.07.15
10:56
(39) Не использовать КОМСоединение на сервере. Или использовать внутри модуля с "Повторное использование возвращаемых значений". Правда проблема дергания такого модуля не реже чем раз в 20 минут остается.