Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Аварийное завершение 1С (http://forums.kuban.ru/f1040/avarijnoe_zavershenie_1s-6091801.html)

galiurust 15.09.2014 11:52

Аварийное завершение 1С
 
Во время выполнения 2-й строки из модуля:
---
V8 = Новый COMОбъект("V83.ComConnector");
Подключение = V8.Connect("Srvr="""+ИмяСервера+""";Ref="""+ИмяБазы+""";Usr=""" + ИмяПользователя + """;Pwd=""" + ПарольПользователя + """;");
---
происходит аварийное завершение 1С.
Модуль вызывается из самописной обработки, запущенной в базе с
конфигурацией Альфа-авто (ред. 5.0.11.06, платформа 8.2.19.106) при попытке
подключения к базе БП 3.0 (ред. 3.0.30.10, платформа 8.3.5.1119).
В чем может быть причина? Заранее благодарен

qweqwe123123 15.09.2014 12:13

в разных платформах клиента и сервера

qweqwe123123 15.09.2014 12:13

в смысле не только 8.2 и 8.3, а и релизы должны совпадать

galiurust 15.09.2014 12:24

"в смысле не только 8.2 и 8.3" - из 8.2 нельзя "достучаться" в 8.3?

qweqwe123123 15.09.2014 15:00

3-galiurust > есть клиент и есть сервер, 8.2 не есть клиент для сервера 8.3. так что да, не может.

qweqwe123123 15.09.2014 15:02

и вполне очевидно, что в 8.2 не достаточно функционала (методов, объектов и т.п.) для работы с БП 3.0 даже в файловом варианте. т.к. эта конфигарция пишется под 8.3

qweqwe123123 15.09.2014 15:03

в общем, надо тупо поставить на клиентов релиз платформы аналогичный серверному

qweqwe123123 15.09.2014 15:09

если не прав, думаю поправит кто-нить

galiurust 15.09.2014 15:38

Версия платформы клиента 1С автоматически совпадает с версией серверной платформы 1С. Поправьте меня, если я не прав

Reaper 15.09.2014 15:51

7-Зелёный тролль > да ты наркоман.
По поводу аварийного завершения работы есть ошибки с номерами:
20023329
10131499

Общи

Reaper 15.09.2014 15:52

Общий способ обхода при работе с версиями более ранними, чем 8.3.4.482 - запускать соединение с клиента.

oops! 15.09.2014 15:53

(7) не прав на счет функционала, т.к. по com-соединению ты подключаешься к "чему угодно" и используешь, в рамках ограничений com-соединения, функционал этого самого "чего угодно", т.к. код выполняется на стороне этого "чего угодно".
думаю, что не прав ты и на счет возможности подключения из файловой базы 8.2 к клиент-серверной 8.3, т.к., опять же, открываться клиент-серверная база будет под своей платформой, т.е. 8.3, на сервере 8.3.
(0) проблема здесь в другом месте, imho
нужно смотреть весь код обработки - как объявлены переменные, из какого места (из процедуры или функции) идет инициализации com-объекта и т.д. И, если у тебя это выгрузка данных из Альфа-Авто в Бухгалтерию, то, честно говоря, я бы именно из Бухгалтерии и инициировал этот обмен, т.е. из базы-приемника.

oops! 15.09.2014 16:02

(9)
10131499 исправлена в 8.3.3.687
20023329 исправлена в 8.3.4.476
Но твоя мысль мне нравится больше :)

oops! 15.09.2014 18:01

12+ На самом деле, о том, что БП3.0 используется в клиент-серверном варианте, в сабже не было сказано ни слова. Если это действительно так, то важно ещё знать, какой сервер (разрядность) и на какой ОС используется. В случае, если это Windows-сервер, то com-соединение будет доступно лишь в том случае, если соответствующая галочка была включена при установке сервера 1С:Предприятие, а вот в случае версии для Linux com-соединение вообще не будет доступно в принципе, в связи с отсутствием самого com-объекта в среде Linux, ибо com-объект является изобретением Microsoft.

qweqwe123123 16.09.2014 02:37

13-oops! > Подключение = V8.Connect([b]"Srvr="""+ИмяСервера+""";[/b]Ref="""+ИмяБаз ы+""";Usr=""" + ИмяПользователя + """;Pwd=""" + ПарольПользователя + """;");

qweqwe123123 16.09.2014 02:40

ок, скажите мне, откуда на компе с клиентом 8.2 берётся объект V83.ComConnector?
V8 = Новый COMОбъект("V83.ComConnector");

qweqwe123123 16.09.2014 04:30

но всё равно спасибо, не знал как минимум половины из отвеченного

oops! 16.09.2014 12:20

(14) обратил внимание на строку подключения уже после написания поста :)
(15) есть у меня ощущение, что ты путаешь COM и ADO.
В случае ADO мы через ODBC-драйвер цепляемся к базе напрямую из под текущего клиента (или из текущей базы/конфигурации/платформы), а в случае COM-соединения мы запускаем само приложение и работаем как бы из него, и, если это БД БП30 клиент-сервер, то клиент 8.3 на этом компе тоже д.б. установлен, и, перед подключением эту базу желательно хотя бы раз открыть в штатном режиме.

qweqwe123123 16.09.2014 21:24

17-oops! > скажем так, на данный момент в вопросах ADO, OLE, ODBC, COM и т.п. я не практик. поэтому сильно глубоко проинтуичить не могу и слегка путаюсь. но вроде бы не сильно.

VZ 16.09.2014 22:10

15-Зелёный тролль > Этот объект создает инсталлятор движка (MSI). Он не только вбумкивает каталог с движком, но и делает кучу вспомогательных файлов, а так же регистрирует COM-сервер в реестре.
Потому в дистрибутиве платформы обязательно присутствует 1CEnterprise 8.msi. Запускай именно его, а не setup.exe, если не хочешь поиметь танцы с СОМ-соединением ;)

qweqwe123123 16.09.2014 23:32

19-VZ > всё-таки зелёный я тролль ;-))
но setup.ini всё же видел


Текущее время: 11:14. Часовой пояс GMT +3.