Вход | Регистрация

1С:Предприятие ::

Метки: 

Тип не может быть выбран в запросе

Я
   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
оригинально
   rool
 
3 - 07.06.18 - 14:33
(1) я не при делах, это типовой кусок БГУ :)
   Ёпрст
 
4 - 07.06.18 - 14:34
Посмотри, что у тебя в табличке, в к1
   rool
 
5 - 07.06.18 - 14:42
(4) пока не могу, база на сервере с отключенной отладкой, копирую
   rool
 
6 - 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 попадает
   hhhh
 
10 - 07.06.18 - 15:10
(8) но эта штука
МассивТ   = Новый Массив;
    МассивТ.Добавить(ТипЗнч(Массив1[0]));
    ОписаниеТ = Новый ОписаниеТипов(МассивТ);
    

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

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


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует