Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.  [new]
AndrK
Member

Откуда: Златоуст
Сообщений: 419
Не знаю, в этот ли топик, или в 1C правильнее писать, напишу в обоих

Ситуация такая.
Из своей программы обращаюсь к 1С через COM-соединение (Interop.V83.dll )
Всё отработал, закрываю программу.
При закрытии ошибка
В просмотре событий вижу вот это

Имя сбойного приложения: Sync1C_KA.exe, версия: 1.0.0.0, отметка времени: 0x5c61aa11
Имя сбойного модуля: rtrsrvc.dll, версия: 8.3.13.1644, отметка времени 0x5bf207da
Код исключения: 0xc0000005
Смещение ошибки: 0x0002a322
Идентификатор сбойного процесса: 0x244c
Время запуска сбойного приложения: 0x01d4c22b43bf0865
Путь сбойного приложения: D:\C#\Tests\Test1C\SyncKA\bin\Release\Sync1C_KA.exe
Путь сбойного модуля: C:\Program Files\1cv8\8.3.13.1644\bin\rtrsrvc.dll
Код отчета: c2023675-2e1e-11e9-b330-2c41389d8fca
или это:

Имя сбойного приложения: Sync1C_KA.exe, версия: 1.0.0.0, отметка времени: 0x5c61aa11
Имя сбойного модуля: KERNELBASE.dll, версия: 6.1.7601.24335, отметка времени 0x5c267ec8
Код исключения: 0xc0000005
Смещение ошибки: 0x0000845d
Идентификатор сбойного процесса: 0x28a8
Время запуска сбойного приложения: 0x01d4c22df1443643
Путь сбойного приложения: D:\C#\Tests\Test1C\SyncKA\bin\Release\Sync1C_KA.exe
Путь сбойного модуля: C:\Windows\system32\KERNELBASE.dll
Код отчета: 37800b5a-2e21-11e9-b330-2c41389d8fca
При попытке отладки сбойного приложения, на обе эти библиотеки ругается.
На сервере 1C в списке соединений остаётся открытым соединение из программы.
Притом, когда я отлажтваюсь из Visual Studio - закрытие отрабатывает корректно.
Пробовал мониторить через ProcMon - ничего такого не нашёл

При попытке отладить процесс
Необработанное исключение по адресу 0x2700A322 (rtrsrvc.dll) в Sync1C_KA.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000000.

От имени администратора - запускал (хотя UAC - отключен) - не помогает

Куда посмотреть ещё?

        V83.COMConnector _Connector = null;

        public void Connect()
        {
            _Connector = new V83.COMConnector();
            this.Connection = _Connector.Connect(this.Get1CConnString());
        }

        public void Disconnect()
        {
            if (this.Connection != null)
                try { Marshal.Release(Marshal.GetIDispatchForObject(this.Connection)); this.Connection = null; }
                catch { }
            if (_Connector != null)
                try { Marshal.Release(Marshal.GetIDispatchForObject(_Connector)); _Connector = null; }
                catch { }
        }

Ошибка при закрытии хоть делаю Disconnect, хоть не делаю.
11 фев 19, 20:58    [21806853]     Ответить | Цитировать Сообщить модератору
 Re: Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145634
AndrK,

А что, из 1С можно обращаться к dll на NET?
13 фев 19, 20:24    [21808924]     Ответить | Цитировать Сообщить модератору
 Re: Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.  [new]
hVostt
Member

Откуда:
Сообщений: 15624
Cat2
AndrK,

А что, из 1С можно обращаться к dll на NET?


COM-же
16 фев 19, 00:55    [21811338]     Ответить | Цитировать Сообщить модератору
 Re: Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.  [new]
AndrK
Member

Откуда: Златоуст
Сообщений: 419
Cat2
AndrK,

А что, из 1С можно обращаться к dll на NET?

Может когда-то и будет Пока только через COM
Я в обратную сторону пробовал, из дотнетовского приложения к 1с обращаюсь. Косяк был в высвобождении COM объектов. В форуме 1с подсказали.
17 фев 19, 17:24    [21812109]     Ответить | Цитировать Сообщить модератору
 Re: Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 1893
Cat2
А что, из 1С можно обращаться к dll на NET?

Почему нет? Это называется CLR Hosting.
C .NET Framework 1.0 придуман, в 2.0 расширен. У Рихтера описан.

В 2008-м ещё проекты на Centura таким образом начал переводить на .NET.

Для 1С за минуту нагуглил готовую компоненту: Использование .NET сборок в 1С 8.2, 8.3 без установки и без регистрации в реестре.
17 фев 19, 17:51    [21812124]     Ответить | Цитировать Сообщить модератору
 Re: Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.  [new]
hVostt
Member

Откуда:
Сообщений: 15624
Дмитрий Мух,

ещё в MSSQL активно используется.

но таки для 1С я бы рассматривал COM.
17 фев 19, 22:57    [21812304]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить