Показать сообщение отдельно
Старый 06.12.2005, 17:43   #25  
glibs_imported is offline
glibs_imported
Участник
 
202 / 10 (1) +
Регистрация: 04.11.2003
Есть уточнение по поводу расширенного типа Num.

В коде встречаются сортировки по полям, которые заполняются номерными сериями, унаследованными от этого типа. Например,

NumberSeq.getNumInternal()
...
select forupdate firstonly numberSequenceList
index hint StatIdx
...

или

NumberSeq_RU.getNumFromList()
...
select forupdate list
order by num desc
where list.numberSequence == _table.numberSequence &&
list.status == NumStatus::Free;
...

Если Num выровнять влево и не использовать префикс (он обеспечивает одинаковую длинну кода, что приводит к "правильной" сортировке с т.з. входящего в номер числа), то работа некоторых процедур в Аксапте может стать неадекватной или непредсказуемой.

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

Аналогичный пример есть в номерах кассовых ордеров (это по памяти, чтобы не рыться специально в АОТе).

Так что я бы посоветовал так. Если сдвигать Num влево, то для номеров в номерных сериях префиксы использовать ОБЯЗАТЕЛЬНО (по умолчанию, т.е. если вы не доказали обратного).