Как правильно составить запрос на подбор продаж для «Пересчет товаров»?

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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #37232
      Фото аватараOdineski
      Участник

        |ВЫБРАТЬ
        | ПересчетТоваровТовары.Номенклатура КАК Номенклатура,
        | Продажи.Дата КАК ДатаПродажи,
        | ПродажиТовары.Количество,
        | ПродажиТовары.Сумма
        |ИЗ
        | Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
        | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПересчетТоваров КАК ПересчетТоваров
        | ПО ПересчетТоваровТовары.Ссылка = ПересчетТоваров.Ссылка
        | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Продажи
        | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ПродажиТовары
        | ПО Продажи.Ссылка = ПродажиТовары.Ссылка
        | И ПродажиТовары.Номенклатура = ПересчетТоваровТовары.Номенклатура
        | И ПродажиТовары.Склад = ПересчетТоваровТовары.Склад
        |ГДЕ
        | ПересчетТоваров.Ссылка = &СсылкаПересчета
        | И Продажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
        |УПОРЯДОЧИТЬ ПО
        | ПересчетТоваровТовары.Номенклатура,
        | Продажи.Дата

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

          Запрос составлен корректно, но есть несколько моментов, которые стоит проверить, чтобы он работал правильно в УТ 11.5:

          1. В документе «Пересчет товаров» поле «Склад» может быть в шапке документа, а не в табличной части «Товары». Если склад в шапке, то условие по складу нужно писать так:

          | И ПродажиТовары.Склад = ПересчетТоваров.Склад

          2. Если склад в табличной части «Товары» — тогда ваш вариант с

          | И ПродажиТовары.Склад = ПересчетТоваровТовары.Склад

          правильный.

          3. Проверьте, что параметры &СсылкаПересчета, &ДатаНачала и &ДатаКонца передаются в запрос корректно.

          4. Если нужно получить суммарные продажи по номенклатуре, добавьте группировку:

          |СГРУППИРОВАТЬ ПО
          | ПересчетТоваровТовары.Номенклатура

          5. Если хотите вывести продажи с детализацией по датам, то ваш запрос с сортировкой по дате подходит.

          Пример с группировкой и суммированием:

          |ВЫБРАТЬ
          | ПересчетТоваровТовары.Номенклатура КАК Номенклатура,
          | СУММА(ПродажиТовары.Количество) КАК КоличествоПродано,
          | СУММА(ПродажиТовары.Сумма) КАК СуммаПродаж
          |ИЗ
          | Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
          | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПересчетТоваров КАК ПересчетТоваров
          | ПО ПересчетТоваровТовары.Ссылка = ПересчетТоваров.Ссылка
          | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Продажи
          | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ПродажиТовары
          | ПО Продажи.Ссылка = ПродажиТовары.Ссылка
          | И ПродажиТовары.Номенклатура = ПересчетТоваровТовары.Номенклатура
          | И ПродажиТовары.Склад = ПересчетТоваровТовары.Склад
          |ГДЕ
          | ПересчетТоваров.Ссылка = &СсылкаПересчета
          | И Продажи.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
          |СГРУППИРОВАТЬ ПО
          | ПересчетТоваровТовары.Номенклатура
          |УПОРЯДОЧИТЬ ПО
          | ПересчетТоваровТовары.Номенклатура

          Если склад в шапке, замените условие соединения по складу на:

          | И ПродажиТовары.Склад = ПересчетТоваров.Склад

          Проверьте структуру документа «Пересчет товаров» в вашей базе, чтобы правильно указать поле склада.

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