приветствую
подскажите пожалуйста, возник такой вопрос.
из УТ подключаюсь к базе БП через com и запросом вытаскиваю документы Акты сверки, на форме создаю табличное поле и пытаюсь заполнить его данными запроса, но чтото ничего не выходит, в отладчике проверяю значение не пустое

```1c
    Поиск1 = БП.NewObject("Запрос");
    Поиск1.Text = "ВЫБРАТЬ
    | АктСверкиВзаиморасчетов.Дата КАК Дата,
    | АктСверкиВзаиморасчетов.Номер КАК Номер,
    | АктСверкиВзаиморасчетов.Контрагент.Наименование КАК Контрагент,
    | АктСверкиВзаиморасчетов.ДоговорКонтрагента.Наименование КАК ДоговорКонтрагента,
    | АктСверкиВзаиморасчетов.Статус,
    | АктСверкиВзаиморасчетов.ДатаНачала,
    | АктСверкиВзаиморасчетов.ДатаОкончания,
    | АктСверкиВзаиморасчетов.Примечание
    |ИЗ
    | Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов
    |ГДЕ
    | АктСверкиВзаиморасчетов.ДатаНачала = &Нач
    | И АктСверкиВзаиморасчетов.ДатаОкончания = &Кон";

    Поиск1.УстановитьПараметр("Нач", ЭтаФорма.Нач);
    Поиск1.УстановитьПараметр("Кон", ЭтаФорма.Кон);

    Запрос = Поиск1.Выполнить();

    Если Запрос.Пустой() Тогда

    Возврат;

    КонецЕсли;

    //Список = Запрос.Выгрузить();
    Элем = ЭлементыФормы.ДокументСписок.Значение;
    Элем = Запрос.Выгрузить();
```

В переменной Элем в отладчике таблица значений, а почему то на форму не выводится табличка. что я делаю не так?
---
Огромное спасибо всем за советы, в общем да, построчно заполнила таблицу значений и всё стало ОК

Вот код, может кому пригодится:
Подключаемся к базе, потом:

```1c
    Поиск1.Text = "ВЫБРАТЬ
    | АктСверкиВзаиморасчетов.Дата КАК Дата,
    | АктСверкиВзаиморасчетов.Номер КАК Номер,
    | ПРЕДСТАВЛЕНИЕ(АктСверкиВзаиморасчетов.Статус) КАК Статус,
    | АктСверкиВзаиморасчетов.Контрагент.Наименование КАК Контрагент,
    | АктСверкиВзаиморасчетов.ДоговорКонтрагента.Наименование КАК Договор,
    | АктСверкиВзаиморасчетов.ДатаНачала,
    | АктСверкиВзаиморасчетов.ДатаОкончания,
    | АктСверкиВзаиморасчетов.Примечание
    |ИЗ
    | Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов
    |ГДЕ
    | АктСверкиВзаиморасчетов.ДатаНачала = &Нач
    | И АктСверкиВзаиморасчетов.ДатаОкончания = &Кон
    |
    |УПОРЯДОЧИТЬ ПО
    | Дата,
    | Контрагент
    |АВТОУПОРЯДОЧИВАНИЕ";

    Поиск1.УстановитьПараметр("Нач", ЭтаФорма.Нач);
    Поиск1.УстановитьПараметр("Кон", ЭтаФорма.Кон);
    Запрос = Поиск1.Выполнить();

    Если Запрос.Пустой() Тогда
    Возврат;
    КонецЕсли;

    Элементы =Запрос.Выгрузить();

    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Дата");
    ТЗ.Колонки.Добавить("Номер");
    ТЗ.Колонки.Добавить("Статус");
    ТЗ.Колонки.Добавить("Контрагент");
    ТЗ.Колонки.Добавить("Договор");
    ТЗ.Колонки.Добавить("ДатаНачала");
    ТЗ.Колонки.Добавить("ДатаОкончания");
    ТЗ.Колонки.Добавить("Примечание");

    Для каждого Элемент Из Элементы Цикл
    Стр = ТЗ.Добавить();
    Стр.Дата = Элемент.Дата;
    Стр.Номер = Элемент.Номер;
    Стр.Статус = Элемент.Статус;
    Стр.Контрагент = Элемент.Контрагент;
    Стр.Договор = Элемент.Договор;
    Стр.ДатаНачала = Элемент.ДатаНачала;
    Стр.ДатаОкончания = Элемент.ДатаОкончания;
    Стр.Примечание =Элемент.Примечание;
    КонецЦикла;

    //Список = Запрос.Выгрузить();
    ЭлементыФормы.ДокументСписок.Значение = ТЗ;
```
---
Рейчел,
Запрос.Выгрузить() - Запрос - для текущего контекста - COMОбъект, результат запроса - тоже.
Тут есть как минимум два решения - преобразовывать таблицу значения, которая COM - в локальную, создавая одноименные колонки и обходя строки. И второе - получать из внешней базы сериализованны данные (ЗначениеВСтрокуВнутр, ЗначениеВФайлВнутр) - для этого нужно добавить во внешнюю базу экспортную функцию - в общий модуль, в глобальный модуль, во внешнюю (дополнительную) обработку..
---
Рейчел, прогоняйте каждую строку,
```1c
    для каждого ТекСтрока из Выборка Цикл
    Стр = ТЗ.Добавить();
    Стр.Дата = Выборка.Дата
```
 и тд и тп и др и пр,
---
может В переменной элем пустая таблица значений?

