Ответ в теме: Почему данные не подтягиваются из регистра СебестоимостьТоваров в моем запросе?

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

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

    У вас соединение с регистром выполняется, но данные из него фактически не выводятся в результат.

    В основном ВЫБРАТЬ сейчас указано:

    Это означает: независимо от результата соединения в колонку СуммаБезНДС всегда будет записываться NULL.

    Кроме того, поля:

    во внешнем ВЫБРАТЬ вообще не используются.

    Замените этот участок:

    на:

    Или, если итоговую сумму из регистра нужно назвать просто Сумма, можно использовать:

    ### Исправленный запрос

    ### Проверьте параметры запроса

    Особенно важно, чтобы параметр вида движения был установлен именно так:

    Массив документов:

    И перед выполнением убедитесь, что массив не пустой:

    ### Как быстро проверить, есть ли вообще движения регистра

    Сначала временно выполните отдельный проверочный запрос без соединения с табличной частью документа:

    Если этот запрос возвращает пустую таблицу, причина не в ЛЕВОМ СОЕДИНЕНИИ. Значит, по этим документам в регистр СебестоимостьТоваров движения не записаны.

    Если запрос возвращает строки, но в основном запросе суммы равны нулю, проблема в условиях соединения.

    ### Наиболее вероятная проблема: регистр не пишет приход по документу приобретения

    Документ ПриобретениеТоваровУслуг может формировать движения не напрямую в СебестоимостьТоваров, а через другой документ или регистр. Это зависит от конфигурации, вида операции и настроек учета.

    Проверьте конкретный документ:

    1. Откройте документ ПриобретениеТоваровУслуг.
    2. Выполните Дт/Кт или Движения документа.
    3. Посмотрите, есть ли регистр СебестоимостьТоваров.
    4. Проверьте, является ли именно ПриобретениеТоваровУслуг регистратором движений.
    5. Убедитесь, что документ проведен.

    Важно: наличие документа в МассивДокументов еще не означает, что он является регистратором движений именно этого регистра.

    ### Проверьте, не мешает ли отбор по виду движения

    На время уберите условие:

    Проверочный вариант:

    Если строки появились, значит движения есть, но они записаны как Расход, либо документ формирует сторнирующее движение.

    ### Возможна проблема с аналитикой

    В регистре вы соединяете данные по:

    Но в регистре ключом фактически является:

    В документе может быть одна номенклатура, характеристика или серия, а в регистре используется другая аналитика учета. Поэтому визуально реквизиты могут совпадать, но ссылка АналитикаУчетаНоменклатуры будет другой.

    Для диагностики выведите движения регистра и строки документа рядом:

    ### Важный момент с несколькими одинаковыми строками

    В регистре СебестоимостьТоваров обычно нет НомерСтроки табличной части документа. Если в одном документе две строки имеют одинаковые:

    — номенклатуру;
    — характеристику;
    — серию;

    то регистр может объединить движения по ним. В таком случае точно распределить сумму себестоимости по строкам документа одним соединением невозможно.

    Тогда лучше сначала получать себестоимость на уровне:

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

    ### Еще одна проблема в вашем запросе

    Вы используете:

    Но затем для определения суммы без НДС используете отдельный ресурс:

    Убедитесь, что в регистре действительно есть ресурс СтоимостьБезНДС. Если его нет, запрос должен использовать фактическое имя ресурса регистра, например:

    Проверять нужно в конфигураторе:

    ### Что исправить в первую очередь

    1. Добавить поля регистра во внешний ВЫБРАТЬ:

    2. Установить ВидДвиженияНакопления.Приход.

    3. Проверить, что МассивДокументов не пустой.

    4. Выполнить отдельный запрос непосредственно к основной таблице регистра.

    5. Проверить движения конкретного документа.

    6. Если движения есть, но соединение не срабатывает, сравнить значения номенклатуры, характеристики и серии в документе и регистре.

    Самая явная ошибка именно в том, что вы выбрали NULL, а поля СебестоимостьТоваров.Сумма и СебестоимостьТоваров.СуммаБезНДС не добавили в итоговую выборку. Но если после этого значения будут нулевыми, нужно проверять наличие движений и соответствие аналитики.

    База знаний 1С