Здравствуйте
УТП 8.3

Код находится в модуле объекта документа Поступление Товаров и Услуг. Параметр ТипЦен никак не передается в запрос, не понимаю в чём проблема. Отладчиком проверял

```1c
    Функция ПолучитьЦену()

    ТекДата = ТекущаяДата();

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЦеныНоменклатурыСрезПоследних.Цена
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ТекДата, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних";

    Запрос.УстановитьПараметр("ТекДата", ТекДата);
    Запрос.УстановитьПараметр("ТипЦен", ДоговорКонтрагента.ТипЦен);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Возврат ВыборкаДетальныеЗаписи.Цена;
    КонецЦикла;
```
---
ДоговорКонтрагента передается, тип цен в договоре заполнен?
---
Добавлю еще, напомню. В справочнике "ТипыЦенНоменклатурыКонтрагентов" есть реквизит "ТипЦеныНоменклатуры", предназначенный ИМЕННО для связи типа цен закупки от конкретного поставщика с Типом цен, предназначенным для продажи. Корректнее - искать не по наименованию, а настроить связь этих двух элементов справочников и использовать этот реквизит
Запрос.УстановитьПараметр("ТипЦен", ДоговорКонтрагента.ТипЦен.ТипЦеныНоменклатуры);
---
ДоговорКонтрагента передается, тип цен в договоре заполнен?
---
Да
Нашел уже в чем проблема
Сделал так:
ТипЦенПараметр = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(ДоговорКонтрагента.ТипЦен.Наименование);
---
Параметры разных типов ?Иначе непонятно зачем искать по наименованию
---
не понимаю, почему просто не передалось. только таким образом
Вроде одинаковых типов
---
проверьте еще раз типы, иначе зачем такой огород городить
---
Думаю, tolyan_ekb прав, причина в типах
В УТП стандартно в документе "Поступление товаров и услуг" - реквизит Тип цен это "СправочникСсылка.ТипыЦенНоменклатурыКонтрагентов"
Судя по Вашему описанию, Вы обращаетесь к типу "СправочникСсылка.ТипыЦенНоменклатуры", видимо, какая-то доработка
Напомню, что в Договоре с контрагентом реквизит "Тип цен" - это составной тип, из вышеперечисленных двух, и динамически определяется, исходя из Вида договора - с поставщиком или с покупателем.
То есть - можно предположить, что в Договоре с ПОСТАВЩИКОМ использовали штатный подход, и в нем тип цен это "ТипыЦенНоменклатурыКонтрагентов"
А в Вашем запросе происходит обращение к регистру сведений "ЦеныНоменклатуры" (не контрагентов), там. действительно, тип "ТипыЦенНоменклатуры"
P.S. А вообще, для меня непонятна доработка. В документе поступления от поставщика требуется заполнить по типу цен, предназначенному для продажи. Мне кажется, конфигурацию используют, не понимая работы её механизмов
---
Добавлю еще, напомню. В справочнике "ТипыЦенНоменклатурыКонтрагентов" есть реквизит "ТипЦеныНоменклатуры", предназначенный ИМЕННО для связи типа цен закупки от конкретного поставщика с Типом цен, предназначенным для продажи. Корректнее - искать не по наименованию, а настроить связь этих двух элементов справочников и использовать этот реквизит
Запрос.УстановитьПараметр("ТипЦен", ДоговорКонтрагента.ТипЦен.ТипЦеныНоменклатуры);
---
хотел бы спросить, может подскажете
я просто закономерность понять пытаюсь, куда бы мне прописать такую процедуру:

```1c
    Процедура ПересчитатьУслуги()

    РасшифровкаВсегоЧасов = Расшифровка.Итог("КоличествоЧасов");
    ЭлементыФормы.Услуги.ТекущиеДанные.Количество = РасшифровкаВсегоЧасов;

    СтрокаТабличнойЧасти = ЭлементыФормы.Услуги.ТекущиеДанные;

    // Рассчитать реквизиты табличной части.
    ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

    КонецПроцедуры
```

Ибо я программно создаю на основании Реализации сразу несколько Поступлений. И у каждого поступления своё количество должно быть. А откуда бы тогда процедуру эту вызвать, чтобы корректно работало?
---
Лично я сторонник минимального вмешательства в конфигурацию, и задачу - создать документы на основании текущего документа стал бы решать внешней обработкой заполнения табличной части. Что это дает? 1) В обработке Вы имеете доступ к табличной части объекта 2) В обработке Вы можете добавить свои табличные части с дополнительными полями, для удобства отображения расчетных промежуточных данных 3) Вы можете вызвать произвольную форму обработку, специально созданную для комфортного решения конкретно этой задачи, в модуле формы описать логику, например - отметить флагами нужные строки табличной части, заполнять табличную часть по какому-то алгоритму
---
а вы глубоко мыслите! Спасибо вам, надеюсь со временем пойму всю логику системы
---
(8)Спасибо вам. Попробую так сделать.. проглядел я то, что там ТипыЦенНоменклатурыКонтрагентов, а не ТипыЦенНоменклатуры