3.4. Параметры

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

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

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

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

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

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

Где:

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

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

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

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

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

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

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

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

saveOn=<saveOn>

Где:

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

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

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

Где:

<n> - число, порядковый номер регулярного выражения;
<title> - наименование шаблона;
<regexp> - Java регулярное выражение, описывающее шаблон.

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

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.

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

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

Большая многострочная строка до 65000 символов.

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

rows=<rows>
saveOn=<saveOn>

Где:

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

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

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

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

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

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

Где:

<dirName> - справочник, из которого берутся значения, может быть "address_city" для городов, если справочника нет - значения указываются в самом параметре;
<values> - допустимые коды значений через запятую;
<allowCommentValues> - перечень значений для которых допустимо указание комментария, возможно указание диапазонов, например: 1-3,7,9-14
<needCommentValues> - перечень значений для которых обязателен комментарий, указывается аналогично <allowCommentValues>;
<joinTable> - имя таблицы, с которой осуществляется фильтрующая операция SQL INNER JOIN справочной таблицы;
<joinColumn> - колонка таблицы, по которой проводится JOIN столбца id справочной таблицы;
<joinFilter> - дополнительное условие INNER JOIN.

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

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

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

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

3.4.6. Параметр типа "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.

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

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

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

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

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

Где:

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

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

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

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

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

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

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

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

Замечание

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

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

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

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

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

Замечание

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

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

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

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

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

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

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

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

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

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

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