Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 08:47

Разложить "Формулу"

Автор Apacher, 21 мая 2016, 19:59

0 Пользователей и 1 гость просматривают эту тему.

Apacher

Всем доброго дня/вечера/ночи/утра!

Требуется ваша помощь,
имеется формула, тип - Строка, выглядит "[П_01] + ([П_02] - [П_03])"
[] - открывающий и закрывающий тег показателя, в теге сам показатель, сумма показателей находится в таблице значений, собственно в чем суть, как рассчитать формулу имея все данные....я предполагаю разложить строку, отсеять все лишнее и оставить показатели в массиве, найти в таблице по ним суммы, сцепить, как потом согласно формуле все это рассчитать?
Чет головешка не варит, надеюсь на Вашу помощь....спасибо!

LexaK

ну это же элементарно Ватсон, в 1С есть такая команда как вычислить
Цитировать
Глобальный контекст (Global context)
Вычислить (Eval)
Синтаксис:

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

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

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

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

которая как раз вам подходит!

я так понимаю речь идет по построчном расчете таблицы значений, у которой есть колонки "П_01","П_02" и т.д.
конечно было бы хорошо чтобы вы немного изменили формирование вашей строки формулы, из примера догадаетесь как
а суть предложения такая,
перебираем строчки таблицы ,с вашими полями, формулой и полем-результатом

Для каждого лкСтр Из лкТаб Цикл

    //получаем формулу
    лкФормула = лкСтр.Формула;

    //преобразуем формулу
    лкФормула = СтрЗаменить(лкФормула,"[","лкСтр.");
    лкФормула = СтрЗаменить(лкФормула,"]","");

    //вычисляем и помещаем результ в таблицу
    лкСтр.Результат = Вычислить(лкФормула);
КонецЦикла;


это только как один из вариантов подобного расчета
если помогло нажмите: Спасибо!

Теги:

Похожие темы (2)

Рейтинг@Mail.ru

Поиск