Перейти к содержанию

Предиктивный ввод в формулах

Ввод имён объектов

Для ввода формул в редакторе выражений предусмотрены предиктивный ввод и подсказки:

  • При вводе символов $, $$, ->, <-, ==, !=, имён объектов, функций и аргументов, а также при нажатии клавиш Ctrl+Пробел отображается список подходящих по контексту сущностей.
  • При вводе имён функций отображаются подсказки с их описанием.

Ввод имени функции и просмотр подсказки по функции

  1. Введите любые буквы имени функции.
  2. Отобразится список подходящих функций, введённые буквы будут выделены в именах функций.
  3. Выберите функцию в списке.
  4. Для выбранной функции отобразится подсказка с описанием функции, её параметров и возвращаемого значения.
  5. Чтобы просмотреть подробное описание функции в справочнике нажмите пункт «Показать в справочнике» в подсказке.
  6. Чтобы вставить выбранную функцию в формулу, дважды нажмите её имя в списке.

Подсказка при предиктивном вводе имени функции

Подсказка при предиктивном вводе имени функции

Ввод запроса from where select

Запрос from where select возвращает список значений из указанного источника данных, соответствующих заданному условию.

Ввод заготовки конструкции from where select

С помощью предиктивного ввода можно вставить заготовку запроса from where select.

  1. Нажмите клавиши Ctrl+Пробел.
  2. Отобразится список источников данных для запроса — атрибутов типа «Запись» в текущем шаблоне и шаблонов в текущем приложении.

    Список источников данных для запроса from where select
    Список источников данных для запроса from where select

  3. Дважды нажмите системное имя атрибута или шаблона в списке, чтобы вставить в формулу заготовку конструкции from where select для него:

    Заготовка конструкции from where select
    Заготовка конструкции from where select

  4. Замените строку Ваше условие после оператора where на условие выборки записей из источника данных.

Ввод запроса из атрибута текущего шаблона

  1. Введите строку:

    from a in 
  2. После ввода оператора in отобразится список доступных источников данных. Этот список также можно вызвать, нажав клавиши Ctrl+Пробел в позиции после оператора in.

    Список источников данных
    Список источников данных

  3. Дважды нажмите системное имя атрибута типа «Запись», отображающегося в списке с префиксом $ и без суффикса (запрос), чтобы вставить его в формулу.

  4. Введите условие выборки записей и атрибут для выборки с помощью операторов where и select.
Пример: формула, возвращающая список записей в шаблоне, связанном с атрибутом Costs, в которых значение атрибута TotalAmount больше значения атрибута PlannedCosts в текущей записи
from a in $Costs where a->TotalAmount > $PlannedCosts select a->id 

Ввод запроса из шаблона текущего приложения

  1. Введите строку:

    from a in db-> 
  2. После ввода символов db-> отобразится список шаблонов текущего приложения. Этот список также можно вызвать, нажав клавиши Ctrl+Пробел в позиции после db->.

    Список шаблонов в текущем приложении
    Список шаблонов в текущем приложении

  3. Дважды нажмите системное имя шаблона, чтобы вставить его в формулу.

  4. Введите условие выборки записей и атрибут для выборки с помощью операторов where и select.

    Пример: формула, возвращающая количество записей в шаблоне Cars, с таким же значением атрибута Make, как в текущей записи
    COUNT(from a in db->Cars where a->Make == $Make select a->id) 

Ввод системного имени атрибута после переменной-селектора

Здесь используется приведённый ниже пример конфигурации приложения.

  1. Введите строку:

    from a in $RequestedCars where a-> 
  2. После ввода символов a-> отобразится список атрибутов шаблона, связанного с атрибутом RequestedCars, на который ссылается локальная переменная-селектор a. Этот список также можно вызвать, нажав клавиши Ctrl+Пробел в позиции после a->.

    Список атрибутов, вызванный посредством переменной-селектора
    Список атрибутов, вызванный посредством переменной-селектора

  3. Дважды нажмите системное имя атрибута _creator, чтобы вставить его в формулу. _creator — это системный атрибут, в котором хранится ID аккаунта, создавшего запись.

  4. Введите строку:

    == USER() select a->id 
Пример: формула, возвращающая количество записей в шаблоне, связанном с атрибутом RequestedCars, созданных под текущим аккаунтом
COUNT(from a in $RequestedCars where a->_creator == USER() select a->id) 

Ввод системного имени атрибута из цепочки связанных шаблонов

