Функции в шаблонах документов: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
 
(не показано 5 промежуточных версий 1 участника)
Строка 23: Строка 23:
*Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая Enter. Если нужен перенос — добавьте последовательность "\n".  
*Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая Enter. Если нужен перенос — добавьте последовательность "\n".  
Например:
Например:
*Без переноса строки
:*Без переноса строки
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>
:<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>
%%%ЕСЛИ({{Аналитика.Калькуляция услуг.Услуга}}=""; ""; {{Аналитика.Калькуляция услуг.Услуга}} + " - " + {{Аналитика.Калькуляция услуг.Кол-во}} + "  " + {{Аналитика.Калькуляция услуг."Ед. Изм."}} + " (" + {{Аналитика.Калькуляция услуг.Комментарий}} + ")" )%%%
%%%ЕСЛИ({{Аналитика.Калькуляция услуг.Услуга}}=""; ""; {{Аналитика.Калькуляция услуг.Услуга}} + " - " + {{Аналитика.Калькуляция услуг.Кол-во}} + "  " + {{Аналитика.Калькуляция услуг."Ед. Изм."}} + " (" + {{Аналитика.Калькуляция услуг.Комментарий}} + ")" )%%%
</nowiki>
</nowiki>
</div>
</div>


*C переносом строки
:*C переносом строки
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
:<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%%ЕСЛИ({{Аналитика.Калькуляция услуг.Услуга}}=""; ""; {{Аналитика.Калькуляция услуг.Услуга}} + " - " + {{Аналитика.Калькуляция услуг.Кол-во}} + "  " + {{Аналитика.Калькуляция услуг."Ед. Изм."}} + "</nowiki><span style="color:red;">\n</span> <nowiki>(" + {{Аналитика.Калькуляция услуг.Комментарий}} + ")" )%%%</nowiki></div>
<nowiki>%%%ЕСЛИ({{Аналитика.Калькуляция услуг.Услуга}}=""; ""; {{Аналитика.Калькуляция услуг.Услуга}} + " - " + {{Аналитика.Калькуляция услуг.Кол-во}} + "  " + {{Аналитика.Калькуляция услуг."Ед. Изм."}} + "</nowiki><span style="color:red;">\n</span> <nowiki>(" + {{Аналитика.Калькуляция услуг.Комментарий}} + ")" )%%%</nowiki>
</div>
 


*Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом.
*Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом.
Строка 127: Строка 124:
Например, чтобы отобразить в документе число прописью в мужском роде, используйте такую функцию:
Например, чтобы отобразить в документе число прописью в мужском роде, используйте такую функцию:
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>ЧИСЛОПРОПИСЬЮ(СУММА({{Аналитика.Услуга.Стоимость}}*{{Аналитика.Услуга.Количество}}); 2; "ru")</nowiki></div>
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>ЧИСЛОПРОПИСЬЮ(СУММА({{Аналитика.Услуга.Стоимость}}*{{Аналитика.Услуга.Количество}}); 2; "ru")</nowiki></div>


== Функция ДРОБНАЯЧАСТЬ ==
== Функция ДРОБНАЯЧАСТЬ ==

Текущая версия от 13:52, 11 сентября 2024

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


Формулы

Для того, чтобы добавить формулу в документ, используйте следующий синтаксис: %%%ФОРМУЛА%%%.


ФОРМУЛА — это выражение для вычисления значения поля, такое же как и в вычисляемом поле.

Пример:

%%%ТЕКСТ({{Аналитика.Услуга.Количество}}*{{Аналитика.Услуга.Стоимость}};".2f")%%%


В примере выше информация из аналитики «Услуга» с помощью соответствующих переменных попадает в формулу. Значения перемножаются, и вычисляется значение общей суммы конкретной услуги или товара. А с помощью функции ТЕКСТ() полученное значение форматируется в удобочитаемый вид в виде строки текста.

Важно

  • Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая Enter. Если нужен перенос — добавьте последовательность "\n".

Например:

  • Без переноса строки
%%%ЕСЛИ({{Аналитика.Калькуляция услуг.Услуга}}=""; ""; {{Аналитика.Калькуляция услуг.Услуга}} + " - " + {{Аналитика.Калькуляция услуг.Кол-во}} + " " + {{Аналитика.Калькуляция услуг."Ед. Изм."}} + " (" + {{Аналитика.Калькуляция услуг.Комментарий}} + ")" )%%%
  • C переносом строки
