| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Уважаемы послетители форума! 
		
		
		
		
		
		
			Подскажите, пожалуйста, как найти цену из таблицы PriceDiscTable если известны только ItemId, InventDimId и дата? Хотелось бы не запросом, а с помощью функции. 
				__________________ 
		
		
		
		
	AX 3.0, Build #9.3  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
для определения цены нужно еще по крайней мере Валюту. А также хорошо было бы получить информацию о количестве, клиенте/поставщике, договоре и о других параметрах. См. класс PriceDisc  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 AX***** 
		
			
	 | 
	
	
	
		
		
		
		
		
		
		
		
		
		
			 
				__________________ 
		
		
		
		
	О, как беден, как груб наш русский язык! [c] А.С.Пушкин  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Валюта - рубли. Информации о клиенте\поставщике нет (оцениваю стоимотсть готовой продукции, поступившей на склад). С этими данными возможно?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	AX 3.0, Build #9.3  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Посмотрела. С ним не получилось, т.к. нет информации о клиенте/поставщике. С классом PriceDisc_Price получилось, но нет полной уверенности в правильности. Может быть, кто-нибудь поможет ссылкой на описание класса PriceDisc_Price?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	AX 3.0, Build #9.3  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 AX***** 
		
			
	 | 
	
	
	
		
		
		
		
		
		
		
		
		
		
			 
				__________________ 
		
		
		
		
	О, как беден, как груб наш русский язык! [c] А.С.Пушкин  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: chanchala (1). | |
| 
			
			 | 
		#7 | 
