Как настроить вычисляемое поле

  1. В настройке таблицы добавить колонку и в качестве типа данных указать "Вычисляемое поле".
  2. Задать выражение для вычисления значения поля. Поддерживаются следующие типы выражений:
    • Арифметические операции над числовыми полями таблицы и фиксированными числами;
    • Арифметические операции над полями типа Дата-время и Время;
    • Соединение текстовых полей;
    • Получение значения поля из другой таблицы, если на нее есть ссылка в текущей таблице;
    • Выражения, содержащие системные функции (список функций и способ их применения см. ниже).
  3. Сохранить настройку и перейти к просмотру таблицы. Для всех записей таблицы значения нового поля уже будут рассчитаны.

Примеры применения вычисляемых полей

Рассмотрим простой пример. Пусть у нас есть таблица "Клиенты", в которой имеются ФИО клиентов. Требуется хранить эти данные в трех отдельных полях – "Фамилия", "Имя" и "Отчество", чтобы случайно не возникла ситуация, что один клиент оказался заведен дважды – как Иван Иванов и как Иванов Иван Иванович. При этом хочется иметь одно поле, в котором содержится ФИО целиком, для удобной ссылки на клиента в таблице "Заказы". Тут нам и пригодится вычисляемое поле с выражением f1+' '+f2+' '+f3, где f1, f2 и f3 – системные коды полей "Фамилия", "Имя" и "Отчество", соответственно.

Или другой пример, тоже из реальной практики наших пользователей. В таблице "Заказы" при выборе товара хочется сразу увидеть его фото и цену. Эти данные есть в таблице "Товары", на которую ссылается колонка "Товар" из таблицы "Заказы". Добавляем два вычисляемых поля "Фото" и "Цена" и указываем для них выражения f1.f2 и f1.f3, где f1 – системный код поля "Товар" в таблице "Заказы", а f2 и f3 – системные коды полей "Фото" и "Цена" в таблице "Товары". Если кроме базовой цены у товара может быть цена со скидкой, то можно также добавить вычисляемое поле "Цена со скидкой", рассчитываемое по формуле f1.f3*(100-f4)/100, где f4 – системный код поля "Скидка" в таблице "Заказы", где задается размер скидки в процентах.

В вычисляемых также могут применяться специальные системные функции. Например, если вам нужно посчитать возраст человека на основе данных о дате его рождения, имеющихся в таблице, то в качестве выражения вычисляемого поля нужно написать Возраст(f1), где f1 – системный код колонки "Дата рождения".

Функции для использования в выражениях

В качестве выражения для суммирования и выражения критерия фильтра передаются строки.

Функции, работающие с датой

Возраст(<дата>) - Возвращает резнице в годах между текущей и указанной.

ТекущееВремя() - Возвращает текущее время.

Сейчас() - Возвращает текущую дату и время.

GetDate(<дата>) - извлечь дату из типа ДатаВремя.

ТекущаяДата() - Возвращает текущую дату.

ДеньНедели(<Дата>) – возвращает число от 1 до 7, где 1 соответствует понедельнику, а 7 – воскресенью.

НазваниеМесяца(<число>) - Возвращает номер месяца для заданной даты.

КонМесяца(<дата>) - Возвращает последний день месяца в формате дата.

НачМесяца(<дата>) - Возвращает первый день месяца в формате дата.

Год(<дата>) - Возвращает номер года для заданной даты.

Месяц(<дата>) - Возвращает номер месяца для заданной даты.

День(<дата>) - Возвращает номер дня в месяце для заданной даты.

РабочийДень(<дата>) - Функция определяет, является ли заданная дата рабочим днём.

ДобавитьРабВремя(Дата-время, Время) – к заданному дате-времени добавляет время с учетом графика рабочего времени и возвращает итоговую дату-время. Например, при графике работы с понедельника по пятницу с 10:00 до 19:00, добавление к понедельнику 18:00 двух часов даст в результате вторник 11:00.

ДобавитьРабДней(Дата, Число) принимает дату начала периода и количество рабочих дней, возвращает дату конца периода.

КолРабочихДней(Дата_начала, Дата_конца) принимает дату начала и конца периода и рассчитывает, сколько в этом периоде рабочих дней. Результат возвращает в виде целого числа.

РабВремя(Дата_начала, Дата_конца) принимает дату-время начала и конца периода и рассчитывает, сколько в этом периоде рабочего времени. Результат возвращает как значение времени.

Секунда(<время>[<дата>]) - Возвращает число от 0 до 59, представляющее секунду в значении даты/времени.

Минута(<время>[<дата>]) - Возвращает число от 0 до 59, представляющее минуту в значении даты/времени.

Час(<время>[<дата>]) - Возвращает целое число от 0 до 23, представляющее количество часов.

Дней(<время>) - возвращает кол-во полных дней в значении времени как целое число дробная часть отбрасывается.

Время(<часы>,<минуты>,<секунды>) - Формирует тип значения "время".

Дата(<год>,<месяц>,<день>) - Формирует тип значения "дата".

 

Функции, работающие со строками

ЧислоПрописью(<число>,<род>,<язык>) - Возвращает число прописью.

StrComp(<строка1>,<строка2>) - Сравнивает строки без учета регистра.

ПерваяБуква(<строка>) - Возвращает первую букву из строки.

ДлинаСтроки(<поле или выражение>) - Возвращает число символов в переданной строке

СуммаПрописью(<поле или выражение>) - Возвращает сумму прописью: рубли в текстовом виде, копейки в числовом.

 

Функции, работающие с числами

Округлить(<число – поле или выражение>[, <до сколько знаков округлять; по умолчанию до целого числа>]).

Число(<строка>) - Преобразует строку в число.

