Показать сообщение отдельно
Старый 05.06.2014, 08:57   #13  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Вместо прямого вызова priceDisc.findPriceAgreement() используйте priceDisc.findPrice()

Пример использования \Data Dictionary\Maps\SalesPurchLine\Methods\setPriceAgreement
Именно этот метод используется для поиска цены при создании строки заказа через стандартный функционал.

Обратите внимание, что в стандартном функционале в случае отсутствия необходимой позиции в прайсе, будет возвращена цена, указанная на справочнике номенклатуры. За это отвечает второй параметр метода findPrice.
Сработало.
Второй параметр я думаю смысла нет использовать, все-таки тарифы в прайсе есть для каждой номенклатуры (вернее. SalesLine может быть построен в любом случае), хоть они могут быть и неправильные.
Но надо разобраться с этим отдельно...

Тут еще такая вещь интересная: для номенклатур, цены продажи у которых общие и не зависят ни от клиента, ни от конфигурации вместо числового значения в PriceDiscTable.inventDimId стоит "Axapta", а не что-то вроде "000014_031"... соответственно, в таблице inventDim для "Axapta" строк нет... Почему ставится "Axapta"?

К тому же, если для такой номенклатуры выполнить
X++:
priceDisc.findPriceAgreement(SalesLine2.priceGroupId(), 'Axapta');
строка прайса возвращается