upd или попробуйте элементыфоры.документСписок.СоздатьКолонки();
---
имееться ввиду здесь - "Элем = ЭлементыФормы.ДокументСписок.Значение; " ?
---
Рейчел,
после

```1c
    Элем = Запрос.Выгрузить();
    ЭлементыФормы.ДокументСписок.СоздатьКолонки();
```
---
попробуйте так
ТабличноеПоле.Очистить();
ЭлементыФормы.ТабличноеПоле.Значение=ТаблицаВывода;
ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
---
Приведите то что показывает отладчик. Помню только построчно удалось заполнить таблицу значений. Специфический 64 разрядный сервер. Но там с самим драйвером проблема была.
Вытащить можно только примитивные типы. Что показывает отладчик насчет "АктСверкиВзаиморасчетов.Статус". Возможно нужна таблица соответствия, формируемая в базе-источнике с передачей цифровых или строковых кодов и обратное преобразование (можно в запросе) в базе-приемнике.
Все динамические объекты ведь в другой базе создаются.
---
отладчтк вот что говорит
Элем = ЭлементыФормы.ДокументСписок.Значение; (1.jpg)
Элем = Запрос.Выгрузить(); (2.jpg)
---
ну так Элем после выгрузки имеет тип COMОбъект а не таблица значений.
наверно, придется построчно перенести данные в вашу тз
---
AntonBaikal, именно построчно))
---
Огромное спасибо всем за советы, в общем да, построчно заполнила таблицу значений и всё стало ОК

Вот код, может кому пригодится:
Подключаемся к базе, потом:

```1c
    Поиск1.Text = "ВЫБРАТЬ
    | АктСверкиВзаиморасчетов.Дата КАК Дата,
    | АктСверкиВзаиморасчетов.Номер КАК Номер,
    | ПРЕДСТАВЛЕНИЕ(АктСверкиВзаиморасчетов.Статус) КАК Статус,
    | АктСверкиВзаиморасчетов.Контрагент.Наименование КАК Контрагент,
    | АктСверкиВзаиморасчетов.ДоговорКонтрагента.Наименование КАК Договор,
    | АктСверкиВзаиморасчетов.ДатаНачала,
    | АктСверкиВзаиморасчетов.ДатаОкончания,
    | АктСверкиВзаиморасчетов.Примечание
    |ИЗ
    | Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов
    |ГДЕ
    | АктСверкиВзаиморасчетов.ДатаНачала = &Нач
    | И АктСверкиВзаиморасчетов.ДатаОкончания = &Кон
    |
    |УПОРЯДОЧИТЬ ПО
    | Дата,
    | Контрагент
    |АВТОУПОРЯДОЧИВАНИЕ";

    Поиск1.УстановитьПараметр("Нач", ЭтаФорма.Нач);
    Поиск1.УстановитьПараметр("Кон", ЭтаФорма.Кон);
    Запрос = Поиск1.Выполнить();

    Если Запрос.Пустой() Тогда
    Возврат;
    КонецЕсли;

    Элементы =Запрос.Выгрузить();

    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Дата");
    ТЗ.Колонки.Добавить("Номер");
    ТЗ.Колонки.Добавить("Статус");
    ТЗ.Колонки.Добавить("Контрагент");
    ТЗ.Колонки.Добавить("Договор");
    ТЗ.Колонки.Добавить("ДатаНачала");
    ТЗ.Колонки.Добавить("ДатаОкончания");
    ТЗ.Колонки.Добавить("Примечание");

    Для каждого Элемент Из Элементы Цикл
    Стр = ТЗ.Добавить();
    Стр.Дата = Элемент.Дата;
    Стр.Номер = Элемент.Номер;
    Стр.Статус = Элемент.Статус;
    Стр.Контрагент = Элемент.Контрагент;
    Стр.Договор = Элемент.Договор;
    Стр.ДатаНачала = Элемент.ДатаНачала;
    Стр.ДатаОкончания = Элемент.ДатаОкончания;
    Стр.Примечание =Элемент.Примечание;
    КонецЦикла;

    //Список = Запрос.Выгрузить();
    ЭлементыФормы.ДокументСписок.Значение = ТЗ;
```
---
Рейчел, в принципе, не суть важно, но перебор можно было не расписывать:

```1c
    Элементы =Запрос.Выгрузить();
    ТЗ = Новый ТаблицаЗначений;
    Для Каждого олеКолонка ИЗ Элементы.Колонки Цикл
    ТЗ.Колонки.Добавить(олеКолонка.Имя);
    КонецЦикла;

    Для Каждого олеСтрокаТЗ Из Элементы Цикл
    СтрокаТЗ = ТЗ.Добавить();
    ЗаполнитьЗначенияСвойств(СтрокаТЗ, олеСтрокаТЗ); //вроде должно работать, но типы значений должны быть примитвные
    КонецЦикла;
```
---
Allexe8.1, ок, спасибо, приму к сведению :)
---
```1c
    ЭтаФорма.ЭлементыФормы.РеквизитФормы.Значение = РезультатЗапроса;
    ЭтаФорма.ЭлементыФормы.РеквизитФормы.СоздатьКолонки();
```
---
```1c
    ТЗДанныеCOM = ЗапросВнш.Выполнить().Выгрузить();
    стрРезультатЗапроса = COMОбъектКонектор.ЗначениеВСтрокуВнутр(ТЗДанныеCOM);
    ТЗДанные = ЗначениеИзСтрокиВнутр(стрРезультатЗапроса);
```