ВЫЧИСЛЯЕМЫЕ ВЫРАЖЕНИЯ

Вычисляемые выражения

Вычисляемые выражения — это формулы, использующие для получения результата:

  • значения преобразованных элементов с панели «Доступные поля»;
  • математические функции; 
  • JavaScript (js). Функции JS должны возвращать строковое (буквы, цифры или знаки пунктуации), числовое (положительные/отрицательные, целые/дробные числа) или логическое (true/false) значение. Не поддерживается работа с DOM (Document Object Model) объектами.

Нельзя использовать таблицы, QR/штрихкоды, изображения, печати, подписи и строки вида {Документ.Номер}.

Добавить выражение

  

Для вставки выражения нажмите . В окне «Содержимое» введите нужное значение. 

Чтобы добавить выражение, укажите путь до него, поставив {% в начале и %} в конце. Например:

{%ФорматДата(new Date(), '%d %B %Y')%}

Чтобы добавить выражение, в нужной ячейке укажите путь до него, поставив {% в начале и %} в конце. Например:

{%ФорматДата(new Date(), '%d %B %Y')%}

Дополнительные функции JavaScript

Функции конвертирования данных

  1. ДеньгиВКопейки

    Возвращает количество копеек, округляя до целого числа.

    ДеньгиВКопейки(value)
    • value — целое или дробное число.
    Пример Результат
    ДеньгиВКопейки(10) 1000
    ДеньгиВКопейки(10,5) 1050
  2. ВСтроку

    Преобразует значение любого типа в строку.

    ВСтроку(value)
    • value — значение, которое требуется преобразовать в строку.
    Пример Результат
    ВСтроку(10.5) 10.5
    ВСтроку(Документ.Номенклатура.Наименование) ['Web-камера', 'Гарнитура ', 'Мышь', 'Клавиатура']

