1. Tailor_Made 09.10.19 12:51 Сейчас в теме

Как программно получить цену по договору

Здравствуйте. Есть документ Заказ Покупателя. В нем есть Договор, у которого установлен тип цен. И по этому типу цен документов "Установка цен номенклатуры" установлена цена. Как программно с модуля документа Заказ Покупателя получить эту цену?
УТП 8.3
Найденные решения
8. aklopyshko 09.10.19 13:53 Сейчас в теме
(6) Вам стоит обработать результат через выборку.
Я советую Вам воспользоваться консолью запросов, чтобы вы сразу наглядно смотрели возвращает ли ваш запрос что-то или нет.
Остальные ответы
Избранное Подписка Сортировка: Древо
2. aezdakov 09.10.19 12:59 Сейчас в теме
Запрос к регистру установки цен на срез последних на дату документа с типом цены из договора по номенклатуре из табличной части.
3. Tailor_Made 09.10.19 13:17 Сейчас в теме
(2)не уверен праивльно ли понял
Так?
Процедура ПолучитьЦену()
	
	ТипЦен = ЭтотОбъект.ДоговорКонтрагента.ТипЦен;	
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
	Запрос.УстановитьПараметр("Дата", ЭтотОбъект.Дата);
	Запрос.Текст ="ВЫБРАТЬ
	              |	ЦеныНоменклатурыСрезПоследних.Цена
	              |ИЗ
	              |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
	              |ГДЕ
	              |	ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен";
	
	Цена = Запрос.Выполнить().Выгрузить();
		
	Сообщить(Цена);
	
КонецПроцедуры
Показать
4. aklopyshko 09.10.19 13:37 Сейчас в теме
6. Tailor_Made 09.10.19 13:44 Сейчас в теме
(4)
Сделал по аналогии и ошибка "Индекс находится за границами массива". Не могу понять, как получит эту цену..
ТипЦен = ЭтотОбъект.ДоговорКонтрагента.ТипЦен;	
	
	Запрос = Новый Запрос;
	Запрос.Текст ="ВЫБРАТЬ
	              |	ЦеныНоменклатурыСрезПоследних.Цена
	              |ИЗ
	              |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
	              |ГДЕ
	              |	ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
	              |
	              |СГРУППИРОВАТЬ ПО
	              |	ЦеныНоменклатурыСрезПоследних.Цена";
				  
	Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
	Запрос.УстановитьПараметр("Дата", ЭтотОбъект.Дата);
	
	РезультатЗапроса = Запрос.Выполнить().Выгрузить();
 
	//Если ЦеныНоменклатуры.Количество()<>0 Тогда 
	Сообщить(РезультатЗапроса[0].Цена);
	
Показать
7. YannikAlx 28 09.10.19 13:51 Сейчас в теме
(6) Вы не умеете выполнять запросы с обработкой результата?
Для вас существует такой конструктор - воспользуйтесь , а не сочиняйте пургу с индексами....
10. Tailor_Made 09.10.19 14:02 Сейчас в теме
8. aklopyshko 09.10.19 13:53 Сейчас в теме
(6) Вам стоит обработать результат через выборку.
Я советую Вам воспользоваться консолью запросов, чтобы вы сразу наглядно смотрели возвращает ли ваш запрос что-то или нет.
5. YannikAlx 28 09.10.19 13:39 Сейчас в теме
Сообщить (Таблицу Значений) не получится....
А остальное почти верно...
Только вот вы получите тучу цен, как будете разгребать по номенклатуре?
Вы про товар совсем забыли?
9. Lenten 24 09.10.19 14:01 Сейчас в теме
рискну предположить что вам надо не список цен получить, а в документ поставить тип цен из договора. В типовых как правило после этого при добавлении товаров в таб часть, цены подставляются автоматически.
11. Tailor_Made 09.10.19 14:04 Сейчас в теме
(9)
как правило после этого при добавлении товаров в таб часть, цены подставляются автоматически.

Мне нужно просто цену с регистра подставить в Табличную Часть
13. aklopyshko 09.10.19 14:13 Сейчас в теме
(11) Проверьте, есть ли вообще в регистре цена для вашей номенклатуры с измерением "ТипЦен" как в договоре.
12. Lenten 24 09.10.19 14:08 Сейчас в теме
рекомендую для этого использовать типовой функционал. Например вам так же придется менять сумму при изменении цены. В типовой это происходит автоматом.

например в ут 11 тип цен есть в таб чати. В ут 10.3 это реквизит документа. Посмотрите как у вас это сделано
Скорее всего вам вообще ничего переписывать не надо
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант-аналитик 1С
Набережные Челны
зарплата до 90 000 руб.
Полный день

Программист 1С
Набережные Челны
зарплата от 40 000 руб. до 110 000 руб.
Полный день

Программист 1С
Казань
зарплата от 40 000 руб. до 110 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день