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

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
 
(не показано 56 промежуточных версий 1 участника)
Строка 2: Строка 2:
|title=Функции в шаблонах документов
|title=Функции в шаблонах документов
|titlemode=append
|titlemode=append
|keywords=планфикс, Шаблоны, документы, функции, шаблоны документов функции в шаблонах документов
|keywords=планфикс, Шаблоны, документы, функции, шаблоны документов функции в шаблонах документов, МНОЖЕСТВЕННОЕЧИСЛО, МНОЖЕСТВЕННОЕ, ЧИСЛОПРОПИСЬЮ, ДРОБНАЯЧАСТЬ
|description=Функции в шаблонах документов
|description=Функции в шаблонах документов
}}
}}
При автоматическом формировании документов по [[Шаблоны документов |шаблонам]] могут применяться функции. Они упрощают отображение различных данных в документе, например: автоматический вывод суммы прописью, склонение окончания слов при подсчете денежных единиц или вычисление стоимости заказа с помощью формул.
При автоматическом формировании документов Word по [[Шаблоны документов |шаблонам]] могут применяться функции. Они упрощают отображение различных данных в документе, например: автоматический вывод суммы прописью, склонение окончания слов при подсчете денежных единиц или вычисление стоимости заказа с помощью формул.




== Формулы ==
== Формулы ==
В шаблонах документов можно использовать формулы. Для того, чтобы добавить формулу в документ, используйте следующий синтаксис: <nowiki>%%%ФОРМУЛА%%%</nowiki>.
Для того, чтобы добавить формулу в документ, используйте следующий синтаксис: '''<nowiki>%%%ФОРМУЛА%%%</nowiki>'''.


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


Пример:
Пример:
<nowiki>%%%ТЕКСТ({{Аналитика.Услуга.Количество}}*{{Аналитика.Услуга.Стоимость}};".2f")%%%</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>%%%ТЕКСТ({{Аналитика.Услуга.Количество}}*{{Аналитика.Услуга.Стоимость}};".2f")%%%</nowiki></div>
 
 
В примере выше информация из аналитики «Услуга» с помощью соответствующих переменных попадает в формулу. Значения перемножаются, и вычисляется значение общей суммы конкретной услуги или товара. А с помощью функции [[Функция ТЕКСТ |ТЕКСТ()]] полученное значение форматируется в удобочитаемый вид в виде строки текста.
 
== Важно ==
*Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая 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>
%%%ЕСЛИ({{Аналитика.Калькуляция услуг.Услуга}}=""; ""; {{Аналитика.Калькуляция услуг.Услуга}} + " - " + {{Аналитика.Калькуляция услуг.Кол-во}} + "  " + {{Аналитика.Калькуляция услуг."Ед. Изм."}} + " (" + {{Аналитика.Калькуляция услуг.Комментарий}} + ")" )%%%
</nowiki>
</div>


В примере выше информация из аналитики «Услуга» с помощью соответствующих переменных попадает в формулу. Значения перемножаются, и вычисляется значение общей суммы конкретной услуги или товара. А с помощью функции [[Функция ТЕКСТ |ТЕКСТ()]] полученное значение приводится в удобочитаемый вид в виде строки текста.
:*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;"><nowiki>%%%ЕСЛИ({{Аналитика.Калькуляция услуг.Услуга}}=""; ""; {{Аналитика.Калькуляция услуг.Услуга}} + " - " + {{Аналитика.Калькуляция услуг.Кол-во}} + "  " + {{Аналитика.Калькуляция услуг."Ед. Изм."}} + "</nowiki><span style="color:red;">\n</span> <nowiki>(" + {{Аналитика.Калькуляция услуг.Комментарий}} + ")" )%%%</nowiki></div>
 
*Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом.
*Если результат формулы необходимо выделить жирным, то применяйте форматирование сразу ко всей формуле вместе с процентами.




