Как добавить серию номенклатуры в SQL-запрос 1С?

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

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

        ВЫБРАТЬ
        СпрНоменклатура.Ссылка КАК Номенклатура,
        ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
        ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
        ИЗ
        Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&период, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
        ПО СпрНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
        ГДЕ
        ВЫБОР
        КОГДА &ТолькоВНаличии
        ТОГДА ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0
        ИНАЧЕ ИСТИНА
        КОНЕЦ
        И ВЫБОР
        КОГДА &ТолькоСЦенами
        ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) > 0
        ИНАЧЕ ИСТИНА
        КОНЕЦ

        Добавь в код добавление серии номенклатуры

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

          Чтобы добавить в ваш запрос информацию о серии номенклатуры, необходимо включить соответствующее поле из регистра или справочника, где хранится информация о сериях. Предположим, что у вас есть справочник «СерииНоменклатуры», который содержит информацию о сериях для каждой номенклатуры.

          Вот как можно изменить ваш запрос, чтобы добавить поле «Серия»:

          sql
          ВЫБРАТЬ
            СпрНоменклатура.Ссылка КАК Номенклатура,
            ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
            ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток,
            СерииНоменклатуры.Ссылка КАК Серия
          ИЗ
            Справочник.Номенклатура КАК СпрНоменклатура
              ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&период, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
                ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры
                ПО СпрНоменклатура.Ссылка = СерииНоменклатуры.Номенклатура
              ПО СпрНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
          ГДЕ
            ВЫБОР
                КОГДА &ТолькоВНаличии
                  ТОГДА ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0
                ИНАЧЕ ИСТИНА
              КОНЕЦ
            И ВЫБОР
                КОГДА &ТолькоСЦенами
                  ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) > 0
                ИНАЧЕ ИСТИНА
              КОНЕЦ
          

          В этом измененном запросе добавлено левое соединение с справочником «СерииНоменклатуры», чтобы получить информацию о серии для каждой номенклатуры. Поле `СерииНоменклатуры.Ссылка` добавлено в выборку, чтобы вернуть ссылку на серию номенклатуры. Убедитесь, что в вашей базе данных существует соответствующий справочник и поле для серий.

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