|
![]() |
#1 |
Заноза в заднице
|
Имею отношение к решению аналогичной задачи двумя способами. После перехода на четверку создал-таки специальную сущность "Нумераторы" (и не в SQL-табличке какой-нить, а непосредственно в базе CRM). Таблицу нумераторов снабдил четырьмя ключевыми атрибутами: "Имя сущности" - nvarchar.45 (такую длину выбрал не помню исходя из каких соображений - тут на истину не претендую, но мне хватает); "Номер" - int; "Префикс" - nvarchar.5 (снова-таки по длине мне пяти символов - за глаза); "Кратность" - int.
"Имя сущности" должно содержать оригинальное имя нумеруемой сущности так, как оно именуется в системе в единственном числе (account, contact, phonecall etc.). "Номер" - целочисленное значение номера последнего нумерованного элемента. "Префикс" - строковое значение, которое необходимо добавить перед номером, а-ля: ККК0001. "Кратность" - целочисленное значение количества разрядов числа, которое не может быть превышено при нумерации элементов, но в то же время, если текущее число нумерации имеет меньшую разрядность, то разница будет заполнена нулями, чтобы получить такое например значение номера: 000000000000432. Данные нумераторов обрабатываются синхронно, плагином перед записью необходимой сущности (pre-action).
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
|
|