Похоже причина все та же, отсутствие обязательных параметров в обработчике.
Ошибка при вызове обработчика. System.IndexOutOfRangeException: Индекс находился вне границ массива.
в ScriptEngine.Machine.MachineInstance.SetCurrentFrameLocals(IValue[] argValues, ParameterDefinition[] parameters, VariablesFrame variables)
в ScriptEngine.Machine.MachineInstance.ExecuteMethod(IRunnable sdo, Int32 methodIndex, IValue[] arguments)
в ScriptEngine.Machine.Contexts.ScriptDrivenObject.CallAsProcedure(Int32 methodNumber, IValue[] arguments)
в TurboConf.HostApplication.NotificationContext.<>c__DisplayClass0_0.<CreateAction>b__0() в D:\Projects\TurboConf\TurboConf.HostApplication\NotificationContext.cs:строка 66
#1, ред. 02 мая 2024 13:38
И этой ошибки тоже раньше не было и код этот опять же давно не менял. Значит в ОСкрипт 1.9 параметр стал обязательным и нет обработки такой нештатной ситуации.
Я не знаю как Турбоконф технически зовет эти обработчики. Поэтому не могу создать заявку по этой проблеме в проекте ОСкрипт.
В своем скрипте в этом обработчике тоже добавлю бесполезный параметр.
tormozit изменил статус на Открыто
#2, ред. 03 мая 2024 00:38
(1) tormozit, вроде в языке 1С, параметры обработчика обязательно указывать.
#3, 03 мая 2024 00:36
(1) tormozit, еще раз, не параметр стал обязательным, а у тебя в обработчике не описан параметр.
#4, ред. 03 мая 2024 00:51
Вообще сейчас не уверен, что описание параметров обязательно в 1С, проверка не выдает ошибок, будет ли работать корректно обработчик в этом случае не знаю.
#5, 03 мая 2024 00:47
В целом почему возникает проблема понятно. Я вызываю обработчик сам, и не знаю описаны ли параметры обработчика в коде. Если там предусмотрен Отказ - я передам Отказ. Если его там нет OneScript правильно ругается.
Т.к. я делаю вызов через движок то и ошибка соответствующая, что Индекс находился вне границ массива.
Так что это даже не баг OneScript.
#6, ред. 30 мая 2024 08:40
(5) bolsun, Не согласен. Мне очевидно, что выброс технического (непонятного клиенту) исключения в часто возникающей ситуации - как минимум жесткое обращение с клиентом. Позови любого разработчика скрипта и покажи ему эту ошибку и спроси "Тебе понятно почему она возникла и что нужно сделать?". Уверен он ответит "Нет".
(2) bolsun, А ты попробуй и укажи обработчик с неверным числом параметров в платформе 1С. И посмотри как отреагирует платформа. Ее реакция будет понятной любому клиенту. Поэтому я считаю, что ОСкрипт должен делать так же.
#7, ред. 03 мая 2024 18:50
(6) tormozit,
Платформа никак не отреагировала, выполнила обработчик без параметра.
#8, 03 мая 2024 18:55
(7) bolsun, можешь показать тест? Я имел ввиду обработчик оповещения в методе
#9, 03 мая 2024 18:57
(7) bolsun, и даже "выполнила обработчик без параметра" тоже соответствует моему утверждению "Ее реакция будет понятной любому клиенту"
#10, 03 мая 2024 18:59
(9) tormozit, платформа далеко не идеальна по описанию ошибок.
"Ошибка формата потока" и т.д. чего стоят. Что там понятно клиенту?
#11, ред. 03 мая 2024 19:01
(8) tormozit, как по мне абсолютно непрозрачное поведение в этом случае, если заявлены параметры (для которых не указано что они необязательны, во всяком случае я не нашел.)
#12, 03 мая 2024 19:03
Еще лучше
#13, ред. 03 мая 2024 19:06
Сделал правильный тест аналогичного поведения платформы. Получил ошибку
Программный код теста
ОтважныйБобр.epf