|
Вызвать функцию по имени из внешней обработки
| ☑ |
0
Фигурнов
19.03.18
✎
08:42
|
Как правильно реализовать вызов внешней экспортной функции по имени (ОФ)?
"Выполнить" не работает:
во=ВнешниеОбработки.Создать(ПутьИлиИмяФайлаОбработки);
Выполнить("сообщить(типзнч(во))"); //Даёт:Внешняя обработка объект: ПриНачалеРаботыСистемы
Выполнить("во+"+".а()"); //Даёт ошибку {(1,3)}: Неопознанный оператор
во<<?>>+.а()
|
|
1
Mankubus
19.03.18
✎
08:45
|
Выполнить("во"+".а()");
|
|
2
Фигурнов
19.03.18
✎
08:47
|
То есть можно описать в коде вызова во.а(),
но как сделать вызов, если мы заранее не знаем имя
функции "а()" и получаем её через параметр
Функция а(ПараметрыВызова) Экспорт
//Выполняем полезные действия
Возврат ПолученноеЗначение;
КонецФункции
|
|
3
Фигурнов
19.03.18
✎
08:49
|
(1) в коде (0) опечатка, да
тем не менее бе неё
{(1)}: Метод объекта не обнаружен (а)
во.а()
|
|
4
Фигурнов
19.03.18
✎
08:56
|
(1) Все верно, перезагрузить конфигуратор надо было
|
|
5
Lexey_
19.03.18
✎
09:09
|
(2) "но как сделать вызов, если мы заранее не знаем имя
функции "а()""
заменить "а()" на параметр
|
|
6
Franchiser
гуру
19.03.18
✎
09:29
|
Во.а() просто работает?
|
|
7
Фигурнов
19.03.18
✎
10:01
|
(5) Как именно?
(6) Да. (0) в варианте (1) работает. Проблема была в том, что исправленный вариант внешней обработки не виделся клиентом 1с до перезапуска конфигуратора, что показалось странным.
|
|
8
Lexey_
19.03.18
✎
10:02
|
(7) просто замени одно на другое
|
|
9
Фигурнов
19.03.18
✎
10:09
|
(8) не ясно, что подразумевается под параметром, впрочем задача решена в (1), и, должно быть, красивей не выйдет
|
|
10
Lexey_
19.03.18
✎
10:26
|
(9) " не ясно, что подразумевается под параметром", ну в (2) же что-то подразумевается: "если мы заранее не знаем имя
функции "а()" и получаем её через параметр"
|
|