По бизнес-логике процесса (услуги) необходимо плясать в расчете себестоимости от заказа:
- приняли заявку
- договорились о ценах
- получили фактические документы от поставщика или нескольких поставщиков) (одна строка заявки - несколько строк закупки или закупок)
- провели документы прихода, потом документы отгрузки
Решил задействовать автонумерацию партий по заказу и ... наткнулся, что для расхода это не работает. Нашел, вроде, где исправлять. Но, т.к. не программист, возникли сомнения (не бейте ногами: проекта пока нет, настраивается макет для демонстрации варианта работы). В методе updateAutoDimMovement класса InventUpd_Estimated внес следующие правки:
X++:
protected void updateAutoDimMovement()
{
boolean updateDim;
InventDim inventDim;
//Автоматическая нумерация партий для расхода по заказам
if (movement.transType() == InventTransType::Sales)
{
if (! movement_Orig && movement.transQty() < 0)
updateDim = this.updateAutoDimBatchId();
}
if (movement.transType() != InventTransType::Sales) //"родной" режим по приходным проводкам работает для закупок и журналов
{
if ((! movement_Orig && movement.transQty() > 0) ||
( movement_Orig && movement_Orig.transQty() <= 0 && movement.transQty() > 0))
{
updateDim = this.updateAutoDimBatchId();
updateDim = this.updateAutoDimSerialId() || updateDim;
}
}
Вопросы. Не зарыл ли я бомбу? Почему изначально не закладывали автонумерацию для партий отгрузок, хотя активизация в группе нумерации для заказов есть?