|
Составной тип в запросе |
☑ |
0
vsg-work
26.05.21
✎
15:19
|
Добрый день.
Возникла проблема. Есть таблица значений, которую создал программно. Описал типы, все как нужно. Единственное, у меня поле "ДокументОтгрузки" является составным типом (может быть как реализацией, так и отчет о розничных продажах).
Когда я эту таблицу значений передаю в запрос параметром, при исполнении 1С ругается следующим образом:
Тип не может быть выбран в запросе
<<?>>ТаблицаДанных.ДокументОтгрузки КАК ДокументОтгрузки,
КАк решается данная проблема, подскажите пожалуйста...
|
|
1
vde69
26.05.21
✎
15:23
|
что-то типа такого
Выбор
когда т.Поле ссылка(документ.твойдокумент) тогда
выразить(т.Поле, документ.твойдокумент) = &пвр
иначе
ложь
конецвыбор
|
|
2
vsg-work
26.05.21
✎
15:31
|
(1) Не понял, а что я должен в параметр поставить?) Вместе &пвр?
|
|
3
hhhh
26.05.21
✎
15:38
|
(0) ну, покажите, как описали типы.
|
|
4
perlharbor
26.05.21
✎
15:39
|
(0) Ну загляни в эту ТЗ и посмотри какие документы туда попадают. Может встречаться null например,или документ с типом,которого нет в описании колонки
|
|
5
vsg-work
26.05.21
✎
15:44
|
(3) МассивОписанийТипов = Новый Массив;
МассивОписанийТипов .Добавить(Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
МассивОписанийТипов .Добавить(Новый ОписаниеТипов("ДокументСсылка.ВозвратТоваровОтПокупателя"));
ТаблицаДанных.Колонки.Добавить("ДокументОтгрузки", Новый ОписаниеТипов(МассивОписанийТипов ));
|
|
6
vsg-work
26.05.21
✎
15:45
|
(4) Ну вот, только два документа и попадают. NULL нету. Только два типа.
|
|
7
hhhh
26.05.21
✎
15:48
|
(6) вот это какой-то дебилизм, описание типов, а внутри еще одно описание типов. Наверно так надо
МассивОписанийТипов .Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
|
|
8
Anton1307
26.05.21
✎
15:49
|
Рабочий код:
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("ААА", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(10));
ТЗ.Колонки.Добавить("БББ", Новый ОписаниеТипов("ДокументСсылка.ПоступлениеТоваровУслуг, ДокументСсылка.РеализацияТоваровУслуг"));
ТекстЗапроса = "ВЫБРАТЬ
| Т.ААА,
| Т.БББ
|ПОМЕСТИТЬ ВремТЗ
|ИЗ
| &ТЗ КАК Т";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Запрос.Выполнить();
|
|
9
Anton1307
26.05.21
✎
15:56
|
(5) У тебя здесь ошибка. Ты в качестве параметра типа колонки передаёшь не массив типов, в массив ОПИСАНИЙ типов.
Правильно - как в (7)
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой