powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
12 сообщений из 12, страница 1 из 1
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772509
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, в этот ли топик, или в WinForms правильнее писать, напишу в обоих

Ситуация такая.
Из своей программы обращаюсь к 1С через COM-соединение (Interop.V83.dll )
Всё отработал, закрываю программу.
При закрытии ошибка
В просмотре событий вижу вот это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Имя сбойного приложения: 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
или это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Имя сбойного приложения: 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 - отключен) - не помогает

Куда посмотреть ещё?
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772644
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если просто соединение и ничего не делаете в 1с, сразу закрываете тоже ошибка? (Если нет - то после какого действия в 1с идет ошибка?)
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772675
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
namespace TestConnect
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string server = "sql01";
                string database = "DocCorp";
                string user = "Администратор";
                string password = "password";
                StringBuilder sb = new StringBuilder(100);
                sb.Append(@"Srvr=""" + server + @""";");
                sb.Append(@"Ref=""" + database + @""";");
                sb.Append(@"Usr=""" + user + @""";");
                sb.Append(@"pwd=""" + password + @""";");
                string connStr = sb.ToString();

                V83.COMConnector connector = null;
                object connection = null;

                Console.WriteLine("Create connector");

                connector = new V83.COMConnector();

                Console.WriteLine("Connector created, connecting");

                connection = connector.Connect(connStr);

                Console.WriteLine("Connected");

                Console.WriteLine("Releasing connection");
                if (connection != null)
                {
                    Marshal.Release(Marshal.GetIDispatchForObject(connection));
                    Console.WriteLine("Released, set Null");
                    connection = null;
                    Console.WriteLine("Connection released");
                }

                Console.WriteLine("Releasing connector");
                if (connector != null)
                {
                    Marshal.Release(Marshal.GetIDispatchForObject(connector));
                    Console.WriteLine("Released, set Null");
                    connector = null;
                    Console.WriteLine("Connector released");
                }

                Console.ReadKey();
                
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: {0}", ex.Message);
                Console.ReadKey();
            }
        }
    }
}



доходит до Console.ReadKey();
и после нажатия вылетает
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772694
МодальноеОкно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в закрытие коннектора и соединения попадает?
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772715
МодальноеОкно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
база 1с кстати нормальная? "тестирование и исправление проходит"?
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772817
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МодальноеОкно,

База нормальная, 1С с ней работает без вопросов,
на другую базу такой же эффект.

Попробовал поиграться с небольшой базой в файловом и серверном режиме.
В файловом - всё проходит, в серверном - при завершении - ошибка.
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772824
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МодальноеОкнов закрытие коннектора и соединения попадает?
Не пропадают.

Если-бы при закрытии просто ошибка вылетала, то пережил-бы,
всё-равно временный "костыль" для задачи это пишу. Небольшую интеграцию
между разными системами пытаюсь сделать :-)
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772944
МодальноеОкно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Marshal.Release(Marshal.GetIDispatchForObject(connection));

а если поменять на

Marshal.ReleaseComObject(

?
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #39772956
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МодальноеОкноMarshal.Release(Marshal.GetIDispatchForObject(connection));

а если поменять на

Marshal.ReleaseComObject(

?

Спасибо, оно самое. Помогло!
Осталось вспомнить, зачем я пытался таким "извращённым" способом
делать Release :-)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #40077624
Двоичник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в С# совсем не шарю, но очень хочу научиться
Делаю так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
            string Srvr = @"""myserv""";
            string Ref = @"""mydb""";
            string user = @"""myuser""";
            string pas = @"""mypwd""";
            aConnectionString1C = "Srvr=" + Srvr + ";Ref=" + Ref + ";Usr=" + user + ";Pwd=" + pas + ";";


            V83.COMConnector connector = null;
            object connection = null;

            Console.WriteLine("Create connector");

            connector = new V83.COMConnector();

            Console.WriteLine("Connector created, connecting");

            connection = connector.Connect(aConnectionString1C);

            Console.WriteLine("Connected");



Но нет соединения.
Валится на строке:
Код: c#
1.
            connection = connector.Connect(aConnectionString1C);



Пишет:авторCreate connector
Connector created, connecting

Необработанное исключение: System.Runtime.InteropServices.COMException: В результате вызова компонента COM возвращена ошибка в формате HRESULT E_FAIL.
в V83.IV8COMConnector3.Connect(String connectString)
в myprog.Program.ConnectAndFill(String aConnectionString1C, String aConnectionStringSQL, String aTableName) в С:\mydir\myprog\Program.cs:строка 104
в myprog.Program.Main() в mydir\myprog\Program.cs:строка 140

B вот чего ей надо, не понимаю.



повторить
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
string server = "sql01";
                string database = "DocCorp";
                string user = "Администратор";
                string password = "password";
                StringBuilder sb = new StringBuilder(100);
                sb.Append(@"Srvr=""" + server + @""";");
                sb.Append(@"Ref=""" + database + @""";");
                sb.Append(@"Usr=""" + user + @""";");
                sb.Append(@"pwd=""" + password + @""";");
                string connStr = sb.ToString();


не получилось, ругается на StringBuilder, якоб нет такого типа или пространства имен.

Помогите, пожалуйста починить подключение к 1С, спасибо огромное
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #40077733
Dorosh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нехило бы прикрутить обработку ошибок. Мало ли на что оно ругается. Ловите исключение и разбирайте.
...
Рейтинг: 0 / 0
Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
    #40078233
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Двоичник
не получилось, ругается на StringBuilder, якоб нет такого типа или пространства имен.


отсюда не видно - заголовка модуля нет, может вы Uses System.Text не добавили в используемые пространства имен
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Работа с 1С из сторонней программы через COM соединение. Ошибка при закрытии.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]