Ответ в теме: Почему в запросе возникает ошибка «Поле не найдено ВТ_Врем.Номенклатура.нсиКодНС

База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему в запросе возникает ошибка «Поле не найдено ВТ_Врем.Номенклатура.нсиКодНС › Ответ в теме: Почему в запросе возникает ошибка «Поле не найдено ВТ_Врем.Номенклатура.нсиКодНС

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

    Ошибка «Поле не найдено ВТ_Врем.Номенклатура.нсиКодНСИ» возникает потому, что в таблице значений (ТЗ), которую вы передаете в параметр &ТЗ, поле Номенклатура — это ссылка на справочник, а в запросе вы пытаетесь обратиться к реквизиту справочника (нсиКодНСИ) через точку, что в запросах 1С к ТаблицеЗначений не работает.

    В запросах 1С к ТаблицеЗначений нельзя обращаться к реквизитам объектов, которые лежат в колонках типа «Справочник», через точку. Там хранится просто ссылка, а не раскрытый объект.

    Чтобы получить реквизит нсиКодНСИ, нужно сделать отдельное соединение с самим справочником Номенклатура.

    Правильный вариант — сделать соединение с справочником Номенклатура по ссылке из таблицы значений, например так:

    |ВЫБРАТЬ
    | ВТ_Врем.Спецификация КАК Спецификация,
    | ВТ_Врем.Номенклатура КАК Номенклатура,
    | Номенклатура.нсиКодНСИ КАК КодЕСНСИ,
    | ВТ_Врем.Номенклатура КАК НаименованиеМатериала,
    | ВТ_Врем.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    | ВТ_Врем.Количество КАК Количество,
    | ВТ_Врем.МаркаСтали КАК МаркаСтали,
    | ВТ_Врем.НомерГОСТа КАК НомерГОСТа,
    | ВТ_Врем.Характеристика КАК Характеристика,
    | ВТ_Врем.СтатьяКалькуляции КАК СтатьяКалькуляции,
    | ВТ_Врем.ПрименениеМатериалаРедактирование КАК Примечание
    |ИЗ
    | ВТ_Врем КАК ВТ_Врем
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
    | ПО ВТ_Врем.Номенклатура = Номенклатура.Ссылка
    |ИТОГИ ПО
    | ВТ_Врем.СтатьяКалькуляции

    Обратите внимание, что ИТОГИ ПО — это устаревшая конструкция, лучше использовать СГРУППИРОВАТЬ ПО и агрегатные функции.

    Если хотите получить итог по СтатьяКалькуляции, то запрос должен выглядеть так:

    |ВЫБРАТЬ
    | ВТ_Врем.СтатьяКалькуляции КАК СтатьяКалькуляции,
    | СУММА(ВТ_Врем.Количество) КАК Количество
    |ИЗ
    | ВТ_Врем КАК ВТ_Врем
    |СГРУППИРОВАТЬ ПО
    | ВТ_Врем.СтатьяКалькуляции

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

    —

    Итог: нельзя обращаться к реквизитам справочника через точку в таблице значений, нужно делать соединение с самим справочником.

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