|  01.09.2006, 11:51 | #1 | 
| Участник | Копирование строк из InventJournalTrans в SalesLine 
			
			Как скопировать строки из InventJournalTrans в строки заказа. Делаю так: Код:  while select invJournalTrans
    where invJournalTrans.JournalId == "o_g_000011"
    {
        ttsbegin;
            salLine.SalesId = "Заказ00000010";
            salLine.ItemId = invJournaltrans.ItemId;
            salLine.InventTransId = invJournaltrans.InventTransId;
            salLine.InventDimId = invJournaltrans.InventDimId;
            salLine.QtyOrdered = invJournaltrans.Qty;
            salLine.write();
        ttscommit;
    }Как сделать это правильно? | 
|  | 
|  01.09.2006, 12:12 | #2 | 
| Модератор | 
			
			Смотрите класс SalesLineType метод initFromInventTable С Уважением, Георгий. Ps Я делал метод initFromInventJournalTrans на таблице SalesLine и юзал его. | 
|  | |
| За это сообщение автора поблагодарили: Petruccio (1). | |
|  01.09.2006, 12:58 | #3 | 
| Участник | Цитата: 
		
			Сообщение от George Nordic
			
			 Смотрите класс SalesLineType метод initFromInventTable С Уважением, Георгий. Ps Я делал метод initFromInventJournalTrans на таблице SalesLine и юзал его. Код:  InventJournalTrans  invJournalTrans;
    SalesLine           salesLine;
    InventDim           inventDim;
    InventTable         inventTable;
    InventItemBarcode   inventItemBarcode;
    ;
    while select invJournalTrans
    where invJournalTrans.JournalId == "Ж00061"
    {
        ttsbegin;
        inventTable = InventTable::find(invJournaltrans.ItemId);
        inventDim = invJournaltrans.inventDim();
        inventItemBarcode = InventItemBarcode::findSalesBarcode(inventTable.itemId);
        inventDim.inventLocationId  = inventTable.salesInventLocationId(inventDim.inventLocationId);
        inventDim.configId          = inventDim.configId
                                ? inventDim.configId
                                : inventTable.standardConfigId;
        inventDim.inventSizeId      = inventDim.InventSizeId
                                ? inventDim.InventSizeId
                                : inventTable.standardInventSizeId;
        inventDim.inventColorId     = inventDim.InventColorId
                                ? inventDim.InventColorId
                                : inventTable.standardInventColorId;
        inventDim.inventDimId       = InventDim::findOrCreate(inventDim).inventDimId;
        salesLine.SalesId = "ЗК0024";
        salesLine.ItemId = invJournaltrans.ItemId;
        salesLine.InventTransId     = invJournaltrans.InventTransId;
        salesLine.inventDimId       = InventDim.inventDimId;
        salesLine.projCategoryId    = inventTable.projCategoryId;
        salesLine.setTaxItemGroup(inventTable.salesTaxItemGroupId());
        salesLine.salesUnit         = inventTable.salesUnitId();
        salesLine.overDeliveryPct   = inventTable.salesOverDeliveryPct();
        salesLine.underDeliveryPct  = inventTable.salesUnderDeliveryPct();
        salesLine.initName(inventTable);
        salesLine.initFromCustExternalItemDescription();
        salesLine.salesQty          = invJournaltrans.Qty;
        salesLine.qtyOrdered        = invJournaltrans.Qty;
        salesLine.costPrice         = inventTable.costPcsPrice(invJournaltrans.InventDimId,inventDim);
        salesLine.priceUnit         = inventTable.salesPriceUnit();
        salesLine.lineAmount        = 0;
        salesLine.lineAmountModified();
        salesLine.barCode           = inventItemBarcode.itemBarCode;
        salesLine.barCodeType       = inventItemBarcode.barcodeSetupId;
        salesLine.dimension         = Dimensions::findDimension(salesLine, inventTable, invJournaltrans.dimension);
        salesLine.setPriceDisc(inventDim);
        salesLine.calcPackingUnit(inventDim);
        salesLine.write();
        ttscommit;
    } | 
|  | 
|  01.09.2006, 13:03 | #4 | 
| Участник | 
			
			На SalesLine заполнить СonfigID
		 | 
|  | 
|  01.09.2006, 13:30 | #5 | 
| Участник | Цитата: 
		
			Сообщение от Lokis
			
			 На SalesLine заполнить СonfigID   и так... Для каждой номенклатуры (InventTable) проставляется группа складской аналитики (InventDimGroup). Группа складской аналитики определяет свойства складских аналитик для этой группы  В том числе и обязательное указывание аналитики во всех операциях с номенклатурами, которые принадлежат к соответствующей группе складской аналитики. Как то: заказы, закупки, складские журналы и прочее... А так же есть возможность сделать обязательной аналитику только для конкретных операций. В Вашем случае у какой-то номенклатуры группа складской аналитики определяет обязательное указание конфигурации в строках заказа, и позовляет не указывать конфигурацию в строках складского журнала. Таким образом, надо определиться: 1) Либо разобраться с группами складской аналитики и настроить их как надо; 2) Таки указать какую-нибудь конфигурацию inventDim.ConfigId = CofigTable.ConfigId | 
|  | |
| За это сообщение автора поблагодарили: Petruccio (1). | |
|  01.09.2006, 13:56 | #6 | 
| Участник | 
			
			Всем спасибо! Вопрос решен. В журнале для номенклатуры не была указана конфигурация, поэтому не получалось.
		 | 
|  | 
|  29.09.2006, 10:42 | #7 | 
| Участник | 
			
			При копировании строк таким образом нужно ли добавлять что-нибудь или изменять в InventSum, InventTrans, InventSumLogTTS?
		 | 
|  | 
|  29.09.2006, 10:48 | #8 | 
| Участник | 
			
			Ja ne ponimaju - pochemu vi tak delajete? Код: salesLine.InventTransId = invJournaltrans.InventTransId U kazhdogo zhurnala dolzhna bit svoja provodka - tembolee SalesLine sam delajet nuzhie novije provodki, a tot kod sto vi vzjali iz zurnala budet delat' Collision s inventjournal-om. PS: SalesLine sam delajet update po InventSum (update() -> movement() -> updateNow() ) | 
|  | 
|  29.09.2006, 11:04 | #9 | 
| Участник | Цитата: 
		
			Сообщение от Delfins
			   Ja ne ponimaju - pochemu vi tak delajete? Код: salesLine.InventTransId = invJournaltrans.InventTransId U kazhdogo zhurnala dolzhna bit svoja provodka - tembolee SalesLine sam delajet nuzhie novije provodki, a tot kod sto vi vzjali iz zurnala budet delat' Collision s inventjournal-om. PS: SalesLine sam delajet update po InventSum (update() -> movement() -> updateNow() ) | 
|  | 
|  29.09.2006, 11:11 | #10 | 
| Участник | 
			
			Вообще-то, в методе insert() класса SalesLineType есть такие строки: X++:     numberSeq = NumberSeq::newGetNum(InventParameters::numRefInventTransId());
    salesLine.inventTransId = numberSeq.num();  | 
|  | 
|  29.09.2006, 11:12 | #11 | 
| Участник | 
			
			нет. если вы не укажите специфических параметров для вставки записи, то обновление проводок, а потом и запасов в наличии пройдет автоматически.
		 | 
|  | 
|  29.09.2006, 11:40 | #12 | 
| Участник | 
			
			V principe nomer provodki daze objazatelno ne-ukaziavt'. Pust' sistema ob etom zabotitsja. tak kak eto novaja "zakupka" i dlja etogo ponadobjatsja novijie nomera provodok.
		 | 
|  |