Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вылетает 1С 8.2 после выполнения метода внешней компоненты

Вылетает 1С 8.2 после выполнения метода внешней компоненты
Я
   demon_1c
 
23.03.19 - 14:56
Возможно, подобное уже обсуждалось, но внятного решения я что-то нигде не нашел...

Итак: есть 1С платформа 8.2.19.116, толстый клиент, обычное приложение. В ИБ запускается обработка, использующая в своей работе внешнюю компоненту. Компонента успешно подключается, далее вызывается ее AddIn, который также успешно выполняет свои методы... а затем 1С вылетает с ошибкой аварийного завершения :( Вот с такой сигнатурой:

Имя события проблемы:    BEX
  Имя приложения:    1cv8.exe
  Версия приложения:    8.2.19.116
  Отметка времени приложения:    543d2a96
  Имя модуля с ошибкой:    StackHash_0a9e
  Версия модуля с ошибкой:    0.0.0.0
  Отметка времени модуля с ошибкой:    00000000
  Смещение исключения:    00000000
  Код исключения:    c0000005
  Данные исключения:    00000008
  Версия ОС:    6.1.7601.2.1.0.768.3
  Код языка:    1049
  Дополнительные сведения 1:    0a9e
  Дополнительные сведения 2:    0a9e372d3b4ad19135b953a78882e789
  Дополнительные сведения 3:    0a9e
  Дополнительные сведения 4:    0a9e372d3b4ad19135b953a78882e789

На 7.7 эта же компонента работает нормально, безо всяких сбоев. Компонента самописная, если что, на Delphi.
Никаких авастов, касперских, нодов32, тимвьюверов и прочего софта, который потенциально может быть виновником подобной проблемы, на компьютере не установлено.
ВК была успешно зарегистрирована в Windows.
1С запускается с правами администратора.
Кэш 1С также был почищен, не помогло.

Как решить данную проблему?
 
 
   Garykom
 
1 - 23.03.19 - 14:59
Другую версию платформы попробовать или переписать ВК.
Скорее всего в ней некая ошибка которая была не критична для 77 но дает вылет в 8
   Garykom
 
2 - 23.03.19 - 15:03
Ну и виндовую DEP отключи, а может проблема что Win10 с штатным встроенным антивирусом
   Garykom
 
3 - 23.03.19 - 15:03
Короче на другом компе в другой заведомо чистой операционке проверь, можно в виртуалке если нет компа другого.
   demon_1c
 
4 - 23.03.19 - 15:12
(1) Сейчас попробовал сделать то же самое на 8.3 в УФ - такая же ошибка.
Переписать ВК - каким образом?

(2) Винда седьмая.
   Garykom
 
5 - 23.03.19 - 15:26
Исходники ВК есть?
   Garykom
 
6 - 23.03.19 - 15:27
И проверь на другом компе/операционке, возможно проблема у тебя в системе.
   demon_1c
 
7 - 23.03.19 - 15:28
(5) Есть.
   demon_1c
 
8 - 23.03.19 - 15:40
(6) На 12-й винде, например, она вообще не загружается, но там, думаю, дело в правах...
   Garykom
 
9 - 23.03.19 - 15:51
Короче если есть исходники то смотря какая для чего ВК есть разные варианты решения.
Точнее что она использует.

Внешние события обратно в 1С вызывает? Если нет то все просто и банально.
   demon_1c
 
10 - 23.03.19 - 16:09
>> Внешние события обратно в 1С вызывает?

Вроде нет. Во всяком случае, в процедуру "ВнешнееСобытие", объявленную в той же обработке, отладка не заходит. После успешного выполнения метода ВК - сразу вылет 1С.

Что и где конкретно в ВК нужно переписать? Пните в нужном направлении, плиз...
   Garykom
 
11 - 23.03.19 - 16:28
Переписать c COM на NativeAPI по 
http://catalog.mista.ru/public/88060/
http://catalog.mista.ru/public/81644/
С учетом разрядности 1С требуемой.

Ну или искать в чем ошибки по другим шаблонам COM ВК
Книга знаний: Написание внешних компонент для 1С (Delphi)
http://catalog.mista.ru/public/15527/
Обратить внимание на комменты "Закомментируй строчку помеченную (!)"
   dmpl
 
12 - 23.03.19 - 16:36
(0) В 8.1 исключения в компоненте перехватывались. В 8.2 валится платформа. Проверяйте компоненту на предмет необработанных исключений.
   demon_1c
 
13 - 23.03.19 - 16:46
(12) Провел еще кое-какие проверки, в ходе которых выяснилось, что вылет 1С происходит уже в момент создания AddIn'а ВК через конструктор "Новый("...")". Если же просто подключить ВК, и никаких действий с ней далее не предпринимать, то можно спокойно продолжать работать, но... когда будешь выходить из 1С, выход произойдет с той же ошибкой аварийного завершения.
   dmpl
 
14 - 23.03.19 - 16:51
(13) В 8.1 запустите с обработкой ошибок - может что внятное скажет. Но судя по коду ошибки c0000005 - это обращение по адресу памяти, по которому обращение запрещено. Чаще всего это неверный или неинициализированный указатель.
   demon_1c
 
15 - 23.03.19 - 18:53
(11) >> Переписать c COM на NativeAPI по

во, классно! Теперь не вылетает. Спасибо вам, добрый человек! :)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.