Функции форматирования данных

  1. СуммаПрописью

    Возвращает денежное значение прописью.

    СуммаПрописью(value, show_zero_integral = true, show_zero_fraction = true, capitalize = true)
    • value — входное значение, которое требуется отобразить в виде суммы прописью.
    • show_zero_integral (true/false) — отображать ли целую часть (рубли), если она равна 0.
    • show_zero_fraction (true/false) — отображать ли дробную часть (копейки), если она равна 0.
    • capitalize (true/false) — начинать результирующую строку с заглавной буквы.

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

    Пример Результат
    СуммаПрописью(15000) Пятнадцать тысяч рублей 00 копеек
    СуммаПрописью(15000, true, false) Пятнадцать тысяч рублей
    СуммаПрописью(15000, true, false, false) пятнадцать тысяч рублей
    СуммаПрописью(0.5) Ноль рублей 50 копеек
    СуммаПрописью(0.5, false) 50 копеек
  2. ФорматДеньги

    Возвращает форматированную денежную строку.

    ФорматДеньги(value, format = '', separate = true, with_zero_fraction = false)
    • value — денежное значение.
    • format — формат, в котором выводится денежное значение (полный, рубли, копейки, прописью).
    • separate (true/false) — форматировать по разрядам 100000 = 100 000
    • with_zero_fraction (true/false) — отображать нулевые копейки при форматах по умолчанию и прописью: 10 = 10.00
    Пример Результат
    ФорматДеньги(100.5) 100.5 руб.
    ФорматДеньги(100.5, 'полный') 100 руб. 50 коп.
    ФорматДеньги(100.5, 'рубли') 100 руб.
    ФорматДеньги(100.5, 'копейки') 50 коп.
    ФорматДеньги(10.15, 'прописью') 10.15 руб. (Десять рублей 15 копеек)
    ФорматДеньги(100000.5, 'полный', true) 100 000 руб. 50 коп.
    ФорматДеньги(100000.5, 'полный', false) 100000 руб. 50 коп. 
    ФорматДеньги(1000, '', true, true) 1 000.00 руб.
  3. ЧислоПрописью

    Возвращает числовое значение прописью.

    ЧислоПрописью(value, gender = 'м', show_zero_integral = true, show_zero_fraction = false, capitalize = true)
    • value — входное значение, которое требуется отобразить в виде числа прописью.
    • gender — пол (м/ж) выводимых чисел: один/одна, два/две и т.д.
    • show_zero_integral (true/false) — отображать нулевое значение целой части.
    • show_zero_fraction (true/false) — отображать нулевое значение дробной части.
    • capitalize (true/false) — начинать результирующую строку с заглавной буквы.
    Пример Результат
    ЧислоПрописью(15000) Пятнадцать тысяч
    ЧислоПрописью(2, 'ж') Две
    ЧислоПрописью(2, '') Две
    ЧислоПрописью(2) Два
    ЧислоПрописью(2, 'м', true, true, false) два 00
    ЧислоПрописью(1234.21, 'ж', true, true, true) Одна тысяча двести тридцать четыре 21
  4. ДатаПрописью

    Возвращает дату прописью.

    ДатаПрописью(value, case = 'и', year_label = 'года', capitalize = true)
    • value — входное значение, которое требуется отобразить в виде даты прописью.
    • case — падеж (case = «и» или по умолчанию – именительный, иначе родительный).
    • year_label — обозначение года.
    • capitalize (true/false) — начинать результирующую строку с заглавной буквы.
    Пример Результат
    ДатаПрописью(2000-01-01) Первое января двухтысячного года
    ДатаПрописью(2000-01-01, 'и', '', false) первое января двухтысячного
    ДатаПрописью(2000-01-01,'', 'г.') Первого января двухтысячного г.
    ДатаПрописью(2000-01-01, 'р') Первого января двухтысячного года
  5. ФорматЧисло

    Возвращает форматированную строку числа с разделителями между разрядами

    ФорматЧисло(value, separator = '', dot='.', digit = 3)
    • value — входное значение.
    • separator — символ разделителя разрядов.
    • dot — символ разделителя целой и дробной части.
    • digit — количество разрядов между разделителями.
    Пример Результат
    ФорматЧисло(10000.50) 10 000.5
    ФорматЧисло(10000,'.') 10.000.5
    ФорматЧисло(10000.50, '.', ',') 10.000,5
    ФорматЧисло(10000.50, '*', ',', 4) 1*0000,5
  6. ФорматДата

    Возвращает дату в виде форматированной строки.

    ФорматДата(value, format = '%d.%m.%Y')
    • value — входное значение.
    • formatформат даты, если не указан, то принимается за %d.%m.%Y. Если дата отсутствует или некорректна — возвращается пустая строка.
    Пример Результат
    ФорматДата(2000-01-01) 01.01.2000
    ФорматДата(2000-01-01,'%d %B %Y') 01 января 2000
  7. ПовторитьСтроку

    Повторяет указанную строку заданное количество раз.
    Если второй аргумент не указан, строка возвращается без повторения. 

    ПовторитьСтроку(value, count=1)
    • value — значение, которое требуется повторить.
    • count — количество повторений (по умолчанию — 1).
    Пример Результат
    ПовторитьСтроку(1, 5) 11111
    ПовторитьСтроку('',5)  
    ПовторитьСтроку(1) 1
  8. ЕслиПусто

    Возвращает значение else_value, если значение if_value — пустое

    ЕслиПусто(if_value, else_value)
    • if_value — значение, которое проверяет, пустое ли оно.
    • else_value — возвращается, если проверяемое значение пустое.
    Пример Результат
    ЕслиПусто('1','2') 1
    ЕслиПусто(' ','2') 2
  9. ЕслиНеПусто

    Возвращает значение else_value, если значение if_value — не пустое

    ЕслиНеПусто(if_value, else_value)
    • if_value — значение, которое проверяет, пустое ли оно.
    • else_value — возвращается, если проверяемое значение не пустое.
    Пример Результат
    ЕслиНеПусто('1','2') 2
    ЕслиНеПусто(' ','2')  
  10. ОчистФорм

    Возвращает «очищенное» от html-тэгов значение поля.

    ОчистФорм(value)
    • value — значение, которое необходимо очистить от html-тэгов. 
    Пример Результат
    '<b>Сумма</b>' Сумма
    ОчистФорм('<b>Сумма</b>') Сумма
  11. ФорматФИО

    Возвращает строку ФИО согласно указанному формату.

    ФорматФИО(last_name, name, patronymic, value_format = '%F %i%o')
    • last_name — фамилия
    • name — имя
    • patronymic — отчество
    • value_formatформат ФИО. Если строка формата отсутствует, или пустая, то считается, что она имеет вид '%F %i%o'. Пустым может быть любой из 3х элементов ФИО.
    Пример Результат
    ФорматФИО('Иванов','Иван','Иванович','%F %i%o') Иванов И.И.
    ФорматФИО('Иванов','Иван','Иванович') Иванов И.И.
    ФорматФИО('Иванов','Иван','Иванович','%F %I %O') Иванов Иван Иванович
  12. Склонение

    Возвращает строку ФИО согласно указанному падежу.

    Склонение(fio, grammatic_case, gender = none)
    • fio — фамилия, имя или отчество. 
    • grammatic_caseпадеж, указывается для каждого аргумента fio отдельно или для функции Формат ФИО.
    • gender — пол, необязательный параметр. Применяется, если по имени нельзя однозначно определить пол. 
    Пример Результат
    Склонение('Иванов', 'д') Иванову
    Склонение(ФорматФИО('Иванов','Иван','Иванович','%F %I %O'), 'Д') Иванову Ивану Ивановичу
    Склонение(ФорматФИО('Гулалиев','Сеймур','Гюлара','%F %I %O'), '1', 'муж') Гулалиева Сеймура Гюлара

Особенности JS в MS Word/Excel

  1. Для использования табличных полей в блоках кода необходимо получать всю таблицу, а потом работать с ней как с массивом объектов, используя в качестве ключей полные названия полей.

    Пример подсчета суммы по всей таблице:

    Неправильно Правильно
    {%
    var summ;
    summ += <Документ.Номенклатура.Сумма>;
    return summ
    %}
    {%  
    var nomenclature = <Документ.Номенклатура>, summ = 0.0;  
    for (var i = 0; i<nomenclature.length; i++){var temp = nomenclature[i];  
    summ += parseFloat(temp['Документ.Номенклатура.Сумма']);}  
    return ФорматЧисло(summ.toFixed(2));  
    %} 
    Итог: ошибка Итог: 30 980.00
  2. В редакторе Word для создания списков и переноса строк, используйте:
    • \t — табуляция
    • \r — перенос строки
    • \n — новый абзац.
    Пример Результат
    {%<Документ.Номер>+"\t"+<Документ.Номер>%} 00001     00001
    {%<Документ.Номер>+"\r"+<Документ.Номер>%} 00001
    00001
    {%<Документ.Номер>+"\n"+<Документ.Номер>%}

    00001

    00001

  3. Для нумерации строк в таблице используйте функцию ПорядковыйНомер:

    ПорядковыйНомер(rows, start)
    • rows — доступное поле.
    • start — порядковый номер, с которого начинается нумерация.

Права и роли

0
0
Оставьте свой отзыв:
ОТПРАВИТЬ