Здравствуйте!

УТ 11.4 клиент-сервер
делаю внешнюю обработку, она создает файл экселя и заполняет списком номенклатуры.
Файлик создается на клиенте, не могу понять как полученные данные с сервера и передать на клиент.

На форме создал реквизит "ВремТабЗнач" с типом ТаблицаЗначений. У него добавил колонку "Код" с типом Строка неограниченной длины.

Вызываю процедуру на сервере, делаю запрос к данным. Далее записываю в реквизит формы:
 ЗапросНом = Новый Запрос;
 ЗапросНом.Текст = "ВЫБРАТЬ
                   | СпрНоменклатура.Код КАК Код
                   |ИЗ
                   | Справочник.Номенклатура КАК СпрНоменклатура";
 РезультатЗапроса = ЗапросНом.Выполнить().Выбрать();

 Пока РезультатЗапроса.Следующий() Цикл
  СТР = ВремТабЗнач.Добавить();
         СТР.Код = Строка(РезультатЗапроса.Код);
 КонецЦикла;

и далее на клиенте не могу понять как прочитать данные из этого реквизита. делаю так
 Для Каждого СТР Из ВремТабЗнач Цикл
  Лист1.Cells (СтрокаЛиста,1).Value = СТР.Код;
 КонецЦикла;

РеквизитФормыВЗначение("ВремТабЗнач") пробовал, но он только на сервере выполняется.

Может есть лучше способ сделать?

Спасибо!
---
Возможно, результат запроса пустой. По приведённому коду всё должно работать.
---
```1c
    ВремТабЗнач.Загрузить(ЗапросНом.Выполнить().Выгрузить());
```
---
в отладчике в конце процедуры ЗаполнитьНоменклатуру проверьте что возвращает ЗапросНом.Выполнить.Выгрузить(); в окне ВычислитьВыражение ALT+F9
---
НаСервереБезКонтекста не доступны. А так все загружается

```1c
    &НаСервере
    Процедура ЗаполнитьТЧНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Код КАК Код
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура";

    Тч.Загрузить(Запрос.Выполнить().Выгрузить());

    КонецПроцедуры

    &НаКлиенте
    Процедура ЗаполнитьТЧ(Команда)
    ЗаполнитьТЧНаСервере();
    КонецПроцедуры
```
---
```1c
    ВремТабЗнач.Загрузить(ЗапросНом.Выполнить().Выгрузить());
```
---
вставил это в процедуру по запросу номенклатуры, но на клиенте пусто
делаю Вычислить выражение для ВремТабЗнач и пусто

может обращаюсь неправильно к данным
---
в отладчике в конце процедуры ЗаполнитьНоменклатуру проверьте что возвращает ЗапросНом.Выполнить.Выгрузить(); в окне ВычислитьВыражение ALT+F9
---
Всё правильно делаете. Что именно не получается?
---
не могу понять как прочитать данные из этого реквизита на клиенте. мне нужно их записать в эксель. То что делаю не работает.

ЗапросНоменклатуры(); - это вызов процедуры для получения списка номенклатуры и записи в реквизит формы.
далее пишу:
Для Каждого СТР Из ВремТабЗнач Цикл
      Лист1.Cells (СтрокаЛиста,1).Value = СТР.Код;
КонецЦикла;

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

```1c
    &НаСервере
    Процедура ЗаполнитьТЧНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Код КАК Код
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура";

    Тч.Загрузить(Запрос.Выполнить().Выгрузить());

    КонецПроцедуры

    &НаКлиенте
    Процедура ЗаполнитьТЧ(Команда)
    ЗаполнитьТЧНаСервере();
    КонецПроцедуры
```
---
Попробуй так

```1c
    &НаКлиенте
    Процедура ЗаполнитьТЗ(Команда)
    ЗаполнитьВремТабЗначНаСервере();
    КонецПроцедуры

    &НаСервере
    Процедура ЗаполнитьВремТабЗначНаСервере()

    ТЗ = РеквизитФормыВЗначение("ВремТабЗнач", Тип("ТаблицаЗначений"));
    ЗаполнитьТЗ(ТЗ);
    ЗначениеВРеквизитФормы(ТЗ, "ВремТабЗнач");

    КонецПроцедуры
```

еще можно сформировать тз на сервере и вернуть его на клиент, предварительно упаковав в массив или структуру. наверно.
---
спасибо всем за помощь!

сделал через реквизит формы
заполнение реквизита ВремТабЗнач.Загрузить(ЗапросНом.Выполнить().Выгрузить());
и с параметром запроса была ошибка