== Функции ==
== Функции ==
Перечень функций, которые можно использовать для формирования шаблонов документов:
В формуле шаблона документов можно использовать все стандартные [[Функции |функции]] ПланФикса. При этом есть 4 функции, которые работают только в шаблонах документов Word и [[Переменные в тексте |текстовых блоках]]:
*[[#Функция СУММА|СУММА()]]
*[[#Функция СУММА|СУММА()]]
*[[#Функция МНОЖЕСТВЕННОЕЧИСЛО|МНОЖЕСТВЕННОЕЧИСЛО()]]
*[[#Функция МНОЖЕСТВЕННОЕЧИСЛО|МНОЖЕСТВЕННОЕЧИСЛО()]]
Строка 28: Строка 45:


== Функция СУММА ==
== Функция СУММА ==
'''СУММА()''' — это множащаяся переменная. Например, у вас есть аналитика «Услуга», и вы хотите в документе посчитать полную стоимость всех услуг. Для этого в документе укажите функцию:
'''СУММА()''' — это функция, которая суммирует все значения, полученные при вычислении формулы. Она применяется для каждого элемента множащейся переменной.
 
Например, у вас есть аналитика «Услуга», и вы хотите в документе посчитать полную стоимость всех услуг. Для этого в документе укажите функцию:


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




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


<nowiki>СУММА({{Аналитика.Услуга.Стоимость}}*{{Аналитика.Услуга.Количество}})</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></div>




Строка 43: Строка 62:
== Функция МНОЖЕСТВЕННОЕЧИСЛО ==
== Функция МНОЖЕСТВЕННОЕЧИСЛО ==
Используется для склонения окончания слова в зависимости от числа, которое указано перед ним в шаблоне документа.  
Используется для склонения окончания слова в зависимости от числа, которое указано перед ним в шаблоне документа.  


Формат:
Формат:
'''МНОЖЕСТВЕННОЕЧИСЛО('''число; "текст1"; "текст2"; "текст3"''')'''
МНОЖЕСТВЕННОЕЧИСЛО(число; "текст1"; "текст2"; "текст3")
 
 
В зависимости от вычисленного значения числа функция подберет один из трёх параметров. Параметры необходимо указать в строгой последовательности, которая подбирается по алгоритму.


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


Для того, чтобы получить "текст1", просклоняем два числа 1 и 21. Получаем:
Сначала просклоняйте нужное слово с числами 1 и 21:
*1 рубль
*1 рубль
*21 рубль
*21 рубль
Значит первым параметром в функции вместо "текст1" можно указать слово «рубль».


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


Берем два числа 2 и 123 и склоняем окончание слова «рубль». Получаем:
Затем просклоняйте то же слово с числами 2 и 123:
2 рубля
*2 рубля
123 рубля
*123 рубля


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


Параметр № 3:


Берем два числа 25 и 111 и склоняем окончание слова «рубль». Получаем:
Потом просклоняйте нужное слово с числами 25 и 111:
25 рублей
*25 рублей
111 рублей
*111 рублей


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




В итоги функция будет выглядеть так:
В итоге в документе можно указать такую функцию МНОЖЕСТВЕННОЕЧИСЛО():
<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></div>


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


== Функция ЧИСЛОПРОПИСЬЮ ==
Функция, результатом которой будет число прописью. Для прописи берётся только целая часть числа.




== Функция ЧИСЛОПРОПИСЬЮ ==
Формат:
ЧИСЛОПРОПИСЬЮ(число; СпособВывода; "язык")
 
 
Где:
*'''число''' — число или формула
*'''СпособВывода''':
**0 — обычный вывод
**1 — прописью в женском роде
**2 — прописью в мужском роде
**3 — прописью в среднем роде
**4 — прописью с заглавной в женском роде
**5 — прописью с заглавной в мужском роде
**6 — прописью с заглавной в среднем роде
*'''язык'''
**""(пусто) — используется язык пользователя, который формирует документ
**"ru" — русский
**"en" — английский
**"uk" — украинский




Например, чтобы отобразить в документе число прописью в мужском роде, используйте такую функцию:
<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)</nowiki></div>
Функция отобразит 2 знака после запятой:
*176,03 — функция отобразит 3.
*15,15 — функция отобразит 15.
*16,156 — функция отсчитает два знака после запятой, округлит полученное число и выведет 16.


== Дополнительно ==
*[[Функции| Список операций и функции, которые поддерживаются в ПланФиксе]]





Текущая версия от 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.


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


Перейти