Имя: Пароль:
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
Как пример - есть справочник "фоновые_задания" - туда код исполняемый, а на фоновое задание повешен этот справочник. Имеем выполнение в фоновом задании любого алгоритма (не одного, а сколько надо), не ковыряя пофигуратор. Так же настройку расписания прикрутили. короче есть варианты использования
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn