Имя: Пароль:
1C
1С v8
Выполнение программного кода из под "Предприятия"
0 mzelensky
 
16.01.12
10:30
Доброго всем!

Как-то встречал подобный функционал в обработках, но сейчас кинулся и найти не могу. Нужно иметь возможность в режиме "Предприятия" написать некий программный код и выполнить его! Як это сделать?!

Например:

Если 20*5 > 0 тогда 1+4 Иначе 19+1 КонецЕсли;

В результате должны получить на выходе число 5!
1 Rie
 
16.01.12
10:31
(0) См. оператор Выполнить и функцию Вычислить
2 golden-pack
 
16.01.12
10:31
Выполнить()
3 Rie
 
16.01.12
10:32
+(1) Но такой код, как в (0) - невозможно. Синтаксис не тот. Для этого не оператор Если, а функция ? имеется.
4 Cube
 
16.01.12
10:32
Табло?
5 Ковычки
 
16.01.12
10:32
еще один стал жертвой ДенисЧ
6 Shurjk
 
16.01.12
10:33
Тв не поверишь - прям так и пиши - Выполнить()
7 1Сергей
 
16.01.12
10:33
Заедь^W напиши в Табло ?((20*5)>0,1+4,19+1)
8 mzelensky
 
16.01.12
10:34
(2) я пробовал "Результат=Вычислить(Формула);" - не прокатило, дает ошибку
9 golden-pack
 
16.01.12
10:34
(3) врун
10 asady
 
16.01.12
10:34
(1)+ если только арифметика можно ещё запрос заюзать
11 mzelensky
 
16.01.12
10:35
(5) это к чему?!
12 golden-pack
 
16.01.12
10:35
Выполнить("Икс=0; Если 20*5 > 0 тогда Икс=1+4; Иначе Икс=19+1; КонецЕсли; Сообщить(Икс);");
13 mzelensky
 
16.01.12
10:35
Там в основном будут сложные условия (вложенные возможно) и арифметические операции над числами
14 golden-pack
 
16.01.12
10:36
(13)

Икс =0;
Выполнить("Если 20*5 > 0 тогда Икс=1+4; Иначе Икс=19+1; КонецЕсли;");
Сообщить(""+ИКс);
15 mzelensky
 
16.01.12
10:37
(14) угу, ща попробую!
16 Rie
 
16.01.12
10:46
(9) И что ты получил, написав
Выполнить("Если 20*5 > 0 тогда 1+4 Иначе 19+1 КонецЕсли;");
и
Вычислить("Если 20*5 > 0 тогда 1+4 Иначе 19+1 КонецЕсли")
17 golden-pack
 
16.01.12
10:52
(16) Аналогично ничего не получишь от Выполнить("?(20*5 > 0,1+4 ,19+1)");
18 mzelensky
 
16.01.12
10:53
Что-то ошибка идет! Написал

Формала= "Результат=0; Если 1000>500 тогда Результат=1; ИНАЧЕ Результат=0; КонецЕСЛИ;"
Рез=Выполнить(Формала);

пишет ошибка выражения
19 Ковычки
 
16.01.12
10:54
а чем (7) не устраивает

?(1=1,1,0)
20 Ковычки
 
16.01.12
10:55
Сообщить(?(1000>0,1,0));
21 golden-pack
 
16.01.12
10:55
Результат=0;
Формула= "Результат=0; Если 1000>500 тогда Результат=1; ИНАЧЕ Результат=0; КонецЕСЛИ;"
Выполнить(Формула);

Сообщить(Результат);
22 mzelensky
 
16.01.12
10:56
(19) мне не нужно в ТАБЛО, мне нужно программно формулу вычислить!
23 golden-pack
 
16.01.12
10:57
Результат=0;
Формула= "Результат=0; Если 1000>500 тогда Результат=1; ИНАЧЕ Результат=0; КонецЕСЛИ";
Выполнить(Формула);

Сообщить(Результат);
24 golden-pack
 
16.01.12
10:58
Блин 20 постов чтобы понять синтаксис Выполнить() ..........((((
25 Ковычки
 
16.01.12
10:58
(22) и чо ?
26 Ковычки
 
16.01.12
10:58
Результат=?(1000>0,1,0);
27 Griffin
 
16.01.12
11:01
Открой обработку Универсальный подбор  и обработка объектов, настрой так, чтобы на закладке найденный объекты был 1 объект, на закладке обработки создай новый элемент в произвольном алгоритме, запихни:
Результат=0; Если 1000>500 тогда Результат=1; ИНАЧЕ Результат=0; КонецЕСЛИ;

Сообщить(Результат);

Жми Выполнить
28 Rie
 
16.01.12
11:06
(17) Зато получу от Вычислить("?(20*5 > 0,1+4 ,19+1)")