Имя: Пароль:
1C
1С v8
Зачем Вычислить?
0 Abmo
 
21.01.13
07:55
А = Вычислить("500 + 500*20/100");

А = 500 + 500*20/100; Так ведь тоже работает
1 Живой Ископаемый
 
21.01.13
07:56
в этом контексте не надо, нужно в другом. Если не хватает фантазии придумать в каком - это уже другой вопрос
2 Abmo
 
21.01.13
07:58
(1) Это пример из СП. Реалистичней примеров небыло
3 Kavar
 
21.01.13
07:59
Если бы авто хотя бы для приличия заглянул в СП, не задавал бы таких глупых вопросов.
4 Kavar
 
21.01.13
08:00
Вычислить (Eval)
Синтаксис:

Вычислить(<Выражение>)
Параметры:

<Выражение> (обязательный)

Тип: Строка.
Выражение, которое требуется вычислить.
Возвращаемое значение:

Результат вычисления выражения. Тип возвращаемого значения зависит от типа выражения.
Описание:

Вычисляет переданное выражение. С помощью метода можно вычислять математические и логические выражения, а также операции конкатенации. Подробнее про выражения см. раздел "Выражения языка".

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

А = Вычислить("500 + 500*20/100");
А = Вычислить("Истина и Ложь");
А = Вычислить("""Иван"" + "" "" + ""Иванович""");



(2) вот пример из справки встроенной.
5 Живой Ископаемый
 
21.01.13
08:01
2(2) Лучи сочувствия
6 Wist
 
21.01.13
08:04
(0) В первую очередь, для выполнения динамически создаваемого кода. По примеру того, как во многих типовых решениях в зависимости от контекста собирается текст запроса, передается в объект типа Запрос и выполняется.
7 Defender aka LINN
 
21.01.13
08:07
(0) Особенно когда "500 + 500*20/100" вводит пользователь в поле ввода, ага.
8 aka AMIGO
 
21.01.13
08:34
...
Если РезультатПолучен Тогда
ФормулаРасчета = ИсходныеДанные.ФормулаРасчета; //Любой из Видов Расчетов, предусмотренных в УПП
Попытка
Результат = Вычислить(ФормулаРасчета);
...

И всё это счастье получено сложным умственным приемом - Поиск строки "Вычислить" в УПП 1.2...
Основная конфигурация ОбщийМодуль.ПроведениеРасчетов.Модуль(1228, 18) : Результат = Вычислить(ФормулаРасчета);

В этом модуле рассчитываются данные для зарплаты, предусмотренные в Видах Расчетов (ВР) по зарплате. В каждом ВР есть формула, составленная из параметров, соединенных с помощью 4 арифметических действий, остается подставить в параметры нужные значения и подсунуть формулу в оператор "Вычислить(...)"
9 SeraFim
 
21.01.13
08:45
(0) В блоке расчета зарплаты пользователь может сам произвольную формулу задать.
Её "Вычислить", и готово)
10 aka AMIGO
 
21.01.13
08:46
кстати, там же, в ВР можно увидеть эти формулы
например, в ВР "Оклад по часам" формула:
Результат = Тарифная ставка месячная / Норма времени за месяц в часах * Отработанное время в часах

Все параметры в формуле - предустановленные, предусмотренные в конфе.

Есть возможность ваять свои ВР в справочник, но параметры надо впихивать те, что известны. Если захочется применить свой - вас ждет жюткий обломс..
11 Maxus43
 
21.01.13
09:15
формулы - это частность применения. Целые алгоритмы с его помощью можно фигачить, в т.ч. запросы и т.д.
12 Maxus43
 
21.01.13
09:20
Как пример - есть справочник "фоновые_задания" - туда код исполняемый, а на фоновое задание повешен этот справочник. Имеем выполнение в фоновом задании любого алгоритма (не одного, а сколько надо), не ковыряя пофигуратор. Так же настройку расписания прикрутили. короче есть варианты использования
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.