Параметры

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

setup 9

Редактор параметра выглядит следующим образом. Для всех типов кроме спискового (отличия будут рассмотрены далее) его вид идентичен.

setup 10

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

setup 11

Свойство Скрипт параметра позволяет установить класс, обрабатывающий события изменения параметра.

Ключи конфигурации параметра различаются для типов параметров, общие для всех типов необязательные значения:

# коды параметров сущности, которые должны быть заполнены перед установкой данного параметра
requireBeforeFillParamIds=<codes>
# коды параметров сущности, которые должны быть пустыми перед установкой данного параметра
requireBeforeEmptyParamIds=<codes>
# теги параметра через запятую - тегированный параметр можно просматривать или править
# только явно разрешив тег в настройке прав на изменение параметра либо просмотр параметров
tags=<tags>
# редактор параметра недоступен (параметр загружается посредством API к БД либо HTTP API)
readonly=1

Где:

  • <codes> - коды параметров через запятую;

  • <tags> - теги через запятую.

Группы параметров контрагентов

Группа параметров необходима для ограничения списка параметров контрагента определённого объекта. Например: "Физическое лицо", "Юридическое лицо".

Шаблоны названия контрагентов

Шаблон названия позволяет устанавливать зависимость названия объектов от его параметров. Подстановка параметров осуществляется макросами вида ${param_<code>}, где <code> - уникальный код параметра. Так, например, возможна генерация названия контрагента юридического лица из параметров спискового "Форма собственности" и текстового "Наименование организации", что предотвращает дублирование информации. При изменении параметров в дальнейшем наименование объекта будет правиться автоматически.

Параметр типа "text"

Однострочная строка до 250 символов.

В конфигурации параметра могут быть указаны следующие необязательные параметры:

saveOn=<saveOn>
# параметр содержит URL, в просмотре параметров отображение ссылки перехода по ссылке
showAsLink=1
# вместо значение параметра выводится <ЗНАЧЕНИЕ ЗАШИФРОВАНО>, параметр можно только поправить, нельзя просмотреть
encrypt=encrypted
hint=<hint content>
# отображение подсказки под input элементом

Где:

  • <saveOn> - режим сохранения, может быть "focusLost", по-умолчанию сохранение производится по нажатию кнопки Ок либо Enter.

  • <hint content> - настраиваемая текстовая подсказка под input элементом.

В конфигурации параметра могут быть указаны одна или несколько конструкций вида:

regexp.<n>.title=<title>
regexp.<n>.regexp=<regexp>

Где:

  • <n> - число, порядковый номер регулярного выражения;

  • <title> - наименование шаблона;

  • <regexp> - REGEXP, описывающее шаблон.

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

regexp.1.title=<город без г.>,<улица без ул.>,<дом без д.>
regexp.1.regexp=[а-яА-Я\s\-]+,[\dа-яА-Я\s\-]+,\s*[\dа-яА-Я/]+
regexp.2.title=<город без г.>,<улица без ул.>,<дом без д.>,<номер квартиры>
regexp.2.regexp=[а-яА-Я\s\-]+,[\dа-яА-Я\s\-]+,\s*[\dа-яА-Я/]+,*\s*\d+
regexp.3.title=<город без г.>,<улица без ул.>,<дом без д.>,<номер квартиры>, <номер комнаты>
regexp.3.regexp=[а-яА-Я\s\-]+,[\dа-яА-Я\s\-]+,\s*[\dа-яА-Я/]+,*\s*\d+,\s*\d+

В данном случае параметр контрагента адрес по прописке проверяется на соответствие одному из шаблонов. Содержание шаблонов легко понять из атрибутов title.

В таблице параметр выглядит следующим образом.

setup 12

Параметр типа "blob"

Большая многострочная строка до 65000 символов. В конфигурации параметра могут быть указаны следующие необязательные параметры:

rows=<rows>
saveOn=<saveOn>
hint=<hint content>

Где:

  • <rows> - количество отображаемых в редакторе строк, по-умолчанию 4;

  • <saveOn> - режим сохранения, может быть "focusLost" (потеря фокуса полем), по-умолчанию сохранение производится по нажатию кнопки Ок;

  • <hint content> - настраиваемая текстовая подсказка под input элементом.

В таблице параметр выглядит следующим образом.

setup 13

Параметр типа "list"

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

В конфигурации параметра могут быть указаны следующие необязательные параметры:

