Доброго времени суток. Есть запрос к таблице значений, но столкнулся с проблемой: отладчик просто пропускает цикл, зайдя в его начало сразу перескакивает на конец процедуры. Подскажите, пожалуйста, в чем может быть проблема? ЗЫ Таблица значений не пустая.
```1c
    Запрос = Новый Запрос;
    МенеджерВТ = Новый МенеджерВременныхТаблиц;
    Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
    Запрос.УстановитьПараметр("ВнешняяТЗ", ТаблицаЗапроса);
    Запрос.УстановитьПараметр("МассивКодов", МассивКодов);
    Запрос.Текст =
    "Выбрать
    |ВнешняяТЗ.Номенклатура Как Номенклатура,
    |ВнешняяТЗ.КодНоменклатуры Как КодНоменклатуры,
    |ВнешняяТЗ.КодЕдиницИзмерения Как КодЕдиниц,
    |ВнешняяТЗ.Штрихкод Как Штрихкод
    |Поместить ВнешняяТЗ
    |Из &ВнешняяТЗ Как ВнешняяТЗ
    |Где
    |ВнешняяТЗ.КодНоменклатуры В(&МассивКодов)";

    РезультатПакета = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
    ТаблицаНоменклатуры = РезультатПакета[0].Выгрузить();

    Для Каждого Строка Из ТаблицаНоменклатуры Цикл

    Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СокрЛП(Строка.КодНоменклатуры));

    Если Номенклатура.Пустая() Тогда

    НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
    НоваяНоменклатура.Наименование = СокрЛП(Строка.Номенклатура);
    НоваяНоменклатура.Код = СокрЛП(Строка.КодНоменклатуры);
    НоваяНоменклатура.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(Строка.КодЕдиниц));
    НоваяНоменклатура.Записать();

    КонецЕсли;

    КонецЦикла;

    КонецПроцедуры()
```
---
Просто у вас ТаблицаНоменклатуры пустая
Вы неправильно сам запрос написали, а во вторых вы результат запроса поместили в ВнешняяТЗ
Сделайте в запросе новую выборку и получите результат запроса и ненулевой)
---
Просто у вас ТаблицаНоменклатуры пустая
Вы неправильно сам запрос написали, а во вторых вы результат запроса поместили в ВнешняяТЗ
Сделайте в запросе новую выборку и получите результат запроса и ненулевой)
---
спасибо!
---
проблема в том, что здесь нет выборки данных. Есть только создание временной таблицы запроса. А выборку автор сделать забыл, или поленился, или у него были какие-то более сложные соображения )
---
а выборка зачем? Если результат выгружается в таблицу значений. И на управляемых формах этот запрос отрабатывает корректно, а на обычной форме с такой проблемой столкнулся.
---
Всё в топку.
Нафига такой нелепый запрос, если потом еще на выходе искать что-то по коду ?
Откуда ТаблицаЗапроса и МассивКодов изначально взялись ?
---
таблица запроса берется из эксель файла, массив кодов загружается из дбф файла.
---
а запрос нужен вот зачем: в дбф есть коды, номенклатура с которыми отсутствует в бд, я из другой бд выгрузил всю номенклатуру в эксель, и из этого файла выгружаю запросом нужную номенклатуру в таблицу, чтобы создать отсутствующую.
---
зачем ВООБЩЕ запрос?
есть таблица и массив кодов, обойдите ее сразу в цикле,
вот код и ни каких запросов не надо!!!

```1c
    Для Каждого Строка Из ТаблицаЗапроса Цикл
    Если МассивКодов.Найти(Строка.КодНоменклатуры) <> Неопределено Тогда
    //есть код в массиве, обрабатываем, далее ваш код без изменения
    Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СокрЛП(Строка.КодНоменклатуры));
    Если Номенклатура.Пустая() Тогда
    НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
    НоваяНоменклатура.Наименование = СокрЛП(Строка.Номенклатура);
    НоваяНоменклатура.Код = СокрЛП(Строка.КодНоменклатуры);
    НоваяНоменклатура.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(Строка.КодЕдиниц));
    НоваяНоменклатура.Записать();
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
```
---
спасибо за совет, я знаю, что можно и найти строки в таблице значений , и как у вас вариант. Но я хочу разобраться и понять, почему не заходит в цикл таблицы результата запроса.
---
Вы результат запроса поместили во временную таблицу
Сделайте еще один запрос для получения результата из ВнешняяТЗ
---
Сообщение было скрыто модератором.
---
потому что на выходе, количество строк в ТЗ твоей =0.