|
Вылетает 1С 8.2 после выполнения метода внешней компоненты | ☑ | ||
|---|---|---|---|---|
|
0
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С также был почищен, не помогло. Как решить данную проблему? |
|||
|
1
Garykom
гуру
23.03.19
✎
14:59
|
Другую версию платформы попробовать или переписать ВК.
Скорее всего в ней некая ошибка которая была не критична для 77 но дает вылет в 8 |
|||
|
2
Garykom
гуру
23.03.19
✎
15:03
|
Ну и виндовую DEP отключи, а может проблема что Win10 с штатным встроенным антивирусом
|
|||
|
3
Garykom
гуру
23.03.19
✎
15:03
|
Короче на другом компе в другой заведомо чистой операционке проверь, можно в виртуалке если нет компа другого.
|
|||
|
4
demon_1c
23.03.19
✎
15:12
|
(1) Сейчас попробовал сделать то же самое на 8.3 в УФ - такая же ошибка.
Переписать ВК - каким образом? (2) Винда седьмая. |
|||
|
5
Garykom
гуру
23.03.19
✎
15:26
|
Исходники ВК есть?
|
|||
|
6
Garykom
гуру
23.03.19
✎
15:27
|
И проверь на другом компе/операционке, возможно проблема у тебя в системе.
|
|||
|
7
demon_1c
23.03.19
✎
15:28
|
(5) Есть.
|
|||
|
8
demon_1c
23.03.19
✎
15:40
|
(6) На 12-й винде, например, она вообще не загружается, но там, думаю, дело в правах...
|
|||
|
9
Garykom
гуру
23.03.19
✎
15:51
|
Короче если есть исходники то смотря какая для чего ВК есть разные варианты решения.
Точнее что она использует. Внешние события обратно в 1С вызывает? Если нет то все просто и банально. |
|||
|
10
demon_1c
23.03.19
✎
16:09
|
>> Внешние события обратно в 1С вызывает?
Вроде нет. Во всяком случае, в процедуру "ВнешнееСобытие", объявленную в той же обработке, отладка не заходит. После успешного выполнения метода ВК - сразу вылет 1С. Что и где конкретно в ВК нужно переписать? Пните в нужном направлении, плиз... |
|||
|
11
Garykom
гуру
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/ Обратить внимание на комменты "Закомментируй строчку помеченную (!)" |
|||
|
12
dmpl
23.03.19
✎
16:36
|
(0) В 8.1 исключения в компоненте перехватывались. В 8.2 валится платформа. Проверяйте компоненту на предмет необработанных исключений.
|
|||
|
13
demon_1c
23.03.19
✎
16:46
|
(12) Провел еще кое-какие проверки, в ходе которых выяснилось, что вылет 1С происходит уже в момент создания AddIn'а ВК через конструктор "Новый("...")". Если же просто подключить ВК, и никаких действий с ней далее не предпринимать, то можно спокойно продолжать работать, но... когда будешь выходить из 1С, выход произойдет с той же ошибкой аварийного завершения.
|
|||
|
14
dmpl
23.03.19
✎
16:51
|
(13) В 8.1 запустите с обработкой ошибок - может что внятное скажет. Но судя по коду ошибки c0000005 - это обращение по адресу памяти, по которому обращение запрещено. Чаще всего это неверный или неинициализированный указатель.
|
|||
|
15
demon_1c
23.03.19
✎
18:53
|
(11) >> Переписать c COM на NativeAPI по
во, классно! Теперь не вылетает. Спасибо вам, добрый человек! :) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |