Имя: Пароль:
1C
 
Тип не может быть выбран в запросе
0 rool
 
07.06.18
14:30
Добрый день!

БГУ после обновления в вот этом куске кода:

Если (Массив1.Количество() = 0) ИЛИ (Массив2.Количество() = 0) Тогда
        МассивРезультат = Новый Массив;
        Возврат МассивРезультат;
    КонецЕсли;
    
    МассивТ   = Новый Массив;
    МассивТ.Добавить(ТипЗнч(Массив1[0]));
    ОписаниеТ = Новый ОписаниеТипов(МассивТ);
    
    Таб1 = Новый ТаблицаЗначений;
    Таб1.Колонки.Добавить("К1", ОписаниеТ);
    Таб1.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число"));
    Таб2 = Новый ТаблицаЗначений;
    Таб2.Колонки.Добавить("К1", ОписаниеТ);
    Таб2.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число"));
    
    МаксИндекс = Массив1.Количество() - 1;
    Для к = 0 По МаксИндекс Цикл
        СтрокаТаб         = Таб1.Добавить();
        СтрокаТаб.К1      = Массив1[к];
        СтрокаТаб.Порядок = к;
    КонецЦикла;
    
    МаксИндекс = Массив2.Количество() - 1;
    Для к = 0 По МаксИндекс Цикл
        СтрокаТаб         = Таб2.Добавить();
        СтрокаТаб.К1      = Массив2[к];
        СтрокаТаб.Порядок = к;
    КонецЦикла;    
    
    МВТ = Новый МенеджерВременныхТаблиц;
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МВТ;
    Запрос.Текст = "ВЫБРАТЬ
                    |    К1,
                    |    Порядок
                    |ПОМЕСТИТЬ Т1
                    |ИЗ
                    |    &Таб1 КАК Таб1;
                    |/////////////////////////
                    |ВЫБРАТЬ
                    |    К1,
                    |    Порядок
                    |ПОМЕСТИТЬ Т2
                    |ИЗ
                    |    &Таб2 КАК Таб2;
                    |/////////////////////////
                    |ВЫБРАТЬ РАЗЛИЧНЫЕ
                    |    Т1.К1,
                    |    Т1.Порядок
                    |ИЗ
                    |    Т1
                    |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
                    |    Т2 ПО Т1.К1 = Т2.К1
                    |УПОРЯДОЧИТЬ ПО Т1.Порядок
                    |";
                    
    Запрос.УстановитьПараметр("Таб1", Таб1);
    Запрос.УстановитьПараметр("Таб2", Таб2);
    
    ТабР = Запрос.Выполнить().Выгрузить();
    МассивРезультат = ТабР.ВыгрузитьКолонку("К1");

Начало выдавать ошибку "Тип не может быть выбран в запросе"

что ему надо? вроде обе таблицы типизированные
1 Ёпрст
 
07.06.18
14:32
(0) массив в качестве колонки ?
2 Ёпрст
 
07.06.18
14:32
оригинально
3 rool
 
07.06.18
14:33
(1) я не при делах, это типовой кусок БГУ :)
4 Ёпрст
 
07.06.18
14:34
Посмотри, что у тебя в табличке, в к1
5 rool
 
07.06.18
14:42
(4) пока не могу, база на сервере с отключенной отладкой, копирую
6 rool
 
07.06.18
14:44
(4) я ж правильно понимаю что по хорошему там должно быть что-то вроде вот этого:

///rool
    
    //МассивТ   = Новый Массив;
    //МассивТ.Добавить(ТипЗнч(Массив1[0]));
    //    
    //ОписаниеТ = Новый ОписаниеТипов(МассивТ);
    
    //\rool
    
    Таб1 = Новый ТаблицаЗначений;
    ///rool
    //Таб1.Колонки.Добавить("К1", ОписаниеТ);
    Таб1.Колонки.Добавить("К1", Новый ОписаниеТипов(ТипЗнч(Массив1[0])));
    //\rool
    Таб1.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число"));
    Таб2 = Новый ТаблицаЗначений;
    ///rool
    //Таб2.Колонки.Добавить("К1", ОписаниеТ);
    Таб2.Колонки.Добавить("К1", Новый ОписаниеТипов(ТипЗнч(Массив2[0])));
    //\rool
    Таб2.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число"));
7 Малыш Джон
 
07.06.18
14:54
(6) нет

есть два варианта:

Новый ОписаниеТипов("СправочникСсылка.блаблабла");

или

МассивТипов = НовыйМассив;
МассивТипов.Добавить(Новый Тип("СправочникСсылка.блаблабла");

Новый ОписаниеТипов(МассивТипов);
8 Малыш Джон
 
07.06.18
14:54
поэтому

Новый ОписаниеТипов(ТипЗнч(чего-то там))

не прокатит
9 Малыш Джон
 
07.06.18
15:02
а в твоем случае - скорее всего не происходит типизации колонки в тз.
смотри в отладке, что в Массив1 попадает
10 hhhh
 
07.06.18
15:10
(8) но эта штука

МассивТ   = Новый Массив;
    МассивТ.Добавить(ТипЗнч(Массив1[0]));
    ОписаниеТ = Новый ОписаниеТипов(МассивТ);
    

должна ведь прокатить.
11 hhhh
 
07.06.18
15:11
может там СправочникОбъект передается?
12 rool
 
07.06.18
15:11
(9) ок. всем спасибо. завтра натравлю отладчик на копию базы)
13 Малыш Джон
 
07.06.18
15:18
(10) да , конечно

это второй вариант из (7), только вместо Новый Тип() - ТипЗнч().