"Если вдруг открылся люк, не пугайся, это глюк!" (с) Если что-то работает не так, вы нашли ошибку или опечатку в программе — вам в этот раздел
dkonakov
Используем внешнюю компоненту для оповещения пользователей 1с. Складской сотрудник делая изменения автоматически отправляет сообщения менеджерам.
И вот периодически 1с "падает" в момент отправки. Как бы нам посотрудничать, логи собрать, чтобы выявить эту проблему стабильности?
Аватара пользователя
Алексей Пикуров
Здравствуйте.

А какие логи может предоставить сама 1С, чтобы понять, что происходит?
dkonakov
В технологическом журнале пусто на этот счёт, а вот лог сервера.
Имя сбойного приложения: 1cv8.exe, версия: 8.3.6.2390, отметка времени: 0x562e7dff
Имя сбойного модуля: mychatvk.dll, версия: 0.0.0.0, отметка времени 0x00000000
Код исключения: 0xc0000005
Смещение ошибки: 0x00001a7c
Идентификатор сбойного процесса: 0x438
Время запуска сбойного приложения: 0x01d15cd0cce306c4
Путь сбойного приложения: C:\Program Files (x86)\1cv8\8.3.6.2390\bin\1cv8.exe
Путь сбойного модуля: C:\Program Files (x86)\1cv8\8.3.6.2390\bin\mychatvk.dll
Код отчета: 89c9d1d3-c8dd-11e5-922a-001517d7bc95

Может быть у меня старая компонента mychat.dll, сейчас заменил с последнего сервера.
Подскажите, x64 компонента - где ее прописывать и в чём смысл ее размещения. Сейчас используем mychat.dll - 32 битная. 1с установлена на 64 битном сервере, сервер чата на 32 битном сервере( Windows XP)
Аватара пользователя
Алексей Пикуров
Лог не сильно полезный :)

Покажите исходник того, как вы отправляете сообщение, что передаёте в компоненту.
Подскажите, x64 компонента - где ее прописывать и в чём смысл ее размещения. Сейчас используем mychat.dll - 32 битная. 1с установлена на 64 битном сервере, сервер чата на 32 битном сервере( Windows XP)


Не имеет значения, на каком сервере установлена 1С. Имеет значение она сама x32 или x64. Если программа x32, то и DLL должны быть ТОЛЬКО x32.

Компонент mychatvk.dll - x32. Значит, mychat.dll следует использовать только x32.
dkonakov
В общем модуле есть такая процедура:
Процедура ОтправитьСообщениеВЧат(ТекстСообщения,Знач Отправитель,Знач Получатель) Экспорт
Если ПустаяСтрока(Отправитель) ИЛИ ПустаяСтрока(Получатель) ТОгда
Возврат;
КонецЕсли;
Результат=ПодключитьВнешнююКомпоненту("mychatvk.dll","MyChat", ТипВнешнейКомпоненты.Native);
Если Результат Тогда
КомпонентMyChat = Новый ("AddIn.MyChat.MyChatClass");
Иначе Сообщить("Ошибка подключения mychatvk.dll!");
возврат;
КонецЕсли;
КомпонентMyChat.SendPrivateMessage("192.168.203.15", 2004, "godmodeon", Отправитель, Получатель, ТекстСообщения);
КонецПроцедуры


Соответственно, каждый раз, как нужно отправить сообщение - приходится подключать компоненту, это связано с клиент-серверным режимом 1с предприятия.
Аватара пользователя
Алексей Пикуров
Окей, я думаю, есть смысл залогировать в файл этапы работы с компонентой, чтобы видеть, на каком этапе падает 1С.

Код: Выделить всё
Процедура ОтправитьСообщениеВЧат(ТекстСообщения,Знач Отправитель,Знач Получатель) Экспорт
Если ПустаяСтрока(Отправитель) ИЛИ ПустаяСтрока(Получатель) ТОгда
Возврат;
КонецЕсли;   
--------------здесь
Результат=ПодключитьВнешнююКомпоненту("mychatvk.dll","MyChat", ТипВнешнейКомпоненты.Native);
--------------здесь
Если Результат Тогда
--------------здесь
КомпонентMyChat = Новый ("AddIn.MyChat.MyChatClass");
--------------здесь
Иначе Сообщить("Ошибка подключения mychatvk.dll!"); // сообщение в файл, залогировать
возврат;
КонецЕсли;
--------------здесь, с с текстом сообщения
КомпонентMyChat.SendPrivateMessage("192.168.203.15", 2004, "godmodeon", Отправитель, Получатель,
ТекстСообщения);
--------------здесь, успешное выполнение
КонецПроцедуры