| 
			
			 Ищущий знания... 
		
			
	 | 
	
	
	
		
		
		
		 
			
			вот пример поиска цены с помощью классе PriceDisc, может подойдет: 
		
		
		
		
		
		
			X++: static void testFindPrice(Args _args) { InventTable inventTable; InventTableModule inventTableModule; Container conPrice; InventDimId inventDimId; TransDate transDate = systemDateGet(); ItemId itemId; ; select firstonly inventTable where inventTable.ItemId == itemId; inventTableModule = inventTable.inventTableModuleSales(); conPrice = PriceDisc::findItemPriceAgreement(ModuleInventPurchSales::Sales, // модуль inventTable.ItemId, // номенклатура InventDim::find(inventDimId), // аналитики inventTableModule.UnitId, // ед изм transDate, // дата inventTableModule.PriceUnit, // кол-во (цена) "", // код клиента CompanyInfo::find().CurrencyCode,// валюта из компании ""); // ценовая группа info(strFmt('Цена - %1', conPeek(conPrice, 1))); // первым номеро в контейнере это цена номенклатуры } 
				__________________ 
		
		
		
		
	"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: АртемМелихов (1). | |
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Добрый день, решил апнуть тему, потому что не понятно как найти цену и скиду   используя PriceDisc_Price  и  PriceDisc_LineDisc, имея только itemId, номер клиента и дату. Спасибо!
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Зачем вам PriceDisc_Price и PriceDisc_LineDisc? Используйте PriceDisc, пример вызова приведен выше.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В постановке требуется сделать расчет, аналогично расчету при создание строки на продажу. А при создание строки используются , описанные выше , классы, наследуемые от PriceDisc. Я до конца не разобрался в них. Я попробовал пример выше и при имеющихся данных(номенклатура,клиент,дата) я не получаю цену, но если создавать на этого клиента заказ, с данной номенклатурой, то цена будет расчитана
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Гость 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Гость 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ок. ок. не хотел никого обидеть: просто в списке параметров не упомянули вот и удивился. 
		
		
		
		
		
		
		
		
			Может конечно меня глючит но PriceDisc_Price и PriceDisc_LineDisc не наследуются от PriceDisc в 12 версии во всяком случае, но активно используют PriceDisc при расчетах в соответствующих методах find...Agreement Инициализацию параметров можно подсмотреть в чем то типа метода priceDisc_PriceCache на мапе SalesPurchLine Последний раз редактировалось axm2013; 18.08.2015 в 12:35.  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Сенбернар 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Цитата: 
	
		
			Сообщение от АртемМелихов
			 
 
			В постановке требуется сделать расчет, аналогично расчету при создание строки на продажу. А при создание строки используются , описанные выше , классы, наследуемые от PriceDisc. Я до конца не разобрался в них. Я попробовал пример выше и при имеющихся данных(номенклатура,клиент,дата) я не получаю цену, но если создавать на этого клиента заказ, с данной номенклатурой, то цена будет расчитана 
		
	X++: conPrice = PriceDisc::findItemPriceAgreement(ModuleInventPurchSales::Sales, // модуль inventTable.ItemId, // номенклатура InventDim::find(inventDimId), // аналитики inventTableModule.UnitId, // ед изм transDate, // дата inventTableModule.PriceUnit, // кол-во (цена) "", // код клиента CompanyInfo::find().CurrencyCode,// валюта из компании ""); // ценовая группа Более подробно не могу пока - ни одной Аксы нет под рукой, к сожалению. 
				__________________ 
		
		
		
		
	Best Regards, Roman  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от axm2013
			 
 
			Ок. ок. не хотел никого обидеть: просто в списке параметров не упомянули вот и удивился. 
		
	Может конечно меня глючит но PriceDisc_Price и PriceDisc_LineDisc не наследуются от PriceDisc в 12 версии во всяком случае, но активно используют PriceDisc при расчетах в соответствующих методах find...Agreement Инициализацию параметров можно подсмотреть в чем то типа метода priceDisc_PriceCache на мапе SalesPurchLine  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от RVS
			 
 
			Вам не о том сказали. Скидка по строке может зависеть, в том числе, и от количества в строке. 
		
	В этом вызове : X++: conPrice = PriceDisc::findItemPriceAgreement(ModuleInventPurchSales::Sales, // модуль inventTable.ItemId, // номенклатура InventDim::find(inventDimId), // аналитики inventTableModule.UnitId, // ед изм transDate, // дата inventTableModule.PriceUnit, // кол-во (цена) "", // код клиента CompanyInfo::find().CurrencyCode,// валюта из компании ""); // ценовая группа Более подробно не могу пока - ни одной Аксы нет под рукой, к сожалению. X++: conPrice = PriceDisc::findItemPriceAgreement(ModuleInventPurchSales::Sales, // модуль inventTable.ItemId, // номенклатура InventDim::find(inventDimId), // аналитики inventTableModule.UnitId, // ед изм transDate, // дата inventTableModule.PriceUnit, // кол-во (цена) custtable.accountNum, // код клиента custtable.Currency,// валюта из компании custtable.PriceGroup); // ценовая группа  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Далее, попробовал создать объект PriceDisc_Price  и заполнить его аналогично заполнению в SalesPurchLine.priceDisc_PriceCache(...). После заполнения через parm  методы, я вызываю PriceDisc_Price.findPriceAgreement(), но получаю нули. Хотя для данного клиента\период\номенклатуру цена ед., при создание строки заказа имеется. Подскажите, может быть нужно вызывать не .findPriceAgreement()?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Снова балуюсь косаптой :) 
		
			
	 | 
	
	
	
		
		
		
		 X++: static void msk_getActualPrice_final(Args _args) { SalesLine SalesLine; InventTable inventTable = InventTable::find("10848834"); ; SalesLine.CurrencyCode = 'EUR'; SalesLine.ItemId = inventTable.ItemId; SalesLine.CustAccount = "420407"; SalesLine.initFromCustTable(); SalesLine.initFromInventTable(inventTable); salesLine.setPriceDisc(salesLine.inventDim()); info(strfmt("Price = %1", salesLine.SalesPrice)); } 
				__________________ 
		
		
		
		
	Бесты и регарды!  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: smailik (1). | |
| Теги | 
| pricedisc, готовая продукция, законченный пример, поиск цены, цена | 
| 
	
	 | 
	
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| как найти файл? | 8 | |||
| Найти ошибки компиляции | 6 | |||
| Исчезновение формы "Найти" | 3 | |||
| Как найти отчет для правки в АОТ? | 3 | |||
| Как найти нужную номерную серию? | 3 | |||
		
  |