...
Примечание: необязательные параметры указаны в квадратных скобках - []
| Тип функции | Функция | Описание | Входные параметры | Выходные параметры | Пример | Результат вычисления примера |
Дата\время |
fieldName: строка (обязательный) - Название атрибута
checkParent: bool (необязательный) - Проверять родительский элемент
includeCurrent: bool (необязательный, используется только при checkParent=True) - Проверять текущий элемент
elementName: строка (обязательный) - Название элемента
element: объект (необязательный) - элемент, для которого будет выполнен поиск родительского элемента.
name: строка (необязательный) - Название типа искомого элемента или название самого элемента
includeCurrent: bool (необязательный) - проверять ли сам текущий элемент.
- Parent()
- Parent('В процессе')
- Parent(Ref('Связь с замечанием'), 'Проект')
- Parent('Стадия', true)
- Вернет первый родительский элемент текущего элемента
- Вернет первый родительский элемент с названием или типом элемента "В процессе"
- Вернет первый родительский элемента с типом элемента "Проект" для документа связанного с текущим замечанием.
- Вернет элемент первый элемент с типом элемента "Стадия" начиная с самого текущего элемента.
statement: bool - логическое выражение, результатом которого является True или False
value is true (обязательное) - возвращаемое значение, если значение выражения True
value is false (обязательное) - возвращаемое значение, если значение выражения False
| AddDay([date], [incStepValue], [format]) | Возвращает дату [date], увеличенную на заданное количество дней [incStepValue]. Если указан параметр [format], то возвращает дату в виде строки | date type: Дата-время/строка. incStepValue type: число. format type: строка. default: "" | Дата-время/строка | AddDay(This('Created'), 1, 'dd.MM.yyyy') AddDay(-10, 'dd.MM.yyyy') | Дата создания данного элемента, увеличенная на один день, в формате dd.MM.yyyy Текущая дата-время минус 10 дней, в формате dd.MM.yyyy | |
| AddMonth([date], [incStepValue], [format]) | Возвращает дату [date], увеличенную на заданное количество месяцев [incStepValue]. Если указан параметр [format], то возвращает дату в виде строки | date type: Дата-время/строка. incStepValue type: число. format type: строка. default: "" | Дата-время/строка | AddMonth(Field(Parent('Раздел'),'Created'), 3) AddMonth(3, 'MMMM') | Дата создания родительского элемента с типом контента 'Раздел', увеличенная на 3 месяца Название месяца через 3 месяца от текущей даты | |
| AddYear([date], [incStepValue], [format]) | Возвращает дату [date], увеличенную на заданное количество месяцев [incStepValue]. Если указан параметр [format], то возвращает дату в виде строки | date type: Дата-время/строка. incStepValue type: число. format type: строка. default: "" | Дата-время/строка | AddYear(Field(Parent(), 'Created'), 2, 'yyyy') | Дата создания родительской папки, увеличенная на 2 года, в формате год | |
| DateTime(dateTime, format) | Возвращает дату-время в заданном формате. Если не задано значение даты-времени, будет возвращено текущее значение | dateTime: dateTime (необязательный) - Дата-время format: строка (необязательный) - Формат даты-времени | dateTime | DateTime(Field(Parent(), 'Время начала'), 'dd.MM.yyyy') | Вернет значение атрибута "Время начала" родительской папки элемента в указанном формате. | |
| Конфигурация | Cfg(key) | Возвращает значение элемента из списка "Конфигурация" по ключу | key: значение атрибута "Системное имя" элемента из списка "Конфигурация" | Возвращаемое значение соответствует типу элемента, найденного по ключу (строка, число, флаг, картинка) | Cfg('Site.PortalUrl') | Вернет значение элемента конфигурации по пути: "Общие настройки" → "Адрес портала" |
| Организационно-штатная структура | User() | материал дополняется | ||||
| Структура хранения данных | Field(element, fieldName, checkParent, includeCurrent) | Возвращает значение заданного атрибута у заданного элемента. При отсутствии заданного элемента, значение атрибута будет считано с текущего элемента | element: строка (необязательный) - Название или тип элемента fieldName: строка (обязательный) - Название атрибута checkParent: bool (необязательный) - Проверять родительский элемент includeCurrent: bool (необязательный, используется только при checkParent=True) - Проверять текущий элемент | Значение поля | Field(Parent('В процессе'), 'Название') | Вернет значение атрибута "Название" родительской папки с типом элемента или названием "В процессе" |
| Lookup(listName.elementName) | Возвращает заданный элемент, заданного списка. | listName: строка (обязательный) - Название списка elementName: строка (обязательный) - Название элемента | Элемент списка | Lookup('Статусы документов.Размещено') | Вернет элемент с названием "Размещено" списка "Статусы документов" | |
| Parent(element, name, includeCurrent) | Вернет первый объект удовлетворяющий заданным условиям, являющийся родительским по отношению к текущему или заданному. | element: объект (необязательный) - элемент, для которого будет выполнен поиск родительского элемента. name: строка (необязательный) - Название типа искомого элемента или название самого элемента includeCurrent: bool (необязательный) - проверять ли сам текущий элемент. | Элемент или значение заданного поля элемента |
|
| |
| Связи | Ref(contentType) | Возвращает первый элемент из списка связей элемента с заданным типом элемента связи | contentType: строка (обязательный) - Тип элемента связи | Элемент | Ref('Связь с замечанием') | Вернет первый элемент списка связей с типом элемента 'Связь с замечанием' |
| Refs(contentType) | Возвращает список связей элемента с заданным типом элемента связи | contentType: строка (обязательный) - Тип элемента связи | Список элементов | Refs('Связь с замечанием') | Вернет список связей с типом элемента 'Связь с замечанием' | |
| Логические | if(statement, 'value is true', 'value is false') | Проверяет результат заданного логического выражения и в зависимости от него возвращает одно из двух значений | statement: bool - логическое выражение, результатом которого является True или False value is true (обязательное) - возвращаемое значение, если значение выражения True value is false (обязательное) - возвращаемое значение, если значение выражения False | Значение | if(This('Шифр') = '', This('Статус'), This('Шифр')) | Проверит заполнение атрибута "Шифр" и, если этот атрибут пустой, то вернет значение атрибута " |
Статус", а если "Шифр" заполнен, то вернет его значение | ||||||
| statement_1 || statement_2 | Логическое "ИЛИ" - проверит значение обоих выражений и вернет True, если хотя-бы одно из них является верным. | statement_1: bool - первое логическое выражение, результатом которого является True или False statement_1: bool - второе логическое выражение, результатом которого является True или False | bool | Field(Ref('Вложение процесса'), 'Статус документа.Название') == 'Размещено' || Field(Ref('Вложение процесса'), 'Статус документа.Название') == 'На корректировке' | Вернет True если значением атрибута "Статус документа" вложения процесса является "Размещено" или "На корректировке" и False, если нет. | |
| statement_1 && statement_2 | Логическое "И" - проверит значение обоих выражений и вернет True, если оба из них являются верными и False, если хотя-бы одно неверно. | statement_1: bool - первое логическое выражение, результатом которого является True или False statement_1: bool - второе логическое выражение, результатом которого является True или False
| bool | This('Статус.Название') == 'Выполняется' && IsNotNull(This('Ответ')) | Вернет True, если значение атрибута "Статус" текущего элемента - "Выполняется" и значение атрибута "Ответ" не является пустым и False если какое-то из этих условий не выполнено. | |
| IsEndWith(str, subStr) | Проверяет, заканчивается ли указанная строка заданной подстрокой и возвращает True или False | str: строка (обязательное) - Исходная строка subStr: строка - искомая подстрока | bool | IsEndWith(This('Имя'),'.docx') | Вернет 'True' если в значении This('Имя') строка заканчивается на .docx | |
| IsNull(value) | Функция возвращает true, если у атрибута нет значения (пустая строка или null), и false, если атрибут содержит значение | value (обязательный) - Атрибут или результат вычисления другой формулы | bool | IsNull(Field(Parent(), 'Ответственный')) | Вернет False, если поле "Ответственный" родительской папки текущего элемента заполнено и True, если нет. | |
| IsNotNull(value) | Функция возвращает true, если у атрибута есть значение, и false, если атрибут не содержит значения (пустая строка или null) | value (обязательный) - Атрибут или результат вычисления другой формулы | bool | IsNotNull(Field(Parent(), 'Ответственный')) | Вернет True, если поле "Ответственный" родительской папки текущего элемента заполнено и False, если нет. | |
| Switch(checkKey, key1, value1, key2, value2, .., keyN, valueN) | Проверит совпадение заданного значения с ключом из списка "ключ, значение" и вернет соответствующее этому ключу значение. Как ключ, так и значение могут быть различных типов - строка, число, объект, bool | checkKey (обязательно) - искомый ключ список пар key, value (обязательно) - список пар "ключ, значение", разделенных запятой. Пары разделяются запятыми. | Значение, соответствующее заданному ключу. | Switch(Field(Ref('Вложение процесса'), 'Статус документа.Название'), 'Размещено', Lookup('Статус процесса.Входной контроль'), 'Проверено', Lookup('Статус процесса.Согласующие'), 'Согласовано', Lookup('Статус процесса.Утверждающие')) | Здесь: Field(Ref('Вложение процесса'), 'Статус документа.Название') - искомый ключ: название статуса документа являющегося вложением в процесс. 'Размещено', Lookup('Статус процесса.Входной контроль') - первая пара "ключ, значение" 'Проверено', Lookup('Статус процесса.Согласующие') - вторая пара "ключ, значение" 'Согласовано', Lookup('Статус процесса.Утверждающие') - третья пара "ключ, значение" В зависимости от статуса документа вернет одно из возможных значение:
| |
| Строковые | FileExt([context]) | Возвращает расширение из атрибута "Название" элемента [context] или текущего элемента вычисления. Если расширения не найдено, то функция вернет пустую строку. | context type: Элемент. | строка | FileExt() FileExt(Ref('Связь с замечанием')) | Вернет расширение текущего элемента вычисления Будет вычислено |
formatString type: строка
[value1, value2,...,valueN]: type: объект
Значения подстановки в строку форматирования. Типом подстановки может быть не только строка, но и, например, число.
Format('Замечание_{0}_{1}', Field(Ref('Связь с замечанием'), 'Название'), This('ИД'))
Format('{0:0000}', 12)
Добавление имени документа (текущего) и атрибута ИД в места подстановки {0} и {1} строки форматированиярасширение элемента, к которому оставлено замечание | ||||
| Format(formatString, [value1, value2,...,valueN]) | Возвращает строку formatString, с добавлением параметров [value1, value2,...,valueN] в места подстановки. Чаще всего используется как более удобный вариант конкатенации строк | formatString type: строка | строка | Format( |
'Замечание_{0}_{1}' |
Вернет строку '0012'
Полный набор форматов соответствует работе функции String.Format() https://msdn.microsoft.com/ru-ru/library/0c899ak8(v=vs.110).aspx
, Field(Ref('Связь с замечанием'), 'Название'), This('ИД')) Format('{0:0000}', 12) | Добавление имени документа (текущего) и атрибута ИД в места подстановки {0} и {1} строки форматирования 'Замечание_{0}_{1}' Вернет строку '0012' Полный набор форматов соответствует работе функции String.Format() https://msdn.microsoft.com/ru-ru/library/0c899ak8(v=vs.110).aspx | |||||
| IndexOf(str, value, [occurrence]) | Возвращает индекс (позицию) строки value в строке str, начиная с вхождения [occurrence] | formatString type: строка value type: строка occurrence type: число. | число | Format('{0} {1}.{2}.', Substring(This('Название'), 0, IndexOf(Field('Название'), ' ')), Substring(Field('Название'), IndexOf(Field('Название'), ' ', 0) + 1, 1), Substring(Field('Название'), IndexOf(Field('Название'), ' ', 1) + 1, 1)) | ФИО текущего пользователя в сокращенном варианте (Сидоров А.С.) | |
| Join() | материал дополняется |
|
| |||
| Split() | материал дополняется |
|
| |||
| Str() | материал дополняется |
|
| |||
| Substring(str, startIndex, substrLength) | Возвращает подстроку указанной длины от начала исходной строки или от указанного номера символа | str: строка (обязательный) - Исходная строка startIndex: число (необязательный) - номер символа, с которого надо начинать отсчет подстроки substrLength: число (необязательный) - длина подстроки | строка |
|
| |
| Translit(str)* | Функция заменяет русские буквы на английские и возвращает результат* | str: строка (обязательный) - исходная строка | строка | Translit('В12345/555Д') | Вернет строку "V12345_555D" | |
| TrimEnd(str, subStr) | Функция обрезает строку с конца, начиная с указанной подстроки и возвращает полученный результат. Подстрока ищется с конца исходной строки. Можно указать несколько вариантов подстрок, разделив их символом # | str: строка (обязательный) - исходная строка subStr: строка (обязательный) - искомая подстрока. | строка | TrimEnd('тест_РД_ver01','_ver#_rev') | Вернет строку "тест_РД" | |
| + | Возвращает результат конкатенации двух строк | value1: строка (обязательное) - первое слагаемое value2: строка (обязательное) - второе слагаемое | строка | Field(Parent('Проект'), 'Шифр') + '-' + Field(Parent(), 'Марка') | Возвращает разделенные дефисом значение атрибута "Шифр" у первого родительского элемента с типом элемента "Проект", и значение атрибута "Шифр" родительского элемента. | |
| Математические | математические операторы: + - * / | Возвращает результат выполнения соответствующей математической функции | value1: число (обязательное) - первое слагаемое value2: число (обязательное) - второе слагаемое
| число | (This('Поле A') + This('Поле B') + This('Поле С')) * Field(Parent('Комплект'), 'Множитель') / 3 | Вернет результат сложения значений атрибутов "Поле A", "Поле В" и "Поле С" текущего элемента, умноженный на значение атрибута "Множитель" родительского элемента с типом элемента "Комплект" и поделенного на 3 |
| Count(listObject) | Возвращает количество элементов заданного списка | listObject: список (обязательный) - Список объектов | число | Count(Refs('Вложение рабочего процесса')) | Вернет кол-во связей с типом элемента 'Вложение рабочего процесса' рабочего процесса | |
| Inc(list.fieldName.id, step) | Увеличивает значение указанного атрибута на заданную величину и возвращает итоговое значение | list: строка (обязательный) - наименование списка с элемента которого должно быть взято исходное значение. fieldName: строка (обязательный)- название атрибута id: число (обязательный) - порядковый номер элемента из списка "Счетчики" step: число (необязательный) - значение, на которое нужно увеличить текущее значение. | число | Inc('Счетчики.Счетчик.2', 3) | Возвращает значение атрибута "Счетчик" элемента с ИД=2 из списка "Счетчики" увеличенного на 3. Данная функция служит для реализации счетчика, например, для автоматической нумерации каждого добавляемого в папку документа. | |
| Pow(base, factor) | Возводит в заданное число степень | base: число (обязательный) - основание степени factor: число (обязательный) - показатель степени | число | Pow(2, 3) | Вернет 23 = 8. | |
| Sqrt(value) | Возвращает квадратный корень заданного числа | value: число (обязательный) | число | Sqrt(4) | Вернет 2 |
str: строка (обязательный) - Исходная строка
startIndex: число (необязательный) - номер символа, с которого надо начинать отсчет подстроки
substrLength: число (необязательный) - длина подстроки
Substring('Анкор-МПРТ.03', 5)
Substring('Анкор-МПРТ.03', 6, 4)
- Вернет строку 'Анкор'
- Вернет строку 'МПРТ'
str: строка (обязательный) - исходная строка
Вернет строку "V12345_555D"
str: строка (обязательный) - исходная строка
subStr: строка (обязательный) - искомая подстрока.
Вернет строку "тест_РД"
value1: строка (обязательное) - первое слагаемое
value2: строка (обязательное) - второе слагаемое
математические операторы:
+
-
*
/
value1: число (обязательное) - первое слагаемое
value2: число (обязательное) - второе слагаемое
list: строка (обязательный) - наименование списка с элемента которого должно быть взято исходное значение.
fieldName: строка (обязательный)- название атрибута
id: число (обязательный) - порядковый номер элемента из списка "Счетчики"
step: число (необязательный) - значение, на которое нужно увеличить текущее значение.
Возвращает значение атрибута "Счетчик" элемента с ИД=2 из списка "Счетчики" увеличенного на 3.
Данная функция служит для реализации счетчика, например, для автоматической нумерации каждого добавляемого в папку документа.
base: число (обязательный) - основание степени
factor: число (обязательный) - показатель степени
value: число (обязательный)
Sqrt(4)
date type: Дата-время/строка.
default: Текущая дата-время (UTC)
incStepValue type: число.
default: 0 (может быть отрицательным)
format type: строка. default: ""
AddDay(This('Created'), 1, 'dd.MM.yyyy')
AddDay(-10, 'dd.MM.yyyy')
Дата создания данного элемента, увеличенная на один день, в формате dd.MM.yyyy
Текущая дата-время минус 10 дней, в формате dd.MM.yyyy
date type: Дата-время/строка.
default: Текущая дата-время (UTC)
incStepValue type: число.
default: 0 (может быть отрицательным)
format type: строка. default: ""
AddMonth(Field(Parent('Раздел'),'Created'), 3)
AddMonth(3, 'MMMM')
Дата создания родительского элемента с типом контента 'Раздел', увеличенная на 3 месяца
Название месяца через 3 месяца от текущей даты
date type: Дата-время/строка.
default: Текущая дата-время (UTC)
incStepValue type: число.
default: 0 (может быть отрицательным)
format type: строка. default: ""
format: строка (необязательный) - Формат даты-времени
| Преобразование типов данных | ParseDateTime(dateTime) | Преобразует строку с указанием даты и времени в формат DateTime. Если указать только дату без времени, то значение времени будет установлено в 00:00:00. Если указать только время, без даты, то будет установлена текущая дата | dateTime: строка (обязательный) - Строка в формате 'dd.mm.yy hh:mm:ss' | dateTime | ParseDateTime('20.05.2024 10:50') | Вернет 20.05.2024 10:50 в формате DateTime |
| ParseFloat(value) | Преобразует строку в число с плавающей запятой | value: строка (обязательный) - Строка в которой целая и дробная часть отделены точкой | Число с плавающей запятой | ParseFloat('12,05') | Вернет число 12.05 | |
| ParseBool(value) | Преобразует строки 'true', 'false', '0' или 0 в булево значение | value (обязательный) - строка или число | bool |
|
| |
| Работа со списками | Contains(listObject, checkObject) | Проверяет, находится ли заданный объект в списке объектов и возвращает True или False | listObject: список (обязательный) - Список объектов checkObject: объект (обязательный) - искомый объект | bool | Contains(Field(Parent(Ref('Вложение рабочего процесса')), 'Разрешен запуск процесса согласования')), This('Инициатор')) | Вернет True если перечень пользователей указанных в атрибуте 'Разрешен запуск процесса согласования' родительской папки вложения процесса содержит инициатора процесса, и False, если не содержит. |
При вычислении сложной формулы система сама определяет, какого типа данные возвращают функции This() Parent(). Но могут возникнуть ситуации, когда нужно привести значение к типу "строка" или "число". Для этого необходимо сделать следующее:
- чтобы результат вычисления функции сделать числом нужно в формуле добавить к нему 0: (This('FieldName') + 0)
- чтобы сделать строкой - прибавить пустой символ: (This('FieldName') + '')
...
*Таблица соответствия букв для функции TranslitAnchor Translit_table Translit_table
| а | б | в | г | д | е | ё | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ъ | ы | ь | э | ю | я |
| a | b | v | g | d | e | e | zh | z | i | i | k | l | m | n | o | p | r | s | t | u | f | kh | tc | ch | sh | shch | _ | y | _ | e | iu | ia |