Имя: Пароль:
1C
1С v8
Как передать параметры в процедуру выполнить?
,
0 EvgeniuXP
 
02.10.15
18:08
хочу что-то типа такого:

МодульТекста = "Справочники.МойСправочник.ОбновитьСправочник(Парам1, Парам2)";

Выполнить(МодульТекста);


ну и в модуле менеджера "МойСправочник" есть процедура ОбновитьСправочник с двумя параметрами и эти параметры чем-то заполнены, когда вызывается "Выполнить" выше.
1 Fragster
 
гуру
02.10.15
18:13
Парам1 = "ЫЫЫ"
Парам2 = "ёёёёёёёёёёёооооооо"
МодульТекста = "НикогдаТакНеДелай(Парам1, Парам2)";
Выполнить(МодульТекста);
2 EvgeniuXP
 
02.10.15
18:16
я понимаю что никогда не делай - но надо сделать :)
3 EvgeniuXP
 
02.10.15
18:20
гы, работает, а на работе не работало
4 EvgeniuXP
 
02.10.15
20:57
Процедура НикогдаТакНеДелай(Парам1, Парам2) Экспорт
    Сообщить("" + 1 + Парам1.Неопределено + Парам2);
КонецПроцедуры

и 1С повис :) ну нафиг, даже ошибку не сообщает...
5 ВРедная
 
02.10.15
21:24
Что за тип у параметра 1, что у него есть свойство Неопределено?
6 EvgeniuXP
 
02.10.15
21:28
(5) сделал специально, чтоб посмотреть как ошибка будет отрабатываться, если в той процедуре случайно сделаю ошибку - как система будет на это реагировать.
7 Fragster
 
гуру
02.10.15
22:05
точку останова убери ;)
8 EvgeniuXP
 
02.10.15
22:20
(7) нет точки останова

еще прикол: фоновое задание в журнале регистрации пишет что типа такая процедура успешно завершена :)
9 EvgeniuXP
 
02.10.15
22:21
хотя срабатывает ОписаниеОшибки() :) которую заношу в ЖР.
10 EvgeniuXP
 
02.10.15
23:25
а вот так совсем шикарно :)
всем спасибо!

Парам = Новый Массив;
Парам.Добавить(Справочники.Справочник.ПустаяСсылка());
Парам.Добавить(Перечисления.Перечисление.МоеПеречисление);

МодульТекста = "НикогдаТакНеДелай(Парам[0], Парам[1])";

Выполнить(МодульТекста);
11 Garykom
 
гуру
02.10.15
23:36
(10) Попытка применить полиморфизм в 1С ?
Ошибка? Это не ошибка, это системная функция.