|
|
#1 |
|
Участник
|
Заказ на покупку
дарова всем, при создании "Заказа на покупку" 1.Созадем шапку,2.Созадем строку
(указываем номенклатуру,потом склад,и кол-во,и нажимаем Ctrl+S,на вкладке "Количество" появляется заказано и к поставке ( по моему) вот подскажите,как вот этот метод называется,( при импорте должны дублироваться все данные в Inventtrans-e кажется |
|
|
|
|
#2 |
|
Участник
|
Наверное Вы об этом:
X++: InventMovement::bufferSetTransQtyUnit(purchLine);
InventMovement::bufferSetRemainQty(purchLine);Пригодиться еще |
|
|
|
|
#3 |
|
Участник
|
где находится метод на сохранения ?
Ваня привет, какой метод при сохранения вызывается ? (Ctrl+S)
|
|
|
|
|
#4 |
|
Участник
|
При сохранении второй из двух.
При изменении кол-ва, первый и другие. (все из Purchline::ModifyPurchQty(purchLine,inventDim) ![]() См. форму PurchTable |
|
|
|
|
#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. |
|
|
|
|
#6 |
|
Участник
|
А что такое - "После импорта не разносится"? Ошибку какую-то выдает?
Есть набор классов, который отвечает за создание строк закупок. PurchAutoCreate и наследники. Весь код, который тебе нужно написать, есть там. Методы, приведенные выше, смысла в данном конкретном задании вызывать нет. Вместо этого лучше воспользоваться методом purchLine.createLine(), передав в него требуемые параметры. Заодно и ошибки другие может подотрет ![]() А в приведенном тобой коде методы эти должны были вызываться ДО сохранения записи
|
|
|
|
|
#7 |
|
Участник
|
|
|
|
|
|
#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); |
|
|
|
|
#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;
}Не будем же мы это за тебя делать |
|
|
|
|
#10 |
|
Участник
|
Предположение:
Ты делаешь X++: purchLine.clear() |
|
|
|
| За это сообщение автора поблагодарили: mazzy (5). | |
|
|
#11 |
|
Участник
|
да делаю
![]() все даные я передаю в строку,думаю мне просто надо вызывать метод при сохранении Последний раз редактировалось Daido; 04.09.2007 в 15:57. |
|
|
|
|
#12 |
|
Member
|
Попробуйте показать код целиком, а не кусочками.
__________________
С уважением, glibs® |
|
|
|
|
#13 |
|
Member
|
Чего-то не могу найти вызова purchLine.createLine(...);
Вы таки решили пойти "своим путем"?
__________________
С уважением, glibs® |
|
|
|
|
#14 |
|
Member
|
Мне это ничего не даст. Я программно создавать строчки закупок и заказов умею
.Когда вы пишете purchLine.createLine(...), то purchLine.insert() уже писать не нужно. Загляните внутрь purchLine.createLine(...), чтоли... Насчет [Ctrl] + [S] не понял. Вы хотите создать строку или обновить уже существующую? И EVGL привел кусок кода, который решает вашу задачу (если я ее правильно понимаю, конечно)...
__________________
С уважением, glibs® |
|
|
|
|
#15 |
|
Участник
|
Проводка в inventTrans создастся сама при вызове purchLine.insert(), если бы у вас было заполнено значение в полях PurchLine.RemainInventPhysical, PurchLine.RemainPurchPhysical.
|
|
|
|
|
#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® |
|
|
|
|
#17 |
|
Участник
|
именно в этом месте
импорт прошел вроде, но в поле Заказано(PurchLine.orderedInPurchUnit()) пусто, это вычисляемое поле,из за него не разносится
Последний раз редактировалось Daido; 05.09.2007 в 10:00. |
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Заказ на покупку | 3 | |||
| Ошибка с разноской "Заказ на покупку" | 11 | |||
| Перевод CRM предложения в заказ. | 0 | |||
| Производственный заказ типа Заказ | 3 | |||
| Заказ не переходит в статус "отгружено" | 29 | |||
|