|
Проблема с Com-соединением | ☑ | ||
---|---|---|---|---|
0
Jokerman
27.11.13
✎
14:50
|
Здравствуйте уважаемые 1сники. Есть некая проблема, ума не приложу что нужно сделать, так как с такой системой в первый раз сталкиваюсь!
При старте система анализирует через com соединение имеется ли уже соединение у "входящего" пользователя и предлагает переподключиться. Все отрабатывает ок у большинства, но у некоторых пользователей, которые настроены не напрямую а через некий посредний сервак(таково требование безопасности, я не в курсе) com соединение не отрабатывает. Может нужно какой-то порт открыть, понимаю, что это дело админа: он разводит рукам, а решить то надо как-то! |
|||
1
Jokerman
27.11.13
✎
15:04
|
Да кстати, администрирование серверов тоже не работает.
|
|||
2
Jokerman
27.11.13
✎
17:34
|
Нет мыслей?
|
|||
3
Wobland
27.11.13
✎
17:42
|
чо?
|
|||
4
Wobland
27.11.13
✎
17:42
|
я слишком мало знаю о ком-соединении
|
|||
5
Jokerman
27.11.13
✎
18:05
|
(4) ничего сложного, вот код:
connector = Новый COMОбъект("V8.ComConnector"); server = connector.ConnectServer(ИмяСервера); |
|||
6
Hmster
27.11.13
✎
18:06
|
(5) а что пишет?
|
|||
7
Wobland
27.11.13
✎
18:09
|
(6) неверная строка с указанием класса
|
|||
8
Конфигуратор1с
27.11.13
✎
18:28
|
(5) а так connector = Новый COMОбъект("V82.ComConnector");
|
|||
9
Конфигуратор1с
27.11.13
✎
18:28
|
там вроде надо не 8 а 82 указать?
|
|||
10
Конфигуратор1с
27.11.13
✎
18:29
|
ну если 82, а не 81)
|
|||
11
Wobland
27.11.13
✎
18:48
|
да и строка соединения не внушает
|
|||
12
Jokerman
27.11.13
✎
18:48
|
(10) я же говорю, что проблема не в этом как тока сменился апишник, тогда все поехало :)
|
|||
13
Jokerman
27.11.13
✎
18:48
|
В исключение попадает
|
|||
14
Wobland
27.11.13
✎
18:48
|
да что строка, сам метод. хотя, кто знает, что у автора за В8 такой..
|
|||
15
Wobland
27.11.13
✎
18:49
|
(12) запокажи весь код
|
|||
16
Jokerman
27.11.13
✎
18:58
|
ПодстрокиСтрокиСоединения = РазложитьСтрокуВМассивПодстрок(СтрокаСоединенияИнформационнойБазы(),";");
Если ПодстрокиСтрокиСоединения.Количество()> 1 и Лев(ПодстрокиСтрокиСоединения[0], 5) = "Srvr=" и Лев(ПодстрокиСтрокиСоединения[1], 4) = "Ref=" Тогда ИмяСервера = СтрЗаменить(Сред(ПодстрокиСтрокиСоединения[0],7, СтрДлина(ПодстрокиСтрокиСоединения[0]) - 7),":",Символы.ПС); ИмяБазы = Сред(ПодстрокиСтрокиСоединения[1],6, СтрДлина(ПодстрокиСтрокиСоединения[1]) - 6); Порт = СтрПолучитьСтроку(ИмяСервера,2); Порт = Лев(Порт,СтрДлина(Порт)-1)+"0"; ИмяСервера = СтрПолучитьСтроку(ИмяСервера,1); Попытка Коннектор = Новый COMОбъект("V82.COMConnector"); Агент = Коннектор.ConnectAgent(ИмяСервера+?(Порт="0","",":"+Порт)); Кластеры = Агент.GetClusters(); Для каждого Кластер из Кластеры Цикл АдминистраторКластера = ""; ПарольКластера = ""; Агент.Authenticate(Кластер, АдминистраторКластера, ПарольКластера); Процессы = Агент.GetWorkingProcesses(Кластер); Для каждого Процесс из Процессы Цикл Порт = Процесс.MainPort; // теперь есть адрес и порт для подключения к рабочему процессу РабПроц = Коннектор.ConnectWorkingProcess(ИмяСервера + ":" + СтрЗаменить(Порт, Символы.НПП, "")); РабПроц.AddAuthentication("", ""); ИнформационнаяБаза = ""; Базы = Агент.GetInfoBases(Кластер); Для каждого База из Базы Цикл Если НРег(База.Name) = НРег(ИмяБазы) Тогда ИнформационнаяБаза = База; Прервать; КонецЕсли; КонецЦикла; Если ИнформационнаяБаза = "" Тогда продолжить;// база не найдена КонецЕсли; ОписаниеИБ = РабПроц.CreateInfoBaseInfo(); ОписаниеИБ.Name = ИмяБазы; СоединенияБазы = РабПроц.GetInfoBaseConnections(ОписаниеИБ); // Разорвать соединения клиентских приложений указанного номера соединения. Для Каждого Соединение Из СоединенияБазы Цикл Если Соединение.ConnID=НомерСоединения Тогда РабПроц.Disconnect(Соединение); Возврат Истина; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Иначе Сообщить("Завершение работы пользователей в файловом режиме не предусмотрено"); КонецЕсли; Возврат Ложь; |
|||
17
Wobland
27.11.13
✎
19:03
|
блин, сразу бы так
|
|||
18
Wobland
27.11.13
✎
19:04
|
теперь я без сарказма повторю (4) и уйду спать. утром почитаю ;)
|
|||
19
Jokerman
27.11.13
✎
19:12
|
(18) Спасибо за проявленный интерес!
|
|||
20
Wobland
28.11.13
✎
05:55
|
я агента ни разу в глаза не видел, но что говорит описание ошибки?
|
|||
21
Jokerman
28.11.13
✎
14:50
|
(20) что-то типа сервер не найден!
|
|||
22
Jokerman
28.11.13
✎
15:12
|
Лучше узнать кто-нибудь сталкивался с такой системой когда через промежуточный сервер к 1с подсоединяются?
|
|||
23
RomanFire
28.11.13
✎
15:16
|
(22) СОМ соединение идет к базе из удаленного сервера?Соединение обрывается просто скорее всего
|
|||
24
Jokerman
28.11.13
✎
15:20
|
(23) Почему, кто напрямую работает, то норм. Мне кажется дело в доступе, поэтому вопрос: если 1с ка пашет а администрование серверов нет, то что надо открыть, какой порт или доступ, потому что 100пудово позакрывали сначала все, потом открыли 1ссовский диапазон, но видимо не все!
|
|||
25
RomanFire
28.11.13
✎
15:21
|
(24) Я экспериментировал с таким, валилось СОМ.
|
|||
26
Jokerman
28.11.13
✎
15:38
|
(25) не удалось найти решение?
|
|||
27
Jokerman
28.11.13
✎
15:48
|
Сказать или открывайте все или функция будет недоступна
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |