Показать сообщение отдельно
Старый 22.01.2002, 16:47   #1  
Anton Sk. is offline
Anton Sk.
Участник
 
35 / 11 (1) +
Регистрация: 14.11.2002
Номерные серии в объектах Заказ и Закупка
Добыты некоторые знания о номерных сериях в Axapta.

Была поставлена задача - создать объект закупки со строками для другой компании. При добавлении новой строки в таблицу Закупки, требуется присвоить соответствующему полю уникальный номер. Для Закупки – это будет «Зкп.######».

Для решения задачи присвоения уникального номера я использовал класс NumberSeq. Логика поиска класса ответственного за назначение номерных серий была следующая. В стандартной Axapta при добавлении новой строки в таблицу Закупок используется класс PurchTableType. В этом классе есть метод, запускающий метод класса NumberSeq:
X++:
PurchId  getNewPurchId()
{;
    purchNumberSeq = NumberSeq::newGetNum(purchParameters::numRefPurchId(), true);
    return purchNumberSeq.num();
}
Я использовал этот метод, переписав его в мой класс один в один.

ClassDeclaration:
X++:
class HB_SalesPurchGeneric
{
    NumberSeq       purchNumberSeq;
}
new:
X++:
void new()
{
    purchNumberSeq = new NumberSeq();
}
main:
X++:
static void  main(Args  args)
{
HB_SalesPurchGeneric    hb_SalesPurchGeneric;
PurchId		    numberSeqPurchId;

hb_SaleSPurchGeneric = new HB_SalesPurchGeneric();
. . . . .. . . . .. . . . . . . . . . . . . . . .

//Получаю новый номер серии для Закупки
numberSeqPurchId = hb_SaleSPurchGeneric.getNewPurchId();
. . . . .. . . . .. . . . . . . . . . . . . . . .
}
Для объектов Заказы существует класс SalesTableType, в котором есть аналогичный метод
X++:
SalesId  getNewSalesId()
{
    salesIdSeq = NumberSeq::newGetNum(SalesParameters::numRefSalesId(), true);
    return  salesIdSeq.num();
}
__________________
Антон Скоробогатов