Под полем "Имя" расположена строка с набором доступных инструментов — операторов и функций. Отображаемый на ней набор инструментов зависит от выбранного атрибута и текущего редактируемого выражения.
Если вы знакомы с Entity SQL, есть возможность подставлять некоторые операторы этого языка для формирования нужной строки условий отбора (полный список операторов Entity SQL, доступен по адресу: Справочник по Entity SQL).
Использование ID объектов
Вместо непосредственного ввода ID объекта предпочтительнее использовать кнопку ID объекта.

Кнопка "ID объекта" в редакторе
По кнопке открывается окно для выбора объекта:

Выбор ID объекта в смарт-выражении
В результате будет создана конструкция, в которой вместо числового ID объекта используется типизированная ссылка на него.
Такой способ формирования ссылки на объект является предпочтительным, поскольку облегчает выполнение служебных заданий и перенос смарт-выражений между разными инсталляциями системы.
Операторы
•В списке – Оператор, проверяющий входит ли значение атрибута в список значений {a,b,c};
•Не в списке – Оператор, проверяющий исключение значений атрибута из списка значений {a,b,c};
Функции
Строки
|
|---|
Функция |
Описание |
Атрибуты |
Возвращаемое значение |
|
|---|---|---|---|---|
Подстроки |
||||
БезПробеловСЛВ |
Возвращает строку без начальных пробелов слева
|
Строка |
Строка |
|
БезПробеловСПР |
Возвращает строку без конечных пробелов справа
|
Строка |
Строка |
|
БезПробелов |
Возвращает строку без начальных и конечных пробелов
|
Строка |
Строка |
|
ВернутьСлева |
Возвращает первые N символов строки |
Строка Целое число (количество символов, N) |
Строка |
|
ВернутьСправа |
Возвращает последние N символов строки |
Строка Целое число (количество символов, N) |
Строка |
|
ИндексПодстроки |
Возвращает позицию подстроки в строке |
Подстрока Строка |
Целое число |
|
Подстрока |
Возвращает N символов строки начиная с позиции M |
Строка Целое число (начальная позиция, M) Число (количество символов, N) |
Строка |
|
Преобразовать |
||||
DateConvert |
Преобразование даты в строку по указанному формату (см. форматы) |
Строка Число |
Строка |
|
ВВерхРегистр |
Преобразование всех символов строки в верхний регистр |
Строка |
Строка |
|
ВНижРегистр |
Преобразование всех символов строки в нижний регистр |
Строка |
Строка |
|
ЗаменитьВСтроке |
Замена всех вхождений подстроки1 на подстроку2 |
Строка (где менять) Подстрока1 (что менять) Подстрока2 (на что менять) |
Строка |
|
НачинаетсяС |
Проверяет, начинается ли строка с подстроки |
Строка Подстрока |
Логическое значение |
|
ОбратитьСтроку |
Переставляет все символы в строке в обратном порядке ("задом наперед") |
Строка |
Строка |
|
+ |
Соединение строк. Например: Категория.Описание = Категория.Название + '123' |
Строка |
||
IsNullString |
Проверяет, является ли строка1 пустой. Если не является, то возвращает строку1; если является, то возвращает строку2 |
Строка 1 (проверяемая строка) Строка 2 (возвращается, если строка1 пустая) |
Строка |
|
ВДробноеЧисло |
Преобразует строку в десятичную дробь. Разделителем должна быть точка. Если строка не может быть преобразована, возвращает ошибку |
Строка |
Десятичная дробь |
|
ВЦелоеЧисло |
Преобразует строку в целое число. Если строка не может быть преобразована, возвращает ошибку |
Строка |
Целое число |
|
ДлинаСтроки |
Возвращает длину строки |
Строка |
Целое число |
|
ЗаканчиваетсяНа |
Проверяет, заканчивается ли строка подстрокой |
Строка Подстрока |
Логическое значение |
|
Конкатенация |
Соединяет две строки |
Строка 1 Строка 2 |
Строка |
|
Перенос строки |
Вставляет символ переноса строки |
— |
Строка |
|
ПовторитьСтроку |
Повторяет строку N раз |
Строка Целое число |
Строка |
|
ПоискВСтроке |
Возвращает позицию первого вхождения подстроки в строке и 0 если вхождение не найдено. Даже если поиск осуществляется не с первой позиции, функция все равно возвращает позицию вхождения относительно начала строки. |
Подстрока (что искать) Строка (где искать) Целое число (номер позиции, начиная с которой осуществляется поиск. Отсчет позиций начинается с 1. Если параметр равен 0, то поиск также ведется с начала строки) |
Целое число |
|
ПоискПоШаблону |
Возвращает позицию первого вхождения шаблона в строке и 0 если вхождение не найдено. Шаблон — это последовательность символов, которая может включать символы-шаблоны '%' и '_'. '%' обозначает любое количество символов (в том числе и отсутствие символов), а '_' заменяет один любой символ. Как правило, шаблон ограничивается символами "%" слева и справа (за исключением случаев, когда необходимо найти только первые или только последние символы). |
Строка (шаблон) Строка
|
Целое число |
|
ПробелыВASCII |
Генерирует строку из N пробелов |
Целое число |
Строка |
|
СтрокаНеПуста |
Проверяет, есть ли в строке хотя бы один символ |
Строка |
Логическое значение |
|
СтрокаПуста |
Проверяет, является ли строка пустой |
Строка |
Логическое значение |
|
СтрокаСодержит |
Проверяет, содержит ли строка подстроку. При использовании функции для проверки наличия подстроки в значении ДП в карточке задачи рекомендуется дополнительно применять проверку на пустые значения. Если ДП не заполнен в карточке, его значение становится равным null. В таком состоянии любая операция поиска или сравнения, включая проверку на содержание подстроки, будет возвращать false, даже если логически ожидается иной результат. Функция IsNullString проверяет, является ли строка пустой или null, и если это так — возвращает значение строки2, которую можно задать как пустую или по умолчанию. Формат: СтрокаСодержит(IsNullString('строка', 'возвратить если NULL'), 'что содержит') Пример: ![]() |
Строка Подстрока (что содержит) |
Логическое значение |
|
Числа
Функция |
Описание |
Атрибуты |
Возвращаемое значение |
|---|---|---|---|
- * / + < <= > >= |
Числовые операторы |
||
IsNullDecimal |
Проверяет, является ли число1 пустым значением. Если не является, то возвращает число1; если является, то возвращает число2. |
Число1 (проверяемое число), Число2 (возвращается, если число1 пустое). |
Число в формате десятичной дроби с двумя знаками после запятой. |
ВСтроку |
Преобразует число в строку. Если число содержит десятичную дробную часть, должна быть точка. Если число не может быть преобразовано, возвращает ошибку. |
Число |
Строка |
Дата и время
Функция |
Описание |
Атрибуты |
Возвращаемое значение |
|
|---|---|---|---|---|
Добавить |
||||
ДобавитьДней |
Добавляет к дате указанное количество дней. Количество может быть положительным и отрицательным |
Дата и время, Целое число |
Дата и время |
|
ДобавитьЛет |
Добавляет к дате указанное количество лет. Количество может быть положительным и отрицательным |
Дата и время, Целое число |
Дата и время |
|
ДобавитьМесяцев |
Добавляет к дате указанное количество месяцев. Количество может быть положительным и отрицательным |
Дата и время, Целое число |
Дата и время |
|
ДобавитьМинут |
Добавляет к дате указанное количество минут. Количество может быть положительным и отрицательным |
Дата и время, Целое число |
Дата и время |
|
ДобавитьРабочихДней |
Добавляет к дате указанное количество рабочих дней. Количество может быть положительным и отрицательным |
Дата и время, Целое число |
Дата и время |
|
ДобавитьРабочихЛет |
Добавляет к дате указанное количество рабочих лет. Количество может быть положительным и отрицательным |
Дата и время, Целое число |
Дата и время |
|
ДобавитьРабочихМесяцев |
Добавляет к дате указанное количество рабочих месяцев. Количество может быть положительным и отрицательным |
Дата и время, Целое число |
Дата и время |
|
ДобавитьРабочихМинут |
Добавляет к дате указанное количество рабочих минут. Количество может быть положительным и отрицательным.
|
Дата и время, Целое число |
Дата и время
|
|
ДобавитьРабочихЧасов |
Добавляет к дате указанное количество рабочих часов. Количество может быть положительным и отрицательным.
|
Дата и время, Целое число |
Дата и время |
|
ДобавитьЧасов |
Добавляет к дате указанное количество часов. Количество может быть положительным и отрицательным |
Дата и время, Целое число |
Дата и время |
|
Разница |
||||
РазницаДней |
Возвращает число целых дней между двумя датами. Если первая дата больше второй, то разница отрицательная |
Дата и время 1, Дата и время 2 |
Целое число |
|
РазницаЛет |
Возвращает число целых лет между двумя датами. Если первая дата больше второй, то разница отрицательная |
Дата и время 1, Дата и время 2 |
Целое число |
|
РазницаМесяцев |
Возвращает число целых месяцев между двумя датами. Если первая дата больше второй, то разница отрицательная |
Дата и время 1, Дата и время 2 |
Целое число |
|
РазницаМинут |
Возвращает число целых минут между двумя датами. Если первая дата больше второй, то разница отрицательная |
Дата и время 1, Дата и время 2 |
Целое число |
|
РазницаРабочихДней |
Возвращает число целых рабочих дней между двумя датами. Если первая дата больше второй, то разница отрицательная |
Дата и время 1, Дата и время 2 |
Целое число |
|
РазницаРабочихМинут |
Возвращает число целых рабочих минут между двумя датами. Если первая дата больше второй, то разница отрицательная |
Дата и время 1, Дата и время 2 |
Целое число |
|
РазницаРабочихЧасов |
Возвращает число целых рабочих часов между двумя датами. Если первая дата больше второй, то разница отрицательная |
Дата и время 1, Дата и время 2 |
Целое число |
|
РазницаЧасов |
Возвращает число целых часов между двумя датами. Если первая дата больше второй, то разница отрицательная |
Дата и время 1, Дата и время 2 |
Целое число |
|
Округлить |
||||
УсечьВремя |
Возвращает указанную дату со временем 0 часов 00 минут |
Дата и время |
Дата и время |
|
ОкруглитьНачалоНедели |
Возвращает первый день недели, содержащей указанную дату, со временем 0 часов 00 минут |
Дата и время |
Дата и время |
|
ОкруглитьНачалоМесяца |
Возвращает первый день месяца, содержащего указанную дату, со временем 0 часов 00 минут |
Дата и время |
Дата и время |
|
ОкруглитьНачалоКвартала |
Возвращает первый день квартала, содержащего указанную дату, со временем 0 часов 00 минут |
Дата и время |
Дата и время |
|
ОкруглитьНачалоГода |
Возвращает первый день года, содержащего указанную дату, со временем 0 часов 00 минут |
Дата и время |
Дата и время |
|
ОкруглитьКонецДня |
Возвращает указанную дату со временем 23 часа 59 минут |
Дата и время |
Дата и время |
|
ОкруглитьКонецНедели |
Возвращает последний день недели, содержащей указанную дату, со временем 23 часа 59 минут |
Дата и время |
Дата и время |
|
ОкруглитьКонецМесяца |
Возвращает последний день месяца, содержащего указанную дату, со временем 23 часа 59 минут |
Дата и время |
Дата и время |
|
ОкруглитьКонецКвартала |
Возвращает последний день квартала, содержащего указанную дату, со временем 23 часа 59 минут |
Дата и время |
Дата и время |
|
ОкруглитьКонецГода |
Возвращает последний день года, содержащего указанную дату, со временем 23 часа 59 минут |
Дата и время |
Дата и время |
|
|
||||
Год |
Возвращает год для указанной даты |
Дата и время |
Целое число |
|
День |
Возвращает день для указанной даты |
Дата и время |
Целое число |
|
ДеньГода |
Возвращает порядковый день в году для указанной даты |
Дата и время |
Целое число |
|
Месяц |
Возвращает месяц для указанной даты |
Дата и время |
Целое число |
|
Минута |
Возвращает минуты для указанной даты |
Дата и время |
Целое число |
|
НерабочийДень |
Возвращает признак, является ли указанная дата нерабочим днем |
Дата и время |
Логическое значение |
|
НовыеДатаВремя |
Возвращает дату, сформированную из указанных параметров |
Целое число (год), Целое число (месяц), Целое число (день), Целое число (час), Целое число (минуты), Число формата double (секунды) |
Дата и время |
|
ОтформатироватьДату |
Возвращает дату, отформатированную по указанному формату. Формат — строка вида 'dd.MM.yyyy HH:mi' |
Дата и время, Строка (формат) |
||
ПеревестиВЧасовуюЗонуПользователя |
Возвращает указанную дату и время, преобразованную в часовую зону пользователя с указанным ID |
Дата и время, Целое число (ID пользователя) |
Дата и время |
|
ТекущиеДатаВремя |
Возвращает текущую дату и время |
– |
Дата и время |
|
Час |
Возвращает час для указанной даты |
Дата и время |
Целое число |
|
ДеньНедели |
Возвращает название дня недели для указанной даты |
Дата и время |
Строка |
|
Логические
Функция |
Описание |
Атрибуты |
Возвращаемое значение |
|---|---|---|---|
есть значение |
Функция проверяет наличие значения в предыдущем атрибуте в поле смарт-выражения и возвращает: •истина (1), если знчение есть; •ложь (0), если значения нет (пустое, null). Пример: |
– |
– |
есть ложь |
Функция проверяет значение предыдущего атрибута в поле смарт-выражения и возвращает: •истина (1), если предыдущее значение равно "ложь" (0); •ложь (0), если предыдущее значение равно "истина" (1). Пример: В задаче находится параметр "В архиве" с типом "Галочка (Checkbox)", активен. ![]() Задача для тестирования функции Проверка значения параметра, смарт возвращает false: ![]() Пример работы функции Если необходимо проверить истинность значения с помощью функции есть ложь, можно применить функцию дважды: сначала к самому атрибуту, затем к результату первой проверки. Когда "({атрибут} есть ложь) есть ложь" возвращает 1, это означает, что исходное значение атрибута было истинным. ![]() Вариант 1 Альтернативно можно проверить, что "({атрибут} есть ложь) = FALSE" — такой результат также однозначно указывает на истинность исходного значения. ![]() Вариант 2 |
– |
– |
И |
Операция логического умножения. |
– |
– |
ИЛИ |
Операция логического сложения. |
– |
– |
нет значения |
Возвращает "истина" (1) если в предыдущем атрибуте в поле смарт-выражения нет значения (пустое, null); возвращает "ложь" (0) если значение есть. Пример: |
– |
– |
Если ... то ... иначе ... |
|||
Вставить шаблон |
Вставляет в поле смарт-выражения шаблон:
При обработке смарт-выражения шаблон преобразуется в SQL-конструкцию case when... then... else... end |
– |
– |
В случае если иначе конец то |
Вставляет в поле смарт-выражения одну (выбранную) часть шаблона: case when else end then |
– |
– |
Агрегатные
Агрегатные функции выполняют операции над множеством и возвращают результирующее значение.
Функция |
Описание |
Атрибуты |
Возвращаемое значение |
|---|---|---|---|
Максимум |
Возвращает максимальный из элементов массива. Пример: |
Массив чисел, строк или дат. |
Соответствует типу элементов в массиве |
Минимум |
Возвращает минимальный из элементов массива. Пример: ![]() |
Массив чисел, строк или дат. |
Соответствует типу элементов в массиве |
Сконкатенировать в строку |
Преобразует коллекцию атрибутов в строку. Чтобы сформировать XML выборки данных, надо "обернуть" подвыражение в макрос EVALXML. Важно, чтобы описание атрибута XML точно соответствовало названию колонки в таблице БД (в т.ч. с учетом регистра). Пример: ![]() |
Строка1 (XML выборки данных), Строка2 (атрибут XML, который надо сконкатенировать), Строка3 (символ-разделитель конкатенации). |
Строка |
Среднее |
Возвращает среднее арифметическое значений элементов массива. |
Массив чисел |
Число |
Сумма |
Возвращает сумму значений элементов массива. |
Массив чисел |
Число |
Математические
Функция |
Описание |
Атрибуты |
Возвращаемое значение |
|---|---|---|---|
ПоМодулю |
Возвращает абсолютное значение числа (модуль). |
Число |
Число |
МинЦелоеНеМеньше |
Возвращает ближайшее целое число, не меньшее указанного. Например, МинЦелоеНеМеньше(12.3) = 13 |
Число |
Целое число |
МаксЦелоеНеБольше |
Возвращает ближайшее целое число, не большее указанного. Например, МаксЦелоеНеБольше(12.3) = 12 |
Число |
Целое число |
Степень |
Возвращает число N, возведенное в степень M. |
Число (основание степени, N), Число (показатель степени, M). |
Число |
Округлить |
Возвращает округленное число (дробная часть < 0.5 отбрасывается, >= 0.5 округляется в большую строну). |
Число |
Число |
УрезатьДоЗнаков |
Возвращает указанное число с количеством знаков после запятой, не большим максимального заданного; остальные знаки отбрасываются. Например, УрезатьДоЗнаков(123.456, 2) = 123.45 УрезатьДоЗнаков(123, 2) = 123 |
Число (урезаемое число), Число (максимальное количество знаков после запятой). |
|
СлучЗнач |
Возвращает случайное десятичное значение от 0 до 1, подсчитанное на основе указанного числа. |
Число |
Число |
ЗнакЧисла |
Возвращает 1 для положительных значений, -1 для отрицательных, 0 для нуля. |
Число |
Целое число |
Корень |
Возвращает квадратный корень из указанного числа. |
Число |
Число |