Здесь используется приведённый ниже пример конфигурации приложения.

  1. Введите строку:

    from a in $$RequestedCars where b->_creator-> 
  2. После ввода символов _creator-> отобразится список атрибутов системного шаблона аккаунта, с которым связан системный атрибут _creator. Этот список также можно вызвать, нажав клавиши Ctrl+Пробел в позиции после оператора ->.

    Список атрибутов, вызванный по цепочке связанных шаблонов
    Список атрибутов, вызванный по цепочке связанных шаблонов
    3. Дважды нажмите системное имя атрибута username, чтобы вставить его в формулу. 4. Введите строку:

    == "admin" select a->id 
Пример: формула, возвращающая список записей в шаблоне, связанном с атрибутом $RequestedCars, созданных под аккаунтом admin
from a in $RequestedCars where a->_creator->username == "admin" select a->id 

Практический пример: Подсчёт количества автомобилей марки «Лада» в заявке

Конфигурация приложения

  • Шаблон записи «Заявка на автомобили»
    • Атрибут «Запрошенные автомобили»
      • Системное имя: RequestedCars
      • Тип данных: запись
      • Связанный шаблон: Автомобили
      • Хранить несколько значений: флажок установлен
    • Запись: заявка на несколько автомобилей разных марок
  • Шаблон записи «Автомобили»
    • Атрибут «Марка»
      • Системное имя: Make
      • Тип данных: текст
      • Использовать как заголовок записей: флажок установлен
    • Записи: УАЗ, Москвич, Лада

Составление формулы

  1. Введите функцию COUNT(). См. «Ввод имени функции и просмотр подсказки по функции».
  2. В позиции аргумента функции нажмите клавиши Ctrl+Пробел.
  3. Отобразится список источников данных.

    Список источников данных для запроса
    Список источников данных для запроса

  4. Дважды нажмите в списке пункт $RequestedCars (запрос), чтобы вставить в формулу заготовку конструкции from where select для него:

    Заготовка запроса
    Заготовка запроса
    5. Выделите строку Ваше условие после оператора where, чтобы заменить её на условие выборки записей из шаблона «Автомобили».

  5. Введите строку where a->.

  6. В отобразившемся списке атрибутов шаблона «Автомобили» дважды нажмите системное имя атрибута Make, чтобы вставить его в формулу. См. «Ввод системного имени атрибута после переменной-селектора»

    Список атрибутов шаблона _«Автомобили»_
    Список атрибутов шаблона «Автомобили»

  7. Введите оператор == и нажмите клавиши Ctrl+Пробел.

  8. Отобразится список записей шаблона «Автомобили» в виде марок автомобилей. См. «Ввод заголовка записи связанного шаблона».

    Список записей в шаблоне _«Автомобили»_
    Список записей в шаблоне «Автомобили»

  9. Дважды нажмите пункт «Лада», чтобы вставить в формулу строковый литерал "Лада".

Формула, подсчитывающая автомобили «Лада» в заявке
COUNT(from a in $RequestedCars where a->Make == "Лада" select a->id) 

Синтаксис формулы

  • COUNT() — возвращает количество элементов в списке, переданном в качестве аргумента.
  • from a — объявление локальной переменной a.
  • in $RequestedCars — объявление атрибута RequestedCars в качестве источника данных.
  • where a->Make == "Лада" — выборка в переменную a записей, связанных с атрибутом RequestedCars, у которых атрибут Make имеет значение "Лада".
  • select a->id — выборка значений атрибута id полученных записей и передача списка этих значений в функцию COUNT().

Ввод заголовка записи связанного шаблона

Если в шаблоне указан атрибут-заголовок записей, то при нажатии клавиш Ctrl+Пробел в позиции после системного имени атрибута типа «Запись», связанного с этим шаблоном, отобразится список записей связанного шаблона с соответствующими заголовками.

Практический пример: подсчёт количества выполняющихся заявок

Конфигурация приложения

  • Шаблон записи «Заявка на автомобиль»

    • Системное имя: Zayavkanaavtomobil.
    • Атрибут «Статус»
      • Системное имя: Status.
      • Тип данных: Запись.
      • Связанный шаблон: Статус заявки.
  • Шаблон записи «Статус заявки»

    • Системное имя: Statuszayavki.
    • Тип данных: Запись.
    • Атрибут «Название»
      • Системное имя: Nazvanie.
      • Тип данных: Текст.
      • Использовать как заголовок записей: флажок установлен.
      • Записи: Выполняется, Отклонена, Завершена, На рассмотрении, Создана.

