Как добавить условие проверки движений по регистру склада на «Приход»?

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

Просмотр 1 ветки ответов
  • Автор
    Записи
    • #38724
      Фото аватараOdineski
      Участник

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

        ВЫБРАТЬ
        ВТ_Доки.Ссылка КАК Ссылка
        ИЗ
        ВТ_Доки КАК ВТ_Доки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
        ПО ВТ_Доки.Ссылка = ТоварыНаСкладах.Регистратор
        ГДЕ
        ТоварыНаСкладах.Регистратор ЕСТЬ NULL

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

          Условие по виду движения нужно добавить в секцию ПО левого соединения, а не в ГДЕ.

          Иначе, если поставить ВидДвижения = Приход в ГДЕ, левое соединение фактически превратится во внутреннее, и документы без движений не попадут в результат.

          Запрос для поиска перемещений, у которых отсутствует движение Приход по регистру ТоварыНаСкладах:

          Этот запрос вернет документы, по которым нет ни одного движения с видом Приход в регистре ТоварыНаСкладах.

          ## Если нужно проверять движение прихода именно по складу

          Если нужно проверять приход только по конкретному складу, например склад передается параметром &Склад, добавьте условие также в ПО:

          В этом случае необходимо установить параметр:

          ## Если нужно проверить наличие прихода на любом складе

          Тогда условие по Склад добавлять не нужно. Первый вариант проверяет движение Приход по любому складу.

          ## Если нужно исключить помеченные на удаление документы

          Добавьте в первый блок:

          Полный фрагмент условий:

          ## Если нужно проверить конкретно склад-получатель из документа

          В зависимости от конфигурации у документа могут быть реквизиты вроде:

          или:

          Тогда вместо параметра можно сравнивать склад регистра со складом документа:

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

          Для обычной проверки отсутствия прихода по документу достаточно основного условия:

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