7.7. Вычисляем формулы

12.10.09

Разработка - Универсальные функции

Это не статья, а маленькая заметочка для не очень крутых разработчиков.

Как вычислить выражение в контексте документа.

 

Если от Вас постоянно требуют поменять в неком документе расчетную формулу, можно завести в глобальном модуле пару функций.

 

//________________________________________________________________________

Функция глВычислить(Конт,п_Выражение,п_Результат) Экспорт

            п_Результат = п_Выражение;

            Возврат "";

КонецФункции

//________________________________________________________________________

Функция глВычислитьВыражение(Конт,п_Выражение,п_СписокЗамен="") Экспорт

            ЧислоЗамены="";

            л_Выражение=п_Выражение;

            Если ПустоеЗначение(п_СписокЗамен)=1 Тогда

                        л_СписокЗамен=СоздатьОбъект("СписокЗначений");

                        л_СписокЗамен.ДобавитьЗначение("$","Конт.");

                        л_СписокЗамен.ДобавитьЗначение("#","Константа.");

            Иначе

                        л_СписокЗамен=п_СписокЗамен;

            КонецЕсли;

            л_НаЧто="";

            Для й=1 По СписокЗамен.РазмерСписка() Цикл

                        л_Что=СписокЗамен.ПолучитьЗначение(й,л_НаЧто);

                        л_Выражение=СтрЗаменить(л_Выражение,л_Что,л_НаЧто);

            КонецЦикла;

            л_Рез = "";

            Шаблон("[глВычислить(Конт,"+СОКРЛП(л_Выражение)+",л_Рез)]");

            Возврат (л_Рез);

КонецФункции

//________________________________________________________________________

 

 

И, например, периодическую константу, Формула.

 

Записываем в Формулу некий текст, например

 

?(($Качество<#Предел)и($Контрагент<>#НашБосс),0.8,1)*$Количество

 

А в модуль документа

 

УчетноеКоличество=глВычислитьВыражение(Контекст,Константа.Формула.Получить(ДатаДок));

 

 

Использование метасимволов (по умолчанию $ для атрибутов документа и # для констант) позволяет научить писать формулы даже некоторых пользователей.

 

Прием известный, конечно. Но не всем.

См. также

Библиотека процедур и функций для технологической платформы "1С: Предприятие 7.7"

Универсальные функции Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    719    9    user706545_kseg1971    0    

4

1С 7.7 и новый 1С:Контрагент

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    1868    zhenyat    7    

6

Печать таблицы значений в 1С 7.7 при отладке

Универсальные функции Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    4490    Zoltan_Black    11    

2

Установка принтера по умолчанию для 1С 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13333    4    alsen    3    

4

Формирование строки json в 1С: 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10163    malovandrey    5    

18

Как создать индикатор в 1С:Предприятии 7.7

Универсальные функции Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18702    2    HAMMER_59    6    

2
Оставьте свое сообщение