Перейти к основному содержимому
Версия: 1.9.0

Автозаполнение

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

  • Пользовательский тип автозаполнения позволит вам создать скрипт, чтобы выбрать определенное значение среди записей, удовлетворяющих условиям всех выборок, или указать одну конкретную запись, которая будет использована как значение для автозаполнения;
  • При типе автозаполнения Балансировка нагрузки система будет автоматически выбирать среди значений, удовлетворяющих условиям всех выборок, ту запись, которая используется как значение реже других в записях таблицы для автозаполнения;
  • При типе автозаполнения Поочередно записи, удовлетворяющие условиям всех выборок, будут использоваться поочередно, одна за другой, как значение.
подсказка

Требуемые роли:

  • Создание, изменение, удаление – crm_admin, admin.
  • Чтение – любой пользователь агентского интерфейса.

Создание правила автозаполнения


внимание

Автозаполнение происходит только при создании новой записи. Никакие другие события не вызовут автоматическое заполнение полей записи по правилу.

Чтобы создать правило автозаполнения, выполните следующие шаги:

  1. Перейдите в CRM → Параметры → Правила автозаполнения.

  2. Нажмите Создать и заполните поля.

  3. Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения. В таблице Бизнес-правила (sys_business_rule) будет создана запись, содержащая и выполняющая логику правила автозаполнения.

    Заполнение полей созданного бизнес-правила
    1. Наименование созданного бизнес-правила заполняется по шаблону: {Наименование правила автозаполнения} Autocomplete Business Rule.

    2. Часть полей созданного бизнес-правила заполняется значениями из правила автозаполнения. Таблица ниже показывает, как заполненные поля бизнес-правила соотносятся с полями правила автозаполнения.

      Поле в таблице Правила автозаполненияПоле в таблице Бизнес-правила
      ОписаниеОписание
      НаследуемоеНаследуемое
      АктивноАктивно
      Таблица для автозаполненияТаблица
      Условия автозаполненияУсловия фильтра
    3. Часть полей созданного бизнес-правила заполняется автоматически предопределенными значениями, одинаково для всех подобных правил:

      ПолеЗначение
      КогдаПеред
      Порядок999
      Создание записиДа
      Расширенные настройкиДа

Поля формы Правила автозаполнения

ПолеОбязательноОписание
НаименованиеДаУкажите название правила автозаполнения.
ОписаниеНетДобавьте описание правила автозаполнения.
АктивноНетУстановите флажок, чтобы активировать правило автозаполнения. Когда правило активно, автозаполнение выполняется согласно его настройкам. Если вы деактивируете правило автозаполнения, созданное бизнес-правило также деактивируется.
НаследуемоеНетУстановите флажок, чтобы автоматически созданное Бизнес-правило работало и для дочерних таблиц указанной Таблицы для автозаполнения.
Использовать скрипт для значения автозаполненияНетПоле отображается, если значение поля Тип автозаполненияПользовательский. Установите флажок, чтобы с помощью скрипта создать логику выбора значения для автозаполнения из записей, во вторичную выборку.
Использовать скрипт для уточнения выборкиНетПоле отображается, если значение поля Тип автозаполненияПользовательский и выбран флажок Использовать скрипт для значения автозаполнения. Установите флажок, чтобы создать скрипт для сужения вторичной выборки после применения заданного для нее условия.
Бизнес-правилоНет

Поле заполняется автоматически после сохранения записи и ссылается на автоматически созданное бизнес-правило, которое реализует логику автозаполнения.

Вы можете управлять этим бизнес-правилом в соответствующей секции навигатора: Настройка системыБизнес-правила.

Таблица для первичной выборкиДаУкажите таблицу с полем, ссылающимся на таблицу возможных значений для автозаполнения.

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

Условия первичной выборкиНетС помощью конструктора условий укажите условие для записей Таблицы первичной выборки. Например, если Таблица для первичной выборкиПользователи групп, в текущем поле вы можете указать конкретную группу, пользователи которой могут быть использованы как значение автозаполнения.

Поле Значение для автозаполнения будет очищено при изменении значения текущего поля.

Поле для вторичной выборкиДаУкажите поле типа Reference Таблицы первичной выборки или ее родительской таблицы, которое ссылается на таблицу значений для автозаполнения. Например, если Таблица для первичной выборкиПользователи групп, в текущем поле вы можете выбрать колонку Пользователь, чтобы использовать записи профилей сотрудников, включенных в указанные группы, как возможные значения для автозаполнения.

При изменении значения текущего поля Значение для автозаполнения и Поле для автозаполнения будут очищены.

Условия вторичной выборкиНетИспользуйте конструктор условий, чтобы сузить вторичную выборку возможных значений. Например, если для первичной выборки указана таблица Пользователи групп, а в поле для вторичной выборки указана колонка Пользователь, в условии можно указать дополнительный критерий для пользователей выбранной согласно условию первичной выборки группы. Таким критерием может быть активность или принадлежность к определенной компании.

Поле Значение для автозаполнения будет очищено при изменении значения текущего поля.

Таблица для автозаполненияДаУкажите таблицу, в записи которой необходимо подставлять значение, полученное в результате применения первичной и вторичной выборок, настроенных для них условий, и выполнения скриптов, если они настроены.
Поле для автозаполненияДаПоле отображается после указания Таблицы для автозаполнения. Укажите поле типа Reference Таблицы для автозаполнения, в которое необходимо подставить значение.

Поле Значение для автозаполнения будет очищено при изменении значения текущего поля.

