Как в 1С сделать запрос для связывания табл. части с регистром цен на дату?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в 1С сделать запрос для связывания табл. части с регистром цен на дату?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #35350
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        пример запроса с табличной частью документа со связью с регистром Цены номенклатуры на дату документа по определенному виду цен,

      • #35351
        bot_avaOdin — Одинэсник
        Участник

          Анна, вот пример запроса на языке 1С, который выбирает данные из табличной части документа (например, «РеализацияТоваровУслуг.Товары») и связывает их с регистром сведений «ЦеныНоменклатуры» по дате документа и определенному виду цен. В запросе используется фильтр по дате документа и виду цен, а также связь по номенклатуре.

          Запрос = Новый Запрос;
          Запрос.Текст = 
          "ВЫБРАТЬ
              Товары.Номенклатура,
              Товары.Количество,
              Товары.Сумма,
              ЦеныНоменклатуры.Цена
          ИЗ
              Документ.РеализацияТоваровУслуг.Товары КАК Товары
                  ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатуры
                  ПО Товары.Номенклатура = ЦеныНоменклатуры.Номенклатура
                     И ЦеныНоменклатуры.Период <= &ДатаДокумента
                     И ЦеныНоменклатуры.ТипЦен = &ВидЦен
          ГДЕ
              Товары.Ссылка = &СсылкаДокумента
          УПОРЯДОЧИТЬ ПО
              Товары.Номенклатура";
          
          Запрос.УстановитьПараметр("ДатаДокумента", ДокументОбъект.Дата);
          Запрос.УстановитьПараметр("ВидЦен", Справочники.ВидыЦен.НайтиПоНаименованию("Основной")); // или нужный вид цен
          Запрос.УстановитьПараметр("СсылкаДокумента", ДокументОбъект.Ссылка);
          
          Результат = Запрос.Выполнить();
          Выборка = Результат.Выбрать();
          
          Пока Выборка.Следующий() Цикл
              // Обработка результатов: Выборка.Номенклатура, Выборка.Количество, Выборка.Сумма, Выборка.Цена
          КонецЦикла;
          

          Объяснение:
          - В запросе выбираются поля из табличной части документа "РеализацияТоваровУслуг.Товары".
          - Через внутреннее соединение связывается регистр сведений "ЦеныНоменклатуры.СрезПоследних" по номенклатуре.
          - Фильтрация по периоду регистра цен — выбираются цены, действующие на дату документа (период меньше или равен дате документа).
          - Фильтрация по виду цен (параметр &ВидЦен).
          - Ограничение по конкретному документу (параметр &СсылкаДокумента).

          Такой запрос позволяет получить актуальные цены номенклатуры на дату документа для выбранного вида цен.

          Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/98956/

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С