Составление формулы

  1. Введите функцию COUNT(), которая возвращает количество элементов в списке, переданном в качестве аргумента. См. также раздел «Ввод имени функции и просмотр подсказки по функции».
  2. В позиции аргумента функции нажмите клавиши Ctrl+Пробел и выберите шаблон Zayavkanaavtomobil.
  3. В формулу будет вставлена заготовка конструкции from-where-select для шаблона Zayavkanaavtomobil.
  4. Строку Ваше условие замените в заготовке замените на b->Status->Nazvanie ==, чтобы привести формулу к виду:
    COUNT(from b in db->Zayavkanaavtomobil 
    where b->Status->Nazvanie ==
    select b->id)
  5. Нажмите клавиши Ctrl+Пробел в позиции после оператора ==.
  6. Отобразится список записей шаблона «Статус заявки».
    Список записей шаблона
    Список записей шаблона
  7. Дважды нажмите пункт «Выполняется», чтобы вставить в формулу литерал "Выполняется".
Пример: формула, возвращающая количество записей в шаблоне Zayavkanaavtomobil, связанных с записью «Выполняется» в шаблоне Status
COUNT(from b in db->Zayavkanaavtomobil 
where b->Status->Nazvanie == "Выполняется"
select b->id)

Ввод системного имени атрибута записи, возвращаемой функцией

Для функций, которые возвращают записи, при предиктивном вводе отображается список атрибутов соответствующего шаблона.

  1. Введите функцию USER(), возвращающую текущий аккаунт.
  2. Введите оператор ->.
  3. Отобразится список системных атрибутов аккаунта. Этот список также можно вызвать, нажав клавиши Ctrl+Пробел в позиции после оператора ->.
    Список атрибутов аккаунта, возвращаемого функцией USER()
    Список атрибутов аккаунта, возвращаемого функцией USER()
  4. Дважды нажмите системное имя атрибута, чтобы вставить его в формулу.
Пример: формула, возвращающая имя пользователя текущего аккаунта
USER()->username 

Ввод аргументов функции OBJECT()

Функция OBJECT() возвращает список записей шаблона по заданным системным именам приложения, шаблона и атрибута и значению атрибута. При предиктивном вводе её аргументов отображаются списки подходящих приложений, шаблонов и атрибутов.

  1. Введите функцию OBJECT().
  2. Нажмите клавиши Ctrl+Пробел в позиции внутри скобок.
  3. Отобразится список приложений.
  4. Дважды нажмите системное имя приложения в списке, чтобы вставить его в формулу.
  5. Введите запятую и нажмите клавиши Ctrl+Пробел.
  6. Отобразится список шаблонов в приложении, выбранном на шаге 4.
  7. Дважды нажмите системное имя шаблона в списке, чтобы вставить его в формулу.
  8. Введите запятую и нажмите клавиши Ctrl+Пробел.
  9. Отобразится список атрибутов шаблона, выбранного на шаге 7.
    Список атрибутов шаблона при предиктивном вводе аргументов функции OBJECT()
    Список атрибутов шаблона при предиктивном вводе аргументов функции OBJECT()
  10. Дважды нажмите системное имя атрибута, чтобы вставить его в формулу.
  11. Введите запятую, пробел и искомое значение атрибута в кавычках.
Пример: формула, возвращающая список записей шаблона Avtomobil из приложения Upravlenieavtoparkom, в которых атрибут Marka имеет значение «Лада»
OBJECT("Upravlenieavtoparkom", "Avtomobil", "Marka", "Лада") 

Ввод системного имени значения атрибута типа «Список значений»

Редактор выражений может подсказывать системное имя значения атрибута типа «Список значений».

Ввод системного имени значения после оператора сравнения

  1. Введите символ $, системное имя атрибута типа «Список значений» и оператор == или !=.
  2. Нажмите клавиши Ctrl+Пробел.
  3. Отобразится список системных имён значений атрибута.
    Список значений атрибута после оператора
    Список значений атрибута после оператора
  4. Дважды нажмите системное имя значения атрибута, чтобы вставить его в формулу.
    Пример: формула, возвращающая количество записей в шаблоне Zayavkanaotpusk со значением атрибута Statuszayavki, равным Odobrena
    COUNT(from b in db->Zayavkanaotpusk 
    where b->Statuszayavki == "Odobrena"
    select b->id)

Ввод системного имени значения в качестве аргумента функции

  1. Введите функцию EQUALS() (возвращает true, если её аргументы равны).
  2. В позицию первого аргумента введите символ $ и системное имя атрибута типа «Список значений».
  3. В позиции второго аргумента нажмите клавиши Ctrl+Пробел.
  4. Отобразится список значений атрибута.
    Список значений атрибута при вводе аргумента функции
    Список значений атрибута при вводе аргумента функции
  5. Дважды нажмите системное имя значения атрибута, чтобы вставить его в формулу.