%%%ЕСЛИ({{Аналитика.Калькуляция услуг.Услуга}}=""; ""; {{Аналитика.Калькуляция услуг.Услуга}} + " - " + {{Аналитика.Калькуляция услуг.Кол-во}} + " " + {{Аналитика.Калькуляция услуг."Ед. Изм."}} + "\n (" + {{Аналитика.Калькуляция услуг.Комментарий}} + ")" )%%%
  • Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом.
  • Если результат формулы необходимо выделить жирным, то применяйте форматирование сразу ко всей формуле вместе с процентами.


Функции

В формуле шаблона документов можно использовать все стандартные функции ПланФикса. При этом есть 4 функции, которые работают только в шаблонах документов Word и текстовых блоках:


Функция СУММА

СУММА() — это функция, которая суммирует все значения, полученные при вычислении формулы. Она применяется для каждого элемента множащейся переменной.

Например, у вас есть аналитика «Услуга», и вы хотите в документе посчитать полную стоимость всех услуг. Для этого в документе укажите функцию:

СУММА({{Аналитика.Услуга.Стоимость}})


Для того, чтобы получить полную стоимость оказанных услуг, которые могут предоставляться несколько раз, необходимо стоимость умножить на количество, затем всё суммировать. В итоге в документе укажите такую формулу:

СУММА({{Аналитика.Услуга.Стоимость}}*{{Аналитика.Услуга.Количество}})


Обратите внимание, функция СУММА() может содержать внутри себя любую формулу, состоящую из функций.


Функция МНОЖЕСТВЕННОЕЧИСЛО

Используется для склонения окончания слова в зависимости от числа, которое указано перед ним в шаблоне документа.


Формат:

МНОЖЕСТВЕННОЕЧИСЛО(число; "текст1"; "текст2"; "текст3")


В зависимости от вычисленного значения числа функция подберет один из трёх параметров. Параметры необходимо указать в строгой последовательности, которая подбирается по алгоритму.

Например, вам необходимо просклонять слово «рубль». Действуйте по следующему алгоритму.

Сначала просклоняйте нужное слово с числами 1 и 21:

  • 1 рубль
  • 21 рубль

Значит первым параметром в функции вместо "текст1" надо указать слово «рубль».


Затем просклоняйте то же слово с числами 2 и 123:

  • 2 рубля
  • 123 рубля

Значит вторым параметром в функции вместо "текст2" надо указать слово «рубля».


Потом просклоняйте нужное слово с числами 25 и 111:

  • 25 рублей
  • 111 рублей

Значит третьим параметром в функции вместо "текст3" будет слово «рублей».


В итоге в документе можно указать такую функцию МНОЖЕСТВЕННОЕЧИСЛО():

МНОЖЕСТВЕННОЕЧИСЛО(СУММА({{Аналитика.Услуга.Стоимость}}*{{Аналитика.Услуга.Количество}}); "рубль"; "рубля"; "рублей")


Функция ЧИСЛОПРОПИСЬЮ

Функция, результатом которой будет число прописью. Для прописи берётся только целая часть числа.


Формат:

ЧИСЛОПРОПИСЬЮ(число; СпособВывода; "язык")


Где:

  • число — число или формула
  • СпособВывода:
    • 0 — обычный вывод
    • 1 — прописью в женском роде
    • 2 — прописью в мужском роде
    • 3 — прописью в среднем роде
    • 4 — прописью с заглавной в женском роде
    • 5 — прописью с заглавной в мужском роде
    • 6 — прописью с заглавной в среднем роде
  • язык
    • ""(пусто) — используется язык пользователя, который формирует документ
    • "ru" — русский
    • "en" — английский
    • "uk" — украинский


Например, чтобы отобразить в документе число прописью в мужском роде, используйте такую функцию:

ЧИСЛОПРОПИСЬЮ(СУММА({{Аналитика.Услуга.Стоимость}}*{{Аналитика.Услуга.Количество}}); 2; "ru")

Функция ДРОБНАЯЧАСТЬ

Отображает дробную часть числа с указанным количеством знаков после запятой.


Формат:

ДРОБНАЯЧАСТЬ(число; КоличествоЗнаковПослеЗапятой)


Например, чтобы вывести в документе значение копеек для суммы услуги, воспользуйтесь такой функцией:

ДРОБНАЯЧАСТЬ(СУММА({{Аналитика.Услуга.Стоимость}}*{{Аналитика.Услуга.Количество}}); 2)


Функция отобразит 2 знака после запятой:

  • 176,03 — функция отобразит 3.
  • 15,15 — функция отобразит 15.
  • 16,156 — функция отсчитает два знака после запятой, округлит полученное число и выведет 16.


Дополнительно


Перейти