Ошибка во внешней обработке. v83unpack упал

Евгений М. Закрыто

Внешняя обработка: тестПадениеКлиентаВИДиндексы.epf
Открываем модуль объекта (можно и модуль формы).
Пытаемся, например, написать "Справочники".
Вываливается ошибка:

Далее после закрытие этого окна начинают валится сообщения-ошибки ТК при каждой попытке показать подсказку:

Команда "Сообщить о проблеме" также вываливает ошибку:

ScriptEngine.Machine.ExternalSystemException: {Модуль D:\Progs\TurboConf-63\apps\8552\RDT.os / Ошибка в строке: 3806 / Внешнее исключение (System.Runtime.InteropServices.COMException): {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(20227)}: Значение не является значением объектного типа (Метаданные)}
ПолеТекстаПрограммы.УстановитьТекст(ТекстМодуля, Ложь,, Ложь, СжатоеИмяМодуля,, ПозицияВТексте + 1, ПозицияВТексте + 1 + СтрДлина(ВыделенныйТекст));
---> System.Runtime.InteropServices.COMException: {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(20227)}: Значение не является значением объектного типа (Метаданные)
в ScriptEngine.Machine.Contexts.UnmanagedCOMWrapperContext.CallAsProcedure(Int32 methodNumber, IValue[] arguments)
в ScriptEngine.Machine.MachineInstance.ResolveMethodProc(Int32 arg)
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
--- Конец трассировки внутреннего стека исключений ---
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
в ScriptEngine.Machine.MachineInstance.ExecuteCode()
в ScriptEngine.Machine.MachineInstance.ExecuteMethod(IRunnable sdo, Int32 methodIndex, IValue[] arguments)
в ScriptEngine.Machine.Contexts.ScriptDrivenObject.CallAsFunction(Int32 methodNumber, IValue[] arguments, IValue& retValue)
в TurboConf.HostApplication.HostApplicationForm.ExecuteScript(Script script, Keys ctrl, Keys alt, Keys shift, ScreenForm statusForm, String entryPoint, ScriptOptions options, IVariable[] parameters)

Адаптер версии 1.90
После перезапуска приложения ИР удалось сделать "сообщить о проблеме", но в процессе тоже выпала v83unpack
Ссылка скрыта

Комментарии

tormozit
#1, 27 января 2025 19:17

Ошибку воспроизвести не удалось. У меня в модулях этой внешней обработки нормально работает анализатор кода. Пробовал даже специально в ее модуле внеси ошибку компиляции и записать. Сработала сделанная летом защита
Ошибка создания редактируемой внешней обработки на клиенте с родным модулем объекта. Поэтому создана и закэширована ее копия без модуля. Для отключения кэширования окружите модуль инструкцией "#Если Сервер Тогда" и выполните сброс памятного кэша

Вторичную ошибку в коде ИР исправлю. А вот по первичной пока у меня есть только слабые догадки.
Проверь на другом компьютере.
tormozit изменил статус на Открыто


tormozit
#2, ред. 27 января 2025 19:27

Возможно проблема в конфликтных версиях dll файлов, на которые опирается v8unpack
Пробуй установить все последние версии наборов стандартных библиотек VC++
https://learn.microsoft.com/ru-ru/cpp/windows/latest-supported-vc-redist?view=msvc-170
Создал связанную заявку в проекте v8unpack https://github.com/e8tools/v8unpack/issues/87


tormozit
#3, 27 января 2025 19:23

Проверь в консоли кода ИР, работает ли генерация внешней обработки.


Евгений М.
#4, 28 января 2025 08:05

(3) tormozit, с другими обработками вроде бы нет такой проблемы.
Можно ли как-то получить командную строку, которую исполняет ИР для распаковки обработки? Я попробую её запустить напрямую


tormozit
#5, ред. 28 января 2025 08:28

см. ОбработкаОбъект.ирКлсПолеТекстаПрограммы.УстановитьТекст со строки
КаталогРаспаковки = ПолучитьИмяВременногоФайла()
Но отладить ты не сможешь малыми усилиями. Поэтому в консоли кода пытайся изолировано сделать тест, заменив мПлатформа на ирПлатформа


Евгений М.
#6, ред. 28 января 2025 10:10

(5) tormozit, нашел как минимум такое
во временном файле для анпака значится следующее:

C:\Users\МартыненковЕВ\AppData\Local\Temp\v8_9D49_15.tmp>v8unpack.exe -unpack  "D:\tmp\26 я платформа. Падение\тестПадениеКлиентаВИДиндексы.epf" .\ 
UnpackToFolder. Input file not found!

C:\Users\МартыненковЕВ\AppData\Local\Temp\v8_9D49_15.tmp>FOR %I IN (*.data) DO v8unpack.exe -undeflate %I %~nI.data.und 

C:\Users\МартыненковЕВ\AppData\Local\Temp\v8_9D49_15.tmp>FOR %I IN (*.und) DO v8unpack.exe -unpack    %I %~nI.und.unp 

А сам файл обработки находится в каталоге
"d:\tmp\26-я платформа. Падение"

т.е. в батнике, который создал ИР пропущено тире (-) после "26", что приводит к ошибке "UnpackToFolder. Input file not found!".
Возможно это и является причиной.

P.S.
Перенос обработки в другой каталог (без дефиса в пути) и перезагрузка ТК решило проблему


tormozit
#7, 28 января 2025 20:08

Исправлено в 1.91


Евгений М.
#8, 28 января 2025 21:31

Работает. Спасибо.
Евгений М. изменил статус на Закрыто


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера