Функции в шаблонах документов: различия между версиями
Artem (обсуждение | вклад) Нет описания правки |
Dmitri (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 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> | |||
*Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом. | *Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом. | ||
Строка 126: | Строка 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 по шаблонам могут применяться функции. Они упрощают отображение различных данных в документе, например: автоматический вывод суммы прописью, склонение окончания слов при подсчете денежных единиц или вычисление стоимости заказа с помощью формул.
Формулы
Для того, чтобы добавить формулу в документ, используйте следующий синтаксис: %%%ФОРМУЛА%%%.
ФОРМУЛА — это выражение для вычисления значения поля, такое же как и в вычисляемом поле.
Пример:
В примере выше информация из аналитики «Услуга» с помощью соответствующих переменных попадает в формулу. Значения перемножаются, и вычисляется значение общей суммы конкретной услуги или товара. А с помощью функции ТЕКСТ() полученное значение форматируется в удобочитаемый вид в виде строки текста.
Важно
- Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая 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 знака после запятой:
- 176,03 — функция отобразит 3.
- 15,15 — функция отобразит 15.
- 16,156 — функция отсчитает два знака после запятой, округлит полученное число и выведет 16.
Дополнительно