Имя: Пароль:
1C
1С v8
Помогите с передачей ТЗ в запрос, пожалуйста. УТ 11
0 vse_serjezno
 
01.07.14
18:53
Здравствуйте.

Получаю из ВрХран таблицу значений.
Передаю ее в запрос:
Запрос.УстановитьПараметр("Таблица", Рез);


ТекстЗапроса                         = "ВЫБРАТЬ
                                           |    ТЧ.Характеристика,
                                           |    ТЧ.Номенклатура
                                           |ПОМЕСТИТЬ ТаблицаНоменклатура
                                           |ИЗ
                                           |    &Таблица КАК ТЧ
                                           |;
                                           |
При выполнении запроса происходит ошибка:
Ошибка при вызове метода контекста (Выполнить)
    РезультатЗапроса = Запрос.Выполнить();
по причине:
{(2, 2)}: Тип не может быть выбран в запросе
<<?>>ТЧ.Характеристика,

Я почитала, советуют ее решить явной типизацией колонок в ТЗ:
http://www.1c-h.ru/?p=973
и
http://www.sky1c.ru/node/278

Почитав эти советы, решила переписать в новую таблицу, но в итоге, как ни крути, из данные не переписываются их одной таблицы в другую:
ТипизированныйРез = Новый ТаблицаЗначений;
    ТипизированныйРез.Колонки.Добавить("Номенклатура",     Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
    ТипизированныйРез.Колонки.Добавить("Характеристика",   Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
    ТипизированныйРез.Колонки.Добавить("Количество",       Новый ОписаниеТипов("Число"));
    
    ЗначениеКолонки = Рез.ВыгрузитьКолонку("Номенклатура");
    ТипизированныйРез.ЗагрузитьКолонку(ЗначениеКолонки, "Номенклатура");
    ЗначениеКолонки = Рез.ВыгрузитьКолонку("Характеристика");
    ТипизированныйРез.ЗагрузитьКолонку(ЗначениеКолонки, "Характеристика");
    ЗначениеКолонки = Рез.ВыгрузитьКолонку("Количество");
    ТипизированныйРез.ЗагрузитьКолонку(ЗначениеКолонки, "Количество");

Подскажите, пожалуйста, как можно решить эту проблему?
1 Wobland
 
01.07.14
18:54
получай из ВрХран типизированную таблицу значений
2 vse_serjezno
 
01.07.14
18:59
(1) она у меня вообще-то типизированная...
Этот код обрабатывается при открытии формы на сервере.
Форма открывается из неск. документов кнопкой.
При этом из одних видов документов открывается нормально, из других с ошибкой.
При этом сами ТЗ, полученные из ВрХран ничем, кроме данных, не отличаются.
3 vse_serjezno
 
01.07.14
19:00
Я проверяю, типы всех колонок есть и они верные, но ошибка возникает.
4 Wobland
 
01.07.14
19:04
ну показывай, что за зверь у тебя кладётся в ВрХран
5 catena
 
03.07.14
07:24
(0)Перед тем, как загрузить колонку, надо в таблице-приемнике создать строки. Желательно столько же, сколько в таблице-источнике.


ТаблицаЗначений.ЗагрузитьКолонку (ValueTable.LoadColumn)
ТаблицаЗначений (ValueTable)
ЗагрузитьКолонку (LoadColumn)
Синтаксис:
ЗагрузитьКолонку(<Массив>, <Колонка>)
Параметры:
<Массив> (обязательный)
Тип: Массив. Массив значений, который выступает в качестве источника данных для колонки.
<Колонка> (обязательный)
Тип: Число, Строка, КолонкаТаблицыЗначений. Колонка, в которую будут загружены значения из массива. В качестве значения параметра может выступать индекс колонки, имя колонки, сама колонка.
Описание:
Загружает колонку таблицы значений из массива значений.
Примечание:
Значения из массива загружаются в колонку в порядке индексов.
Пример:
ТаблицаРезультат = Новый ТаблицаЗначений;
Для каждого ИмяКолонки Из МассивИменКолонок Цикл
    ТаблицаРезультат.Колонки.Добавить(ИмяКолонки);
КонецЦикла;

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

// Скопируем значения колонок
Для каждого ИмяКолонки Из МассивИменКолонок Цикл
    ЗначенияКолонки = СтрокиДереваЗначений.ВыгрузитьКолонку(ИмяКолонки);
    ТаблицаРезультат.ЗагрузитьКолонку(ЗначенияКолонки, ИмяКолонки);
КонецЦикла;
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.