Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 04:40

Выбор из таблицы передаваемый в параметр

Автор kinflay, 22 фев 2024, 10:48

0 Пользователей и 1 гость просматривают эту тему.

kinflay

Добрый день! Есть два запроса, один из актуальной базы, другой из копии, передается посредством web сервиса
Объявляю параметр ЭтотОтчет.ОбщийОтчет.ПостроительОтчета.Параметры.Вставить("Таблица", ОтветЦБ.ТабРезультат);

В новом запросе выбираю из параметра поля
"ВЫБРАТЬ
| Таблица.Количество КАК Количество,
| Таблица.Вес КАК Вес,
| Таблица.Стоимость КАК Стоимость,
| Таблица.СтоимостьБезНДС КАК СтоимостьБезНДС,
| Таблица.Себестоимость КАК Себестоимость,
| Таблица.ВаловаяПрибыль КАК ВаловаяПрибыль,
| Таблица.Наценка КАК Наценка,
| Таблица.ПрибыльДляКонтроля КАК ПрибыльДляКонтроля,
| Таблица.СебестоимостьДляКонтроля КАК СебестоимостьДляКонтроля,
| Таблица.НаценкаДляКонтроля КАК НаценкаДляКонтроля,
| Таблица.Покупатель КАК Покупатель,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Проект КАК Проект,
| Таблица.АртикулКонтрагента КАК АртикулКонтрагента,
| Таблица.Склад КАК Склад
|ПОМЕСТИТЬ ВТ_Данные
|ИЗ
| &Таблица КАК Таблица
|;

Получаю ошибку
Цитировать"Неверные параметры "Таблица" <<?>>&Таблица как Таблица "



LexaK

kinflay, так надо правильно задать параметр запроса &Таблица
при этом проверьте что бы таблица была Типизирована (т.е. все ее колонки имели явно заданный Тип)
если помогло нажмите: Спасибо!

kinflay

LexaK, правильно это так?
   ЭтотОтчет.ОбщийОтчет.ПостроительОтчета.Параметры.Вставить("Таблица", Таблица);Ключ же верно назвал, а значение у меня хранится в Табрезультат. Честно говоря впервые сталкиваюсь с подобного рода проблемой

fruitella

Посмотрите тут пример как правильно типизировать таблицу прежде чем ее передавать в параметры запроса.
Классификаторы чисел и строк, т.е. их дробная часть (если есть) и длина должны совпадать.

Пример типизации

antoneus

А что, из web-сервиса прямо таблица значений выскакивает? Или преобразуется где-то?

kinflay

Преобразую. В отладчике смотрел, ОтветЦБ.ТабРезультат таблица значений.

antoneus

Вот где преобразуете, там и надо тип колонок задавать, потому что запрос не любит, когда ему подсовывают ТЗ с нетипизированными колонками.

kinflay

antoneus,    
    Парам = Новый ХранилищеЗначения(СтруктураПараметров);
    РезультатВХранилище = Прокси.ExecuteQuerry(Парам);
   
    ОтветЦБ = РезультатВХранилище.Получить();   
   
    ЭтотОтчет.ОбщийОтчет.ПостроительОтчета.Параметры.Вставить("Таблица", ОтветЦБ.ТабРезультат);

Какого то явного преобразования нет. Имеет смысл сделать примерно так?

Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Количество", Количество);


antoneus

например, так

Таблица.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10, 3)));

Максим75

kinflay, нет, надо явно тип указать. Иначе как параметр в запрос не передать. Т.е. каждую колонку таблицы значения явно указать тип.
Если таблица значений изначально из запроса получается, тогда не надо. В любом другом случае обязательно.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск