Имя: Пароль:
1C
1С v8
"Неверные параметры" в запросе
0 Альбатрос
 
12.12.14
07:30
Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
                       |    БазаУТ.Идентификатор КАК ИдентификаторПодразделения,
                       |    БазаУТ.ИдентификаторНоменклатуры КАК ИдентификаторНоменклатуры,
                       |    БазаУТ.Количество
                       |ПОМЕСТИТЬ ТабУТ
                       |ИЗ
                       |    &БазаУТ КАК БазаУТ
                       |;
                       |
                       |////////////////////////////////////////////////////////////////////////////////
                       |ВЫБРАТЬ
                       |    Номенклатура.Ссылка КАК Номенклатура,
                       |    Контрагенты.Ссылка КАК Точка,
                       |    ТабУТ.Количество КАК Колво,
                       |    Номенклатура.Объем КАК Литраж
                       |ИЗ
                       |    ТабУТ КАК ТабУТ
                       |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
                       |        ПО ТабУТ.ИдентификаторНоменклатуры = Номенклатура.Идентификатор
                       |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
                       |        ПО ТабУТ.ИдентификаторПодразделения = Контрагенты.Идентификатор";
                      
        Запрос.УстановитьПараметр("БазаУТ", ДанныеУТ);
        ОповеститьОВыборе(Запрос.Выполнить().Выгрузить());


И вот такая ошибка:
по причине:
{(7, 2)}: Неверные параметры "БазаУТ"
<<?>>&БазаУТ КАК БазаУТ


ДанныеУТ - это ТЗ, полученная по КОМ из другой базы. ЧТо ему не нравится?
1 Альбатрос
 
12.12.14
07:38
Наврал. ДанныеУТ это СОМОбъект. Тогда следующий вопрос))) Как преобразовать СОМОбъект, который по сути представляет собой ТЗ, собственно в нормальную таблицу значений?
2 Andrewww123
 
12.12.14
07:39
В ТЗ, видимо, COM-объекты содержатся?
3 Альбатрос
 
12.12.14
07:39
.Скопировать() ессесно возвращает СОМОбъект.
4 Альбатрос
 
12.12.14
07:40
(2) Ну почти. Сама ТЗ оказалась СОМОбъектом.
5 Альбатрос
 
12.12.14
07:40
а внутри я оставил только строки и числа.
6 Andrewww123
 
12.12.14
07:41
(1) Создать вторую ТЗ с такой же структурой, обойти первую и ЗаполнитьЗначенияСвойств()
7 Альбатрос
 
12.12.14
07:41
(6) Ну то есть только обходом? Я думал, метод какой-нибудь красивый есть )))
8 dk
 
12.12.14
07:45
значениевстроку / значениеизстроки
9 su_mai
 
12.12.14
07:46
(0) В таблице "ДанныеУТ" все колонки должны быть явно типизированными при создании таблицы. Надо создать новую таблицу и загрузить в неё данные первой.
10 Альбатрос
 
12.12.14
07:55
(8) ИзСтроки у меня неопределено возвращает. Может что не так делаю? Грубо:

ДанныеУТ = ЗначениеВСтрокувНУТР(Результат.Выгрузить()); Результат = "";


Таб = ЗначениеИзСтрокиВнутр(ДанныеУТ);
11 Альбатрос
 
12.12.14
07:56
Результат.Выгрузить() = полученная СОМТаблица ))) Запрос выполняется на стороне базы, из которой подключаюсь.
12 Альбатрос
 
12.12.14
07:57
(9) Так вот загрузить то только обходом получается?
13 dk
 
12.12.14
07:59
ТЗ_ТУТ = ЗначениеИЗСтроки(БазаУТ.ЗначениеВстроку(ТЗ_КОМ))
14 Альбатрос
 
12.12.14
08:02
(13) Спасибо!
15 su_mai
 
12.12.14
10:51
(14) А еще лучше использовать СериализаторXDTO. Этот объект предоставляет возможность выгрузить некоторые типы данных в XML и загрузить их от туда.

Пример смотри: http://zalil-slil.rusfolder.net/files/42519864