Показать сообщение отдельно
Старый 17.06.2008, 10:22   #8  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Имею отношение к решению аналогичной задачи двумя способами. После перехода на четверку создал-таки специальную сущность "Нумераторы" (и не в SQL-табличке какой-нить, а непосредственно в базе CRM). Таблицу нумераторов снабдил четырьмя ключевыми атрибутами: "Имя сущности" - nvarchar.45 (такую длину выбрал не помню исходя из каких соображений - тут на истину не претендую, но мне хватает); "Номер" - int; "Префикс" - nvarchar.5 (снова-таки по длине мне пяти символов - за глаза); "Кратность" - int.
"Имя сущности" должно содержать оригинальное имя нумеруемой сущности так, как оно именуется в системе в единственном числе (account, contact, phonecall etc.).
"Номер" - целочисленное значение номера последнего нумерованного элемента.
"Префикс" - строковое значение, которое необходимо добавить перед номером, а-ля: ККК0001.
"Кратность" - целочисленное значение количества разрядов числа, которое не может быть превышено при нумерации элементов, но в то же время, если текущее число нумерации имеет меньшую разрядность, то разница будет заполнена нулями, чтобы получить такое например значение номера: 000000000000432.
Данные нумераторов обрабатываются синхронно, плагином перед записью необходимой сущности (pre-action).
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!