# мультивыбор
multiple=1
# сохранение сразу после выбора значефния, без нажатия кнопки Ок (только для параметра с одним выбором)
saveOn=select
editAs=<editAs>
#
# сортировка значений по наименованию а не в порядке кодов
sort.mode=byTitle
#
allowCommentValues=<allowCommentValues>
needCommentValues=<needCommentValues>
#
directory=<dirName>
availableValues=<values>
availableValuesInnerJoinFilter=<joinTable>;<joinColumn>;<joinFilter>
availableValuesInnerJoinDependencyFilter=<dependencyFilter>

Где:

  • <editAs> - может принимать значения combo - по-умолчанию, выпадающий список, radio - выбор значения в виде переключателей, select - выпадающий список с возможностью поиска значения;

  • <dirName> - справочник, из которого берутся значения, может быть "address_city" для городов, если справочника нет - значения указываются в самом параметре;

  • <values> - допустимые коды значений через запятую;

  • <allowCommentValues> - перечень значений для которых допустимо указание комментария, возможно указание диапазонов, например: 1-3,7,9-14

  • <needCommentValues> - перечень значений для которых обязателен комментарий, указывается аналогично <allowCommentValues>;

  • <joinTable> - имя таблицы, с которой осуществляется фильтрующая операция SQL INNER JOIN справочной таблицы;

  • *<joinColumn> - колонка таблицы, по которой проводится JOIN столбца id справочной таблицы;

  • <joinFilter> - дополнительное условие INNER JOIN;

  • <dependencyFilter> - дополнительное условие для возможности фильтрации доступных значений относительно редактируемого объекта (в выражении можно использовать { objectId } которое будет подменено на ID объекта в котором редактируют данный параметр)

Пример конфигурации параметра, в котором доступны контрагенты, входящие в группу с кодом 3.

multiple=1
directory=customer
availableValuesInnerJoinFilter=customer_group;customer_id;group_id IN (3)

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

setup 14
setup 15
setup 16

Пример параметра с несколькими значениями (мультивыбор). Конфигурация - как выглядит в таблице и редактирование.

setup 17
setup 18
setup 19

Параметр типа "listcount"

Позволяет выбирать перечислимые значения с указанием количества для них. На снимке экрана ниже - редактор свойств параметра, конфигурирование значений аналогично параметру типа "list".

setup 20 new

В таблице параметров.

setup 21 new

Редактор.

setup 22 new

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

Имеется возможность:

  • конфигурирования размера дробной части (от 0 до 5 знаков);

  • редактирования параметра через UI;

  • управления значением параметра через интеракторы.

В конфигурации параметра могут быть указаны следующие параметры:

# Количество знаков после запятой
# Принимает значение от 0 до 5
# В случае указания неподдерживаемого значения, используется значение по-умолчанию
# По-умолчанию 2
scale=2

# Ограничение минимального значения параметра, допустимого для использования
# Принимает неотрицательное числовое значение
# Может не быть указан, если не указан, ограничение не производится
# Если указано невалидное значение, значение игнорируется
min=

# Ограничение максимального значения параметра, допустимого для использования
# Принимает числовое значение
# Может не быть указан, если не указан, ограничение не производится
# Если указано невалидное значение, значение игнорируется
max=

Параметр типа "tree"

Допустимые значения могут быть организованы в дерево. В конфигурации параметра могут быть указаны следующие необязательные параметры:

# несколько значений в дереве
multiple=1

Как выглядят конфигурация, таблица параметров и редактирование.

setup 23
setup 24
setup 25

Параметр типа "date"

Дата: год - месяц - день. В конфигурации параметра могут быть указаны следующие необязательные параметры:

# возможность смены месяца
changeMonth=true
# возможность смены года
changeYear=true
yearRange=<yearRange>
# возможность редактирования поля с клавиатуры
editable=1
saveOn=<saveOn>
# при редактировании поля отправка классу-обработчику изменений параметра события ru.bgcrm.event.DateChangingEvent, позволяющего раскрашивать даты различными цветами и сопровождать примечаниями #sendColorMapRequest=1

Где:

  • <yearRange> - диапазон отображаемых лет в выпадающем списке годов, могут быть значения от текущего года, например: -10:+30 , либо значения от текущей выбранной даты, например: c:-10:c+30, по-умолчанию с10:с+10;

  • <saveOn> - режим сохранения, может быть "focusLost" (потеря фокуса полем) либо "enter" (нажатие клавиши "Enter"), по-умолчанию режим "enter"; актуально только при editable=1.