Пример: формула возвращающая true, если в текущей записи атрибут Statuszayavki имеет значение Odobrena
EQUALS($Statuszayavki, "Odobrena") 

Ввод системного имени атрибута текущего шаблона

  1. Введите символ $.
  2. Отобразится список атрибутов текущего шаблона.
    Список атрибутов текущего шаблона
    Список атрибутов текущего шаблона
  3. Дважды нажмите системное имя атрибута, чтобы вставить его в формулу.
Пример: формула, возвращающая целочисленное значение атрибута Passazhiry в текущей записи
INT($Passazhiry) 

Ввод системного имени атрибута связанного шаблона

  1. Введите символ $ и системное имя атрибута типа «Запись» текущего шаблона.
  2. Введите оператор ->.
  3. Отобразится список атрибутов шаблона, связанного с указанным на шаге 1 атрибутом. Этот список также можно вызвать, нажав клавиши Ctrl+Пробел в позиции после оператора ->.
    Список атрибутов связанного шаблона
    Список атрибутов связанного шаблона
  4. Дважды нажмите системное имя атрибута, чтобы вставить его в формулу.
Пример: формула, возвращающая сумму значений атрибута Summa из шаблона, связанного с атрибутом Zatraty, и атрибута Nalog в текущей записи
ADD($Zatraty->Summa, $Nalog) 

Ввод запроса записей с совпадающими значениями атрибутов

Оператор <- (обратная стрелка) возвращает список записей из связанного шаблона, у которых значение атрибута типа «Запись», указанного после стрелки, совпадает со значением указанного перед стрелкой атрибута типа «Запись» текущего шаблона.

  1. Введите символ $ и системное имя атрибута типа «Запись» текущего шаблона.
  2. Введите оператор <-. Этот список также можно вызвать, нажав клавиши Ctrl+Пробел в позиции после оператора <-.
  3. Отобразится список системных имён шаблонов, связанных с указанным атрибутом.
    Подсказка системных имён шаблонов, связанных с атрибутом
    Подсказка системных имён шаблонов, связанных с атрибутом
  4. Дважды нажмите системное имя шаблона, чтобы вставить его в формулу.
  5. После двоеточия введите системное имя атрибута типа «Запись», связанного с текущим шаблоном.

Практические примеры

Запрос списка автомобилей такого же типа, как указан в текущей заявке

Конфигурация приложения

  • Шаблон «Типы автомобилей» — содержит записи с типами автомобилей.
  • Шаблон «Заявки на автомобили» — содержит заявки с указанием типа автомобиля.
    • Атрибут «Тип автомобиля»
      • Системное имя: CarType
      • Тип данных: запись
      • Связанный шаблон: Типы автомобилей
  • Шаблон «Автомобили» — содержит записи об автомобилях различных типов.
    • Системное имя: Cars
    • Атрибут «Тип»
      • Системное имя: Type
      • Тип данных: запись
      • Связанный шаблон: Типы автомобилей
Формула в шаблоне «Заявки на автомобили», возвращающая список записей в шаблоне Cars с таким же значением атрибута Type, как у атрибута CarType в текущей записи
$CarType<-Cars:Type 

Запрос количества заявок на такой же автомобиль, как в текущей заявке

Конфигурация приложения

  • Шаблон «Автомобили» — содержит записи о различных автомобилях.
    • Системное имя: Cars
  • Шаблон «Заявки на автомобили»
    • Системное имя: Requests
    • Атрибут «Автомобиль»
      • Системное имя: Car
      • Тип данных: запись
      • Связанный шаблон: Автомобили
Формула в шаблоне Requests, возвращающая количество записей с таким же значением атрибута Car, как в текущей записи.
COUNT($Car<-Requests:Car) 

Ввод имён переменных в сценарии

При редактировании формул в сценариях предиктивный ввод подсказывает имена локальных переменных в текущем сценарии.

  1. Введите символы $$.
  2. Отобразится список системных и локальных переменных, доступных в текущем сценарии. См. «Использование переменных в сценарии».
  3. Дважды нажмите имя переменной, чтобы вставить его в формулу.

Список локальных переменных в сценарии

Список локальных переменных в сценарии

Пример: формула, прибавляющая 1 день к текущей дате
ADDDAYS($$requestTime, 1) 
К началу