| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Программная вставка строки в заказ на покупку
			 
			
			AX2009. 
		
		
		
		
		
		
		
	Уважаемые Господа! Надо через форму ввести строки в заказ на покупку программным путем. Наверняка, подобная задача решелась множество раз... Не подскажете как это сделать наиболее простым способом? С уважением, Дмитрий.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можно допилить стандартную форму "Создать строки" в строках заказа на покупку, если она чем то не устраивает. 
		
		
		
		
		
		
			Посмотрите метод purchLine.createLine(...) и его использование в стандарте. 
				__________________ 
		
		
		
		
	Sergey Nefedov  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: DmitryK (1). | |
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо, да конечно. Причем, на форуме этот метод описывался. Но в форме PurchQuickQuote я не нашел использования данного метода. Или не туда смотрю? 
		
		
		
		
		
		
		
		
			С уважением, Дмитрий. Последний раз редактировалось DmitryK; 10.07.2012 в 08:52.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Этот метод находится на таблице PurchLine.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	С уважением, Александр.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: DmitryK (1). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Он вызывается в неявном виде через метод purchLine.createFromTmpFrmVirtual(...)
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Sergey Nefedov  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Строку сформировал по примеру purchCopyng.copyline. Все получилось. 
		
		
		
		
		
		
		
	С уважением, Дмитрий.  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Надеюсь, что последний вопрос по данной теме...   
		
		
		
		
		
		
		
	 )purchLine.purchPrice = 123; В результирующей строке заказа цена 0; Есть какие-то дополнительные требования? C уважением, Дмитрий.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А вы как строку в итоге создаете? Приведите весь код. 
		
		
		
		
		
		
			Например, purchLine.createLine() вызываете? С какими параметрами? 
				__________________ 
		
		
		
		
	Ivanhoe as is..  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну и про класс PurchLineType забывать не надо. Метод таблицы это хорошо, конечно. Но при том же инсерте будет вызван данный класс. А обработок там пишут много. Может и перетирается указанное значение.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Поступил по советам бывалых. Запись замечательно создается. Только без цены ...  :O( 
		
		
		
		
		
		
		
	Вот так вызываю. pLine.createLine(true, true, true, true, false, true); C уважением, Дмитрий.  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Так у вас последний true заставляет систему искать цену из прайса. Нет прайса - получаете ноль.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Ivanhoe as is..  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: DmitryK (1). | |
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да, это моя невнимательность. Установил в false. 
		
		
		
		
		
		
		
	pLine.createLine(true, true, true, true, false, false); Но результат тот же. С уважением, Дмитрий.  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			пройдитесь уже дебагером и найдите где у вас обнуляется
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Этими параметрами надо играться...  
		
		
		
		
		
		
		
	Убрал в false initfrominventtable цена в строке появилась. Но не расчитывается сумма по строке. C уважением, Дмитрий.  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
InitFromInventTable метод данного класса. Там идет расчет строки: purchLine.PriceUnit = inventTableModule.priceUnit(); purchLine.LineAmount = 0; purchLine.lineAmountModified(); Скорее всего там и обнуление выскакивает. P.S. Вот любят кодить в таблицах абсолютно забывая про классы. Что salesLine, что purchLine работают с классом *LineType.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: DmitryK (1). | |
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо, сейчас попробую ваш совет. 
		
		
		
		
		
		
		
	С уважением, Дмитрий.  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я бы сделал так (что то типа такого)... 
		
		
		
		
		
		
		
	X++:     AxPurchLine                 axPurchLine;
    ;
    axPurchLine = new axPurchLine();
    axPurchLine.parmPurchId("123");
    axPurchLine.parmItemId("ItemId");
    axPurchLine.parmPurchQty(10);
    
    axPurchLine.parmLineAmount(100);
//    или
    axPurchLine.parmPurchPrice(10);
    axPurchLine.save(); | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			axPurchLine.parmLineAmount(100); 
		
		
		
		
		
		
		
	это 10 * 10? C уважением, Дмитрий  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
|
| За это сообщение автора поблагодарили: DmitryK (1). | |
| 
			
			 | 
		#20 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В принципе, все работает, переделывать задачу не хочется. 
		
		
		
		
		
		
		
	Только не считается автоматом lineAmount (чистая сумма) у purchLine есть множество методов .calc* Может надо их использовать? Если кто знает, не подскажете каккой? C уважением, Дмитрий.  | 
| 
	
 |