|  06.04.2010, 18:52 | #1 | 
| Участник | Проблема с ParmId 
			
			[AX 4.0 (4.0.2503), MS SQL] В измененной версии Аксапты, в классе purchFormLetter, закомментировано создание ParmId. (Почему именно, разбираться времени нет — тем более, что клиенты говорят, что до сих пор это не мешало.) Но поскольку ParmId все же нужен, то я его создаю сам: X++: formLetter = new PurchFormLetter_InvoiceAuditCT(); formLetter.transDate(systemdateget()); formLetter.specQty(PurchUpdate::All); // manually obtaining ParmId, because it is disabled in PurchFormLetter numSeq = NumberSeq::newGetNum(NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(ParmId)))); parmId = numSeq.num(); formLetter.parmId(parmId); formLetter.sumBy(AccountOrder::Account); formLetter.createParmUpdate(); X++:                     recordListPurchParmLine.first(purchParmLine);
                    while (purchParmLine)
                    {
                    
    {Если посмотреть, как формируется recordListPurchParmLine, то видно, что запрос имеет примерно такой вид: X++: SELECT * FROM PurchParmLine WHERE ((ParmId = N'21100019165')) AND ((TableRefId = N'21100019168')) Подскажите, в каком хотя бы направлении думать? Последний раз редактировалось Shannon; 06.04.2010 в 19:00. | 
|  | 
|  06.04.2010, 19:23 | #2 | 
| Участник | |
|  | 
|  06.04.2010, 20:26 | #3 | 
| Участник | 
			
			Но, по идее, вначале все равно должен быть создан ParmId, и дальше во всех Parm-таблицах должен прописываться именно он. То есть система должна подхватывать ParmId, созданный и переданный экземпляру класса PurchFormLetter. Или нет?
		 | 
|  | 
|  06.04.2010, 22:07 | #4 | 
| Участник | 
			
			Могу посоветовать только поставить breakpoint в insert PurchParmLine и искать откуда система берёт второй ParmId
		 | 
|  | 
| Теги | 
| ax4.0, invoice, parm tables, posting, purchase, purchase order | 
|  | 
| 
 |