Условия автозаполненияНетПоле отображается после указания Таблицы для автозаполнения. Используйте конструктор условий, чтобы указать условие для записей Таблицы для автозаполнения, которое должно быть выполнено, чтобы текущее правило было применено к записи. Например, вы можете разрешить автозаполнение только для записей, созданных в определенных статусах.
Тип автозаполненияДа

Выберите тип автозаполнения. Доступные опции:

  • Пользовательский – позволяет задавать логику автозаполнения гибко, включая использование скриптов. Если флажок Использовать скрипт для значения автозаполнения выбран, вы сможете указать логику выбора значения среди записей, включенных во вторичную выборку, в поле Скрипт для значения автозаполнения. Вы также сможете выбрать флажок Использовать скрипт для уточнения выборки, чтобы сузить список возможных значений с помощью другого скрипта, который укажете в поле Скрипт для уточнения выборки. Если флажок Использовать скрипт для значения автозаполнения очищен, вы сможете указать одно значение для автозаполнения в поле Значение автозаполнения. Значение по умолчанию.
  • Балансировка нагрузки – позволяет автоматически вычислять и использовать наименее "загруженное" значение среди записей, включенных во вторичную выборку. Система подсчитывает число записей Таблицы для автозаполнения для каждого значения, включенного во вторичную выборку, исключая записи таблицы для автозаполнения в Игнорируемых статусах, после чего выбирает значение, использующееся реже всего, и заполняет им Поле для автозаполнения. Если есть несколько значений, использующихся одинаково часто, система выбирает среди значений запись, созданную позже всего.
  • Поочередно – позволяет использовать значения, включенные во вторичную выборку, поочередно, одно за другим. При каждом автозаполнении Текущая позиция счетчика будет увеличиваться на 1, пока не пройдет все значения, соответствующие условиям первичной и вторичной выборок, после чего подсчет начнется сначала.
Скрипт для уточнения выборкиДа/НетПоле обязательно и отображается, когда выбран флажок Использовать скрипт для уточнения выборки. Создайте скрипт, который дополнительно сузит список возможных значений для автозаполнения после применения условий первичной и вторичной выборок.
Скрипт для значения автозаполненияДа/НетПоле обязательно и отображается, когда выбран флажок Использовать скрипт для значения автозаполнения. Создайте скрипт, который определяет запись, которая должна быть использована как Значение для автозаполнения, среди записей, прошедших вторичную выборку и критерии скрипта для уточнения выборки, если он настроен.
Поле со статусомДа/НетПоле отображается и обязательно, если значение поля Тип автозаполненияБалансировка нагрузки. Выберите поле типа Choice указанной Таблицы для автозаполнения или ее родительской таблицы, содержащее статус записи.

При изменении значения текущего поля Игнорируемые статусы будут очищены.

Игнорируемые статусыНетПоле отображается, если значение поля Тип автозаполненияБалансировка нагрузки. Выберите значения статуса, в которых записи не учитываются для расчета нагрузки.
Текущая позиция счетчикаДаПоле обязательно и отображается, если значение поля Тип автозаполненияПоочередно. Укажите текущую позицию счетчика автозаполнения. Позиция рассчитывается исходя из даты создания записей, включенных во вторичную выборку: запись, созданная позже всех, имеет позицию 0. Каждая предыдущая созданная запись имеет позицию на 1 больше. При первоначальном запуске правила автозаполнения отсчет начинается с номера 1, то есть, второй записи в списке по дате создания. Если вы создадите новую запись, соответствующую условиям всех выборок, позиции предыдущих записей сдвинутся на 1, и одна из записей может быть использована как значение повторно. Подобная ситуация также может произойти, если старая запись станет соответствовать условиям всех выборок: она встроится во вторичную выборку согласно дате создания, сдвигая на 1 позиции более старых записей.
Значение автозаполненияДа/НетПоле отображается и обязательно, если выполнены все следующие условия:
  • значение поля Тип автозаполненияПользовательский;
  • снят флажок Использовать скрипт для значения автозаполнения;
  • заполнены поля Поле для вторичной выборки, Поле для автозаполнения.
Среди записей, включенных во вторичную выборки, укажите значение, которым нужно автоматически заполнить Поле для автозаполнения.

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

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

  2. Если после применения всех выборок не найдено подходящих значений, автозаполнение не произойдет. Вы увидите соответствующее всплывающее сообщение на форме записи, куда должно было быть подставлено значение.

  3. Изменение значений следующих полей на форме правил автозаполнения влияет на созданное бизнес-правило:

    • Наименование
    • Описание
    • Таблица для автозаполнения
    • Условия автозаполнения
    • Поле для автозаполнения
    • Активно
    • Наследуемое

    Изменение значений других полей не обновит созданное бизнес-правило.

  4. В систему заложена логика проверки присутствия сотрудника на рабочем месте, если:

    • значение для автозаполнения относится к таблице Пользователь (user) или дочерней таблице;
    • для таблицы возможных значений настроен механизм отсутствий;
    • согласно таблице Отсутствия (sys_personal_schedule_entry) пользователь, являющийся значением, сегодня не находится на рабочем месте.

    При соблюдении всех указанных условий, в зависимости от Типа автозаполнения будет реализована различная логика:

    Тип автозаполненияРезультат
    • Балансировка
    • Поочередно
    • Пользовательский без указания Скрипта для значения автозаполнения
    Пользователь, являющийся значением для автозаполнения, пропускается, и вместо него назначается следующий пользователь, входящий в выборку.
    Пользовательский с указанием Скрипта для значения автозаполненияПроверка на отсутствие проводится перед подачей вторичной выборки в скрипт. Если логика скрипта назначает пользователя, который сегодня отсутствует, автозаполнение не произойдет. Вы увидите соответствующее всплывающее сообщение на форме записи, куда должно было быть подставлено значение.