Для большинства сущностей в системе возможно определение настраиваемых параметров. Редактирование перечня параметров осуществляется на вкладке
интерфейса администратора. Выбор сущности, для которой определяются параметры, производится в выпадающем списке. Список сущностей может расширяться при установке плагинов.Редактор параметра выглядит следующим образом. Для всех типов кроме спискового (отличия будут рассмотрены далее) его вид идентичен.
Таблица параметров сущности выглядит подобным образом. Порядок записи в таблице определяется числовым полем
параметра.Свойство динамический класс, обрабатывающий события изменения параметра.
параметра позволяет установитьКлючи конфигурации параметра различаются для типов параметров, общие для всех типов необязательные значения:
# коды параметров сущности, которые должны быть заполнены перед установкой данного параметра requireBeforeFillParamIds=<codes> # коды параметров сущности, которые должны быть пустыми перед установкой данного параметра requireBeforeEmptyParamIds=<codes> # теги параметра через запятую - тегированный параметр можно просматривать или править # только явно разрешив тег в настройке прав на изменение параметра либо просмотр параметров tags=<tags> # редактор параметра недоступен (параметр загружается посредством API к БД либо HTTP API) readonly=1
Где:
- коды параметров через запятую; |
- теги через запятую. |
Группа параметров необходима для ограничения списка параметров контрагента определённого объекта. Например: "Физическое лицо", "Юридическое лицо".
Шаблон названия позволяет устанавливать зависимость названия объектов от его параметров. Подстановка параметров осуществляется макросами вида
, где - уникальный код параметра. Так, например, возможна генерация названия контрагента юридического лица из параметров спискового "Форма собственности" и текстового "Наименование организации", что предотвращает дублирование информации. При изменении параметров в дальнейшем наименование объекта будет правиться автоматически.Однострочная строка до 250 символов.
В конфигурации параметра могут быть указаны следующие необязательные параметры:
saveOn=<saveOn>
Где:
- режим сохранения, может быть "focusLost" (потеря фокуса полем) либо "enter" (нажатие клавиши "Enter"), по-умолчанию режим "enter". |
В конфигурации параметра могут быть указаны одна или несколько конструкций вида:
regexp.<n>.title=<title> regexp.<n>.regexp=<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.
В таблице параметр выглядит следующим образом.
Большая многострочная строка до 65000 символов.
В конфигурации параметра могут быть указаны следующие необязательные параметры:
rows=<rows> saveOn=<saveOn>
Где:
- количество отображаемых в редакторе строк, по-умолчанию 4; |
- режим сохранения, может быть "focusLost" (потеря фокуса полем) либо "enter" (нажатие кнопки под полем), по-умолчанию режим "enter". |
В таблице параметр выглядит следующим образом.
Параметр с выбираемыми из набора значениями. Значения могут быть определены как конфигурации параметра так и во внешнем справочнике, на который ссылается параметр. Для некоторых значений можно добавить возможность или установить обязательное требование указания комментария.
В конфигурации параметра могут быть указаны следующие необязательные параметры:
# мультивыбор multiple=1 # сохранение сразу после выбора значения, без нажатия кнопки Ок (только для параметра с одним выбором) saveOn=select # allowCommentValues=<allowCommentValues> needCommentValues=<needCommentValues> # directory=<dirName> availableValues=<values> availableValuesInnerJoinFilter=<joinTable>;<joinColumn>;<joinFilter>
Где:
- справочник, из которого берутся значения, может быть "address_city" для городов, если справочника нет - значения указываются в самом параметре; |
- допустимые коды значений через запятую; |
- перечень значений для которых допустимо указание комментария, возможно указание диапазонов, например: 1-3,7,9-14 |
- перечень значений для которых обязателен комментарий, указывается аналогично ; |
- имя таблицы, с которой осуществляется фильтрующая операция SQL INNER JOIN справочной таблицы; |
- колонка таблицы, по которой проводится JOIN столбца id справочной таблицы; |
- дополнительное условие INNER JOIN. |
Пример конфигурации параметра, в котором доступны контрагенты, входящие в группу с кодом 3.
multiple=1 directory=customer availableValuesInnerJoinFilter=customer_group;customer_id;group_id IN (3)
Пример параметра с одним значением. Конфигурация - как выглядит в таблице и редактирование.
Пример параметра с несколькими значениями (мультивыбор). Конфигурация - как выглядит в таблице и редактирование.
Дата: год - месяц - день.
В конфигурации параметра могут быть указаны следующие необязательные параметры:
# возможность смены месяца changeMonth=true # возможность смены года changeYear=true yearRange=<yearRange> # возможность редактирования поля с клавиатуры editable=1 saveOn=<saveOn> # при редактировании поля отправка классу-обработчику изменений параметра события ru.bgcrm.event.DateChangingEvent, позволяющего раскрашивать даты различными цветами и сопровождать примечаниями #sendColorMapRequest=1
Где:
- диапазон отображаемых лет в выпадающем списке годов, могут быть значения от текущего года (-10:+30) либо значения от текущей выбранной даты (c:-10:c+30), по-умолчанию с-10:с+10; |
- режим сохранения, может быть "focusLost" (потеря фокуса полем) либо "enter" (нажатие клавиши "Enter"), по-умолчанию режим "enter"; актуально только при =1. |
В таблице параметр и его редактор выглядят следующим образом.
Дата + время различной точности.
В конфигурации параметра могут быть указаны следующие необязательные параметры:
type=<type> stepHour=<stepHour> stepMinute=<stepMinute> # # при редактировании поля отправка классу-обработчику изменений параметра события ru.bgcrm.event.DateChangingEvent, позволяющего раскрашивать даты различными цветами и сопровождать примечаниями #sendColorMapRequest=1
Где:
- может принимать значения ymdh, ymdhm, ymdhms в зависимости от требуемой точности поля; |
- шаг в выборе часов; |
- шаг в выборе минут. |
Пример параметра. Конфигурация, как выглядит в таблице и редактирование.
Адресный, ссылающийся на дом в справочнике адресов.
В конфигурации параметра могут быть указаны следующие необязательные параметры:
# несколько адресов в параметре multiple=1
Как выглядит в таблице и редактирование.
Доступен контекстный поиск по подстроке улицы и дому. Несмотря на приведённый пример использовать подобный параметр для адреса прописки не следует, т.к. он требует наличия в справочнике домов записей обо всех домах, используемых в значениях параметров.
Формат строки отображаемой в таблице задаётся в конфигурации.
Один или несколько телефонов с комментариями.
В конфигурации параметра ничего не указывается.
Как выглядит в таблице и редактирование.
Формат строки отображаемой в таблице задаётся в конфигурации.
Один или несколько EMail адресов либо только адресов доменов с комментариями.
В конфигурации параметра могут быть указаны следующие необязательные параметры:
# несколько EMail в параметре multiple=1
Как выглядит в таблице и редактирование.