Как найти номенклатуру без сегмента в регистре с ЛЕВОЕ СОЕДИНЕНИЕ?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как найти номенклатуру без сегмента в регистре с ЛЕВОЕ СОЕДИНЕНИЕ?

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

        есть регистр сегменты номенклатуры , напиши запрос, который будет искать всю номенклатуру (не группы), у которых не прописан сегмент

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

          Чтобы получить всю номенклатуру (только элементы, не группы), у которых нет записи в регистре «Сегменты номенклатуры» (т.е. сегмент не прописан), нужно сделать запрос с левой внешней связью (ЛЕВОЕ СОЕДИНЕНИЕ) между справочником Номенклатура и регистром сегментов и отфильтровать записи, где сегмент отсутствует.

          Пример запроса:

          |ВЫБРАТЬ
          | Номенклатура.Ссылка КАК Номенклатура
          |ИЗ
          | Справочник.Номенклатура КАК Номенклатура
          | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СегментыНоменклатуры КАК Сегменты
          | ПО Сегменты.Номенклатура = Номенклатура.Ссылка
          |ГДЕ
          | Номенклатура.ЭтоГруппа = ЛОЖЬ
          | И Сегменты.Номенклатура ЕСТЬ NULL

          Объяснение:

          — Номенклатура.ЭтоГруппа = ЛОЖЬ — выбираем только элементы, не группы.
          — Левое соединение с регистром сегментов по полю Номенклатура.
          — В условии фильтрации проверяем, что в регистре сегментов для данной номенклатуры нет записи (NULL).

          Если в регистре сегментов поле с сегментом называется, например, «Сегмент», и нужно проверить именно его, то можно проверить NULL по этому полю.

          Если регистр сегментов — накопительный или сведений, и в нем есть измерение «Номенклатура», то по нему связываемся.

          Если нужно вывести дополнительные поля — добавьте их в выборку.

          Если регистр называется иначе, замените имя в запросе.

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

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