Хочу заполнить ТаблицуЗначений которая находится на форме результатом запроса.

```1c
    РезультатЗапроса = Запрос.Выполнить();
    ЗначениеВДанныеФормы(РезультатЗапроса,ТаблицаСопаставления);
```

На стройке ЗначениеВДанныеФормы, падает в ошибку "Несоответствие типов (параметр номер '1')". Типы данных совпадает(см. скриншот), подскажите что я сделал не так.
---
Еще можно так:

```1c
    ТаблицаСопаставления.Загрузить(РезультатЗапроса.Выгрузить());
```
---
Еще можно так:

```1c
    ТаблицаСопаставления.Загрузить(РезультатЗапроса.Выгрузить());
```
---
Спасибо
---
а почему без Выгрузить() иногда не срабатывает? Данные по суди одни и тежи
---
Потому что Результат - это тип РезультатЗапроса, а Результат.Выгрузить() это таблица значений. В таблицу можно Загрузить и преобразовать в данные формы только таблицу значений.
---
точно, спасибо
---
ЗначениеВДанныеФормы(РезультатЗапроса.Выгрузить(),ТаблицаСопоставления);
---
"ТаблицаСопаставления"
---
ТаблицаСопаставления моя переменная, как хочу так и называю)
---
как хочу так и называюПравильный подход. Я вот вообще против диких длинных имен переменных на полсекунды жизни... В данном случае переменная нахрен не нужна.
---
Разумеется, но название реквизита надо передавать в виде строки
---
Я через ЗначениеВРеквизитФормы (Запрос.Выполнить().Выгрузить(), "Таблица") делаю. Данные формы вообще никогда не юзал (наверное в них есть какой-то сакральный смысл) для загрузки/выгрузки. Ну и Загрузить - тоже вполне рабочий вариант, но не в курсе, прокатит ли это с деревом...
---
Даже если прокатит, то не будет контроля и данные рано или поздно, в ходе доработок запроса, придут в форму пустые и ищи свищи где что не так, т.е. по факту это будет несопровождаемый говнокод, который здесь отмечают, как верное решение.
---
то будет несопровождаемый говнокод, который здесь отмечают, как верное решениеЭто будет одна строка правильного кода, очень даже сопровождаемая. И если данных нет - в форме их и не должно быть. У Вас какое-то странное отношение к этому всему. Любите страдать?
---
Выгрузка-Загрузка потеряет не все данные, а часть. Например при несовпадении имен. Если в выборке у вас СвободныйОстаток, а в таблице ОстатокСвободный, то получите 0. Когда это заметят? Как диагностируют? А программисту уже заплатили за эту бомбу.

И хорошо, если данные видно. А если нет и они участвуют в расчетах?

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

Ну, допустим, кто-то "умный" напишет столько строк, сколько колонок, с присвоением новой строке некого поля таблицы. Строк больше - больше и потенциальных ошибок, дольше время разработки, сложнее поддержка. Поменяется запрос - надо будет найти и поменять нужную строку. Но если тип не совпадет, то также в итоге будет пустое значение. Null при присвоении во что превратится? В общем "хороший поддерживаемый код" будет иметь еще больше багов, с ним будет еще больше проблем.
---
Выгрузить-загрузить содержит лишнее движение, в ЗначениВДанныеФормы можно и результат запроса передать.

Внесение ошибок в код не программирование, а некомпетентность и вредительство. Существует масса технологий и стандартов так не делать. Требуется одно - не упираться рогом в право на ошибку, а работать.

А что касается сложности разработки. Ошибка на первом шаге - джун сам исправит. На втором шаге - миддл исправит потея. На третьем - сеньор, исправляет отдел. На четвертом - бизнес зафиксирует ошибку в деньгах (может даже больших).

Предпочитаете передавать ошибку наверх? Могут и ударить, даже в пах и даже кувалдой.
---
ребята не ссорьтесь) реально сегодняя от перегреве затроил и и забыл что рельзутат запроса надо Выгрузить(), и сидел как дурак не понимал почему не заполняет.
P/S задача была в том чтобы прочитать файл с остатками и сравнить их остатками базы а как бы вы реализовали данную задачу?
---
Я могу рассказать просто про реальную сверку остатков между УТ И БП. Данные запрашиваются у БП через HTTP сервис. Ему передаем запрос, он отдает таблицу значений. Таблицу передаем параметром в запрос и там сравниваем. Конкретнее происходит так : в форме клиентский метод вызывает серверный метод формы, тот вызывает метод объекта, который возвращает результат запроса и серверный метод формы выгружает запрос и заливает результат в таблицу на форме.

В случае с файлом можно сделать даже вот так

```1c
    ДвоичныеДанные = ПолучитьИЗВременногоХранилища(АдресВременногоХранилища); // ДвоичныеДанные
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.Прочитать(ИмяВременногоФайла);
    ПЗ = Новый ПостроительЗапроса;
    ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДокумент.Область());
    ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
    ПЗ.ЗаполнитьНастройки();
    ПЗ.Выполнить();

    ТаблицаЗначений = ПЗ.Результат.Выгрузить();
```

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