Для параметра yearRange нулевое значение указывать как +0, например: -10:+0

В таблице параметр и его редактор выглядят следующим образом.

setup 26
setup 27

Параметр типа "datetime"

Дата + время различной точности.

В конфигурации параметра могут быть указаны следующие необязательные параметры:

type=<type>
stepHour=<stepHour>
stepMinute=<stepMinute>
#
# при редактировании поля отправка классу-обработчику изменений параметра события ru.bgcrm.event.DateChangingEvent, позволяющего раскрашивать даты различными цветами и сопровождать примечаниями #sendColorMapRequest=1

Где:

  • <type> - может принимать значения ymdh, ymdhm, ymdhms в зависимости от требуемой точности поля;

  • <stepHour> - шаг в выборе часов;

  • <stepMinute> - шаг в выборе минут.

Пример параметра. Конфигурация, как выглядит в таблице и редактирование.

setup 28
setup 29

Параметр типа "address"

Адресный, ссылающийся на дом в справочнике адресов.

В конфигурации параметра могут быть указаны следующие необязательные параметры:

# несколько адресов в параметре
multiple=1

Как выглядит в таблице и редактирование.

setup 30
setup 31

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

Формат строки отображаемой в таблице задаётся в конфигурации.

Параметр типа "phone"

Один или несколько телефонов с комментариями.

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

Как выглядит в таблице и редактирование.

setup 32
setup 33
Формат строки отображаемой в таблице задаётся в конфигурации.

Параметр типа "email"

Один или несколько EMail адресов либо только адресов доменов с комментариями.

В конфигурации параметра могут быть указаны следующие необязательные параметры:

# несколько EMail в параметре
multiple=1
# regexp-паттерн, которому должен соответствовать EMail-адрес
validation.regexp="^testMail@.*"
# флагу, которым должен соответствовать EMail-адрес
validation.flags=1,2

Валидация параметра типа "email"

Валидация происходит в первую очередь по тому паттерну, который указан в конфигурации параметра. Если в конфигурации отсутствует validation.regexp - валидация проводится по тому паттерну и тем флагам, которые указаны в глобальной конфигурации (email.regexp и email.flags соответственно). Если же и в глобальной конфигурации отсутствует паттерн, то по умолчанию берётся паттерн, вшиты в код ERP-а (ru.bgcrm.util.Utils#rfc6531).

Приоритет выбора регулярного выражения для валидации: Конфигурация параметра → Глобальная конфигурация → Значение по умолчанию

Как выглядит в таблице и редактирование.

setup 34
setup 35

Параметр типа "file"

Один или несколько файлов.

В конфигурации параметра могут быть указаны следующие необязательные параметры:

# несколько файлов в параметре
multiple=1

В таблице параметр выглядит следующим образом.

setup 36

Параметр типа "boolean"

Графической интерпретацией параметра является чекбокс, галочку в котором может нажать и отжать. Наличие галочки соответствует значению true, отсутствие - false.

Для установки соответствия между значением параметра какому-то смысловому описанию в конфигурации boolean-параметра можно задать:

checked.text=<checkedText>
unchecked.text=<uncheckedText>

Где:

<checkedText> - текстовое описания значения true, соответствующего нажатой галочке;

<uncheckedText> - текстовое описания значения false, соответствующего отжатой галочке.

В карточке процесса - параметр выглядит следующим образом.

setup 38

Параметр типа "number"

Параметр данного типа содержит в себе значение в виде числа с плавающей запятой. Имеется возможность:

  • конфигурирования размера дробной части (от 0 до 5 знаков);

  • редактирования параметра через UI;

  • управления значением параметра через интеракторы.

В конфигурации параметра могут быть указаны следующие параметры:

# Количество знаков после запятой
# Принимает значение от 0 до 5
# В случае указания неподдерживаемого значения, используется значение по-умолчанию
# По-умолчанию 0
scale=0

# Ограничение минимального значения параметра, допустимого для использования
# Принимает числовое значение
# Может быть не указан; Если не указан, ограничение не производится
# Если указано невалидное значение, значение игнорируется
min=

# Ограничение максимального значения параметра, допустимого для использования
# Принимает числовое значение
# Может быть не указан; Если не указан, ограничение не производится
# Если указано невалидное значение, значение игнорируется
max=

В БД введённое значение хранится в формате decimal(20,5).

В карточке процесса - параметр выглядит следующим образом.

setup 39