КодСимвола(<строка>) - Возвращает код первого символа в строке (0-255).

 

Функции прочие

ПустоеЗначение(<поле или выражение>) - Возвращает да, если поле или выражение пустое.

GetRecUrl(<запись>) - получить url-адрес для просмотра записи.

GetAppUrl() - получить url-адрес текущего приложения. Адрес оканчивается слэшем.

 

Функции, работающие с пользователями

Пользователь(<логин>) - Возвращает пользователя.

ТекущийПользователь() - Возвращает текущего пользователя.

GetUser(<логин>) - Возвращает пользователя.

ПользовательВРоли(<пользователь>,<код роли>) – определяет, обладает ли пользователь роль. Возвращает да, когда пользователь обладает указанной ролью.

Функции логические

Если(<условие>,<выражение>[, <выражение для случая, когда условие не выполнено>])

Функции, работающие со списками

Exists(<Список значений>) - Возвращает да в случае если в списке есть хотябы один элемент, иначе возвращает нет.

ПустойСписок(<Список значений>) - Возвращает да в случае если список пуст, иначе возвращает нет.

Список(<элемент1>[,<элемент2>,<элемент3>,<элемент4>,<элемент5>]) - Объединяет значения в список (от 1 до 5 значений).

contains(<список>[значение],<значение>) - Возвращает да, когда значение содержится в списке.

containsAny(<списокА>,<списокБ>) - Возвращает да, когда хотя бы одно значение из спискаА содержится в спискеБ.

Преобразовать(<выражение>) - возвращает для списка ссылок на запись список значений другого поля. Подробнее

СложитьМножества(<списокА>,<списокБ>) - объединяет значения из списокаА и списокаБ в один список без повторов.

Функции, работающие с базой данных

БДВЫБРАТЬ(<номер таблицы>,[,<выражение критерия отбора>,<параметр выражения1>,<параметр выражения2>,<параметр выражения3>,<параметр выражения4>,<параметр выражения5>,<параметр выражения6>,<параметр выражения7>,<параметр выражения8>]) - Возвращает набор записей, удовлетворяющих выражению критерия отбора.

БДВЫБРАТЬСОРТ(<номер таблицы>[,<выражение критерия отбора>,<название поля сортировки>,<параметр выражения1>,<параметр выражения2>,<параметр выражения3>,<параметр выражения4>,<параметр выражения5>,<параметр выражения6>,<параметр выражения7>,<параметр выражения8>]) - Возвращает набор записей, удовлетворяющих выражению критерия отбора, отсортированных по полю.

БДИЗВЛЕЧЬ(<номер таблицы>,<выражение определяющее возвращаемое значение>[,<выражение критерия отбора>,<параметр выражения1>,<параметр выражения2>,<параметр выражения3>,<параметр выражения4>,<параметр выражения5>,<параметр выражения6>,<параметр выражения7>,<параметр выражения8>]) - Возвращает одну запись, удовлетворяющую выражению критерия отбора.

БДИЗВЛЕЧЬСОРТ(<номер таблицы>,<выражение определяющее возвращаемое значение>[,<выражение критерия отбора>,<название поля сортировки>,<параметр выражения1>,<параметр выражения2>,<параметр выражения3>,<параметр выражения4>,<параметр выражения5>,<параметр выражения6>,<параметр выражения7>,<параметр выражения8>]) - Возвращает первую запись из набора, удовлетворяющих выражению критерия отбора, отсортированных по полю.

БДМИН(<номер таблицы,<выражение определяющее возвращаемое значение>[,<название поля сортировки>,<выражение критерия отбора>,<параметр выражения1>,<параметр выражения2>,<параметр выражения3>,<параметр выражения4>,<параметр выражения5>,<параметр выражения6>,<параметр выражения7>,<параметр выражения8>]) - Возвращает минимальную запись из набора, удовлетворяющих выражению критерия отбора.

БДМАКС(<номер таблицы,<выражение определяющее возвращаемое значение>[,<название поля сортировки>,<выражение критерия отбора>,<параметр выражения1>,<параметр выражения2>,<параметр выражения3>,<параметр выражения4>,<параметр выражения5>,<параметр выражения6>,<параметр выражения7>,<параметр выражения8>]) - Возвращает максимальную запись из набора, удовлетворяющих выражению критерия отбора.

БДСУММ(<номер таблицы,<выражение определяющее возвращаемое значение>[,<название поля сортировки>,<выражение критерия отбора>,<параметр выражения1>,<параметр выражения2>,<параметр выражения3>,<параметр выражения4>,<параметр выражения5>,<параметр выражения6>,<параметр выражения7>,<параметр выражения8>]) - Возвращает сумму набора, удовлетворяющих выражению критерия отбора.

GetRecordChangeKind(<Запись>) - Как была изменена запись. 0 - небыла изменена, 1 - создана, 2 - обновлена, 3 - удалена.

IsFieldChanged(<запись>,<имя поля>) - было ли изменено поле (испольуется в выражениях валидации перед сохранением, а также в выражениях оповещений при изменении данных).

GetPriorFieldValue(<запись>,<имя поля>) - получить значение поля перед изменением.

 

href="http://redconnect.ru">Сервис звонка с сайта RedConnect
Отправить запрос
Заказать обратный звонок
Если Вам не удалось до нас дозвониться или вы хотели бы, чтобы мы перезвонили вам сами, пожалуйста, заполните форму и мы обязательно перезвоним Вам!
Отправить запрос
Оставить отзыв для руководства
В работе любой организации бывают случаи, когда клиент может существенным образом повлиять на работу и принципы организации. Если Вам не понравилось что-то в нашей работе, или вы что-то хотели бы донести до руководства Компании, просим оставлять такие отзывы здесь. Вы можете так же приложить файл с вашим официальным письмом.