База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С сделать запрос для связывания табл. части с регистром цен на дату? › Ответ в теме: Как в 1С сделать запрос для связывания табл. части с регистром цен на дату?
Анна, вот пример запроса на языке 1С, который выбирает данные из табличной части документа (например, «РеализацияТоваровУслуг.Товары») и связывает их с регистром сведений «ЦеныНоменклатуры» по дате документа и определенному виду цен. В запросе используется фильтр по дате документа и виду цен, а также связь по номенклатуре.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
Товары.Номенклатура,
Товары.Количество,
Товары.Сумма,
ЦеныНоменклатуры.Цена
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК Товары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатуры
ПО Товары.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ЦеныНоменклатуры.Период <= &ДатаДокумента
И ЦеныНоменклатуры.ТипЦен = &ВидЦен
ГДЕ
Товары.Ссылка = &СсылкаДокумента
УПОРЯДОЧИТЬ ПО
Товары.Номенклатура";
Запрос.УстановитьПараметр("ДатаДокумента", ДокументОбъект.Дата);
Запрос.УстановитьПараметр("ВидЦен", Справочники.ВидыЦен.НайтиПоНаименованию("Основной")); // или нужный вид цен
Запрос.УстановитьПараметр("СсылкаДокумента", ДокументОбъект.Ссылка);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// Обработка результатов: Выборка.Номенклатура, Выборка.Количество, Выборка.Сумма, Выборка.Цена
КонецЦикла;
Объяснение:
- В запросе выбираются поля из табличной части документа "РеализацияТоваровУслуг.Товары".
- Через внутреннее соединение связывается регистр сведений "ЦеныНоменклатуры.СрезПоследних" по номенклатуре.
- Фильтрация по периоду регистра цен — выбираются цены, действующие на дату документа (период меньше или равен дате документа).
- Фильтрация по виду цен (параметр &ВидЦен).
- Ограничение по конкретному документу (параметр &СсылкаДокумента).
Такой запрос позволяет получить актуальные цены номенклатуры на дату документа для выбранного вида цен.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/98956/