Как передать ТаблицуЗначений в Запрос через COM соединение

1. sys1c 05.02.20 06:07 Сейчас в теме
Необходимо осуществить вот такой запрос между двумя базами:

	Запрос = V82.NewObject("Запрос"); 
	Запрос.Текст = "
	|ВЫБРАТЬ
	|	ТБЗ.КодНом,
	|	ТБЗ.Реквизит1
	|ПОМЕСТИТЬ 
	|	ВТ
	|ИЗ
	|	&ТБЗ КАК ВТ_ТБЗ
	|;
	|
	|ВЫБРАТЬ
	|	ВТ.КодНом КАК КОД,
	|	ВТ.Реквизит1 КАК Реквизит1,
	|	ЦеныНоменклатурыСрезПоследних.Цена КАК ЦЕНА
	|ИЗ
	|	ВТ КАК ВТ
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ТипЦен = &спрСсылкаТипЦен) КАК ЦеныНоменклатурыСрезПоследних
	|			ПО ВТ.КодНом = ЦеныНоменклатурыСрезПоследних.Номенклатура.Код";
Показать


никак не получается передать ТБЗ
пробовал создавать ТБЗ в "первой" базе и передавать
Запрос.УстановитьПараметр("ТБЗ", ЗначениеВСтрокуВнутр(ТБЗ));


пробовал создавать ТБЗ во "вторйо базе" через COM
ТБЗ = V82.NewObject("ТаблицаЗначений");

и потом
Запрос.УстановитьПараметр("ТБЗ", ТБЗ);


никак не хочет передаваться.
но почему-то уверен, что как то можно?

передать нужно именно ТБЗ а не Массив.
ну либо массив, но я тогда не понимаю, как по массиву сделать ЛЕВОЕ соединение в Запросе.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Fox-trot 164 05.02.20 06:13 Сейчас в теме
(1) а что мешает получить такую же ТЗ на ком-сервере?
7. xlmel 07.02.20 18:32 Сейчас в теме
(1)
Запрос.УстановитьПараметр("ТБЗ", ЗначениеВСтрокуВнутр(ТБЗ));


Я делаю в таких случаях так
Запрос.УстановитьПараметр("ТБЗ", V82.ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(ТБЗ)));
9. Xershi 1535 07.02.20 19:20 Сейчас в теме
(1) передавать можно только простые типы. Сложные можно получить только на сервере.
11. Fox-trot 164 07.02.20 19:21 Сейчас в теме
(9)ну не скажи. ТЗ мона запихать в массив как единственный элемент
12. Xershi 1535 07.02.20 19:31 Сейчас в теме
(11) как вы по ком собрались передавать ТЗ, даже в массиве?
13. Fox-trot 164 07.02.20 19:49 Сейчас в теме
(12) видима передачу сервер-клиент попутал. уповаю на тяпницу )
3. sys1c 05.02.20 06:17 Сейчас в теме
ТБЗ формируется на "первой" базе
4. Fox-trot 164 05.02.20 06:23 Сейчас в теме
(3) это я понял. а что мешает точно такую же получить на другой стороне? интерактивно формируешь?
5. Fox-trot 164 05.02.20 06:29 Сейчас в теме
если передавать как массив, то примерно так должно быть
Запрос.Текст = "
    |ВЫБРАТЬ
    |    ТБЗ.КодНом,
    |    ТБЗ.Реквизит1
    |ПОМЕСТИТЬ 
    |    ВТ
    |ИЗ
    |    Справочник.МойСправочник КАК ВТ_ТБЗ ГДЕ _ТБЗ.Ссылка В (&ТБЗ) ...
Показать
6. sys1c 05.02.20 06:34 Сейчас в теме
Все разобрался.
"Колонки" ТБЗ объявлять надо вот так

тбз = V82.NewObject("ТаблицаЗначений");

Классификатор = V82.NewObject("КвалификаторыЧисла");
ДоступныеТипы = V82.NewObject("ОписаниеТипов", "Число", Классификатор);
тбз.Колонки.Добавить("колОст",ДоступныеТипы );

а я просто делал Добавить.(5)
Progart; Xershi; ipoloskov; +3 Ответить
10. Xershi 1535 07.02.20 19:21 Сейчас в теме
(6) кажись с 8.3.13 в запрос нужно обязательно типизировать колонки!
8. aka Любитель XML 07.02.20 18:35 Сейчас в теме
ЗначениеВСтрокуВнутр и обратная функция устарели давно (это еще с 7.7 наследство оставлось). ТЗ преобразовать в массив структур - в БСП вроде были такие процедуры
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот