11.03.2010, 10:50 | #1 |
Участник
|
Добрый день, интересует следующий несложный вопрос:
Имеются девственные серийные номера, скажем, A-000(A-999), B-000(B-999), C-000(C-999) В зависимости от содержащихся позиций в заказе на основе этих номеров создаются работы (на основе Job разнесены разные серийные номера по типу работ) A-001, B-001, C-001, но не факт что все три, возможно только A, B или C (или А+B, B+C, A+C), в итоге имеем, что новые задания имеют вид, скажем, A-051, B-032, C-045. Это неудобно, когда у заказа 3 задания, которые имеют абсолютно разные цифры... хотелось бы чтобы B и C пропустили все номера до наивысшего (51) и все имели бы вид A-051, B-051, C-051. Делать кодом или можно как-то стандартным функционалом? Кодом, я так понимаю, отделять цифру от строки у всех трёх, сравнивать какое число выше и в остальные 2 задания впихивать свежеподставленное наивысшее насильно (на то там и галочка Ручная Нумерация имеется). Слишком уж узкоспециализированный способ кодом видится мне.. а вдруг серийные номера будут не A-001, а A-10-0001 или A-01C-100001(где 10 надо отбросить,просто разделителя тире нет). |
|
11.03.2010, 12:01 | #2 |
Участник
|
Нужно при создании нового документа всегда использовались все три серии. Т.е даже если работа не нужна нужно использовать номер.
Обычно номера "выдает" кодеюнит NoSeriesManagement. На Insert строки стоит нечто типа NoSeriesMgt.GetNextNo(КакойТоСетап.СерияНомеров,Дата,TRUE); Вот нужно и вызвать такую функцию для каждой работы) |
|
11.03.2010, 12:25 | #3 |
Участник
|
Превосходная идея Куда-то я полез далеко в предположениях, какие-то отделения цифр, сравнения, ведь, действительно, можно инициировать номер каждой серии при создании документа, 30 секунд спасибо, благодарен
|
|