03.09.2007, 15:34 | #1 |
Участник
|
Заказ на покупку
дарова всем, при создании "Заказа на покупку" 1.Созадем шапку,2.Созадем строку
(указываем номенклатуру,потом склад,и кол-во,и нажимаем Ctrl+S,на вкладке "Количество" появляется заказано и к поставке ( по моему) вот подскажите,как вот этот метод называется,( при импорте должны дублироваться все данные в Inventtrans-e кажется |
|
03.09.2007, 15:54 | #2 |
Участник
|
Наверное Вы об этом:
X++: InventMovement::bufferSetTransQtyUnit(purchLine); InventMovement::bufferSetRemainQty(purchLine); Пригодиться еще |
|
03.09.2007, 16:06 | #3 |
Участник
|
где находится метод на сохранения ?
Ваня привет, какой метод при сохранения вызывается ? (Ctrl+S)
|
|
03.09.2007, 16:20 | #4 |
Участник
|
При сохранении второй из двух.
При изменении кол-ва, первый и другие. (все из Purchline::ModifyPurchQty(purchLine,inventDim) См. форму PurchTable |
|
04.09.2007, 08:30 | #5 |
Участник
|
Цитата:
X++: purchLine.PurchUnit = purchUnit;
purchLine.DeliveryDate = str2date(conpeek(line, 5),123);
purchLine.PurchaseType = 3;
counter++;
purchLine.insert();
InventMovement::bufferSetRemainQty(purchLine);
PurchLine::modifyPurchQty(purchLine,invDim);
ttsCommit; Последний раз редактировалось Daido; 04.09.2007 в 08:55. |
|
04.09.2007, 10:03 | #6 |
Участник
|
А что такое - "После импорта не разносится"? Ошибку какую-то выдает?
Есть набор классов, который отвечает за создание строк закупок. PurchAutoCreate и наследники. Весь код, который тебе нужно написать, есть там. Методы, приведенные выше, смысла в данном конкретном задании вызывать нет. Вместо этого лучше воспользоваться методом purchLine.createLine(), передав в него требуемые параметры. Заодно и ошибки другие может подотрет А в приведенном тобой коде методы эти должны были вызываться ДО сохранения записи |
|
04.09.2007, 11:51 | #7 |
Участник
|
|
|
04.09.2007, 13:53 | #8 |
Участник
|
после присовения всех данных к полям вызываю метод purchLine.createLine...
хоть убей,не получается пишет: Цитата:
Код номенклатуры не может быть изменен после того, как были созданы операции по номенклатуре.
Удалить строку и пересоздать ее с новым кодом номенклатуры. X++: purchLine.PurchId = purchId; purchLine.LineNum = conpeek(line, 2); purchLine.ItemId = itemId; ...... purchLine.createLine(NoYes::Yes, NoYes::Yes, NoYes::Yes, NoYes::Yes, NoYes::Yes, NoYes::Yes); |
|
04.09.2007, 14:09 | #9 |
Участник
|
Смотри Map\SalesPurchLine\checkInitFromInventTable
там такой код: X++: boolean checkInitFromInventTable(InventTable inventTable) { boolean ok = true; ; if (this.InventTransId) { ok = checkFailed("@SYS10546" + '\n' + "@SYS15394" ); } if (! inventTable.checkValid(this.ItemId)) { ok = false; } return ok; } Не будем же мы это за тебя делать |
|
04.09.2007, 14:34 | #10 |
Участник
|
Предположение:
Ты делаешь X++: purchLine.clear() |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
04.09.2007, 15:55 | #11 |
Участник
|
да делаю
все даные я передаю в строку,думаю мне просто надо вызывать метод при сохранении Последний раз редактировалось Daido; 04.09.2007 в 15:57. |
|
04.09.2007, 16:01 | #12 |
Member
|
Попробуйте показать код целиком, а не кусочками.
__________________
С уважением, glibs® |
|
04.09.2007, 16:13 | #13 |
Member
|
Чего-то не могу найти вызова purchLine.createLine(...);
Вы таки решили пойти "своим путем"?
__________________
С уважением, glibs® |
|
04.09.2007, 16:43 | #14 |
Member
|
Мне это ничего не даст. Я программно создавать строчки закупок и заказов умею .
Когда вы пишете purchLine.createLine(...), то purchLine.insert() уже писать не нужно. Загляните внутрь purchLine.createLine(...), чтоли... Насчет [Ctrl] + [S] не понял. Вы хотите создать строку или обновить уже существующую? И EVGL привел кусок кода, который решает вашу задачу (если я ее правильно понимаю, конечно)...
__________________
С уважением, glibs® |
|
04.09.2007, 16:46 | #15 |
Участник
|
Проводка в inventTrans создастся сама при вызове purchLine.insert(), если бы у вас было заполнено значение в полях PurchLine.RemainInventPhysical, PurchLine.RemainPurchPhysical.
|
|
04.09.2007, 17:05 | #16 |
Member
|
Тяжело с вами.
X++: server void createLine(boolean validation = false, boolean initFromPurchTable = false, boolean initFromInventTable = false, boolean calcInventQty = false, boolean searchMarkup = true, boolean searchPrice = false) { PurchTable purchTable; InventTable inventTable; boolean dropInvent= false; if (initFromPurchTable) { purchTable= this.purchTable(); this.initFromPurchTable(purchTable); } if (initFromInventTable) { inventTable= this.inventTable(); if (! this.checkInitFromInventTable(inventTable)) throw error("@SYS18447"); this.initFromInventTable(inventTable); } this.initFromVendTable(this.vendTable_OrderAccount()); if (calcInventQty) this.QtyOrdered = this.calcQtyOrdered(); /////////////////////////////////// Смотрите сюда! this.RemainPurchPhysical = this.PurchQty; /////////////////////////////////// this.RemainPurchFinancial = 0; ////////////////////////////////////// Сюда! this.RemainInventPhysical = this.QtyOrdered; ////////////////////////////////////// this.type().initReturn(); if (searchPrice) { this.setPriceDisc(this.inventDim()); } if (validation) if (!this.validateWrite()) throw error("@SYS18447"); if (!this.LineNum) this.LineNum = PurchLine::lastLineNum(this.PurchId) + 1.0; //////////////////////////////////////// И сюда! this.insert(dropInvent,searchMarkup); //////////////////////////////////////// }
__________________
С уважением, glibs® |
|
05.09.2007, 08:57 | #17 |
Участник
|
именно в этом месте
импорт прошел вроде, но в поле Заказано(PurchLine.orderedInPurchUnit()) пусто, это вычисляемое поле,из за него не разносится
Последний раз редактировалось Daido; 05.09.2007 в 10:00. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Заказ на покупку | 3 | |||
Ошибка с разноской "Заказ на покупку" | 11 | |||
Перевод CRM предложения в заказ. | 0 | |||
Производственный заказ типа Заказ | 3 | |||
Заказ не переходит в статус "отгружено" | 29 |
|