Имя: Пароль:
1C
1С v8
Тип не может быть выбран в запросе
,
0 phaz
 
03.09.14
11:45
ТаблицаДанныхПоЗадолжности = Новый ТаблицаЗначений;
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("Контрагент",                Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("ДоговорКонтрагента",         Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагентов"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("ВидДеятельности",            Новый ОписаниеТипов("СправочникСсылка.Б_ВидыДеятельности"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("СчетНомер",                Новый ОписаниеТипов("Строка"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("СчетДата",                 Новый ОписаниеТипов("Дата"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("СчетСуммаДокумента",         Новый ОписаниеТипов("Число"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("ДатыОплаты",                Новый ОписаниеТипов("Строка"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("СуммаОплаты",                 Новый ОписаниеТипов("Число"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("СуммаАктовОплаченных",        Новый ОписаниеТипов("Число"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("СуммаАктовВыставленных",   Новый ОписаниеТипов("Число"));
    ТаблицаДанныхПоЗадолжности.Колонки.Добавить("Счет",                        Новый ОписаниеТипов("ДокументСсылка.СчетНаОплатуПокупателю"));
    
        
        ТаблицаДанных = СложитьСовпадающиеСтрокиОплаты(РезультатЗапроса);
        
        ТаблицаДанныхПоЗадолжности = ТаблицаДанных.Скопировать();
        
        Менеджер = Новый МенеджерВременныхТаблиц;
        
        Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ *
                       |ПОМЕСТИТЬ Табл
                       |ИЗ
                       |    &Данные КАК Таб";
        
        Запрос.УстановитьПараметр("Данные", ТаблицаДанныхПоЗадолжности);
        Запрос.МенеджерВременныхТаблиц = Менеджер;
        Запрос.Выполнить();

Добрый день!

Собственно не могу понять в чем ошибка?
1 Wobland
 
03.09.14
11:46
видимо, да
2 Timon1405
 
03.09.14
11:47
а разве квалификаторы не нужно указать?
3 Wobland
 
03.09.14
11:48
(2) всё равно нетипизированная будет
4 mzelensky
 
03.09.14
11:49
(0) А толку, что ты описание сделал, если ты копируешь таблицу:

ТаблицаДанныхПоЗадолжности = ТаблицаДанных.Скопировать();
5 Адский плющ
 
03.09.14
11:49
Ха, после долгих мучений с прописанием типов колонок, берем всё и убиваем :

ТаблицаДанныхПоЗадолжности = ТаблицаДанных.Скопировать();
6 Адский плющ
 
03.09.14
11:49
(4) Опередил )
7 mzelensky
 
03.09.14
11:50
(4) + После этого у тебя в переменной "ТаблицаДанныхПоЗадолжности" получается таблица полностью аналогичная таблице "ТаблицаДанных"
8 phaz
 
03.09.14
11:51
(7) А как же мне добавить туда данные правильно? Перебором через цикл?
9 Timon1405
 
03.09.14
11:52
// Добавляет в таблицу значений строки из другой таблицы значений и
// в них значения колонок с совпадающими наименованиями.
//
// Параметры:
//  ТаблицаИсточник - таблица значений, откуда берутся значения.
//  ТаблицаПриемник - таблица значений, куда добавляются строки.
//
Процедура ЗагрузитьВТаблицуЗначений(ТаблицаИсточник, ТаблицаПриемник) Экспорт

    //Сформируем массив совпадающих колонок.
    МассивСовпадающихКолонок = Новый Массив();
    Для каждого Колонка Из ТаблицаПриемник.Колонки Цикл

        Если ТаблицаИсточник.Колонки.Найти(Колонка.Имя) <> Неопределено Тогда

            МассивСовпадающихКолонок.Добавить(Колонка.Имя);

        КонецЕсли;

    КонецЦикла;

    Для каждого СтрокаТаблицыИсточника Из ТаблицаИсточник Цикл

        СтрокаТаблицыПриемника = ТаблицаПриемник.Добавить();

        // Заполним значения в совпадающих колонках.
        Для каждого ЭлементМассива Из МассивСовпадающихКолонок Цикл

            СтрокаТаблицыПриемника[ЭлементМассива] = СтрокаТаблицыИсточника[ЭлементМассива];

        КонецЦикла;

    КонецЦикла;

КонецПроцедуры // ЗагрузитьВТаблицуЗначений()
10 phaz
 
03.09.14
11:52
Т.е. через НовСтр = ТЗ.Добавить();
11 phaz
 
03.09.14
11:53
(9) Спасибо сейчас попробую.
12 phaz
 
03.09.14
11:58
(9) Помогло буду иметь ввиду, спасибо.
13 mzelensky
 
03.09.14
11:58
(10)(11) Либо перебором и "ЗаполнитьЗначенияСвойств" или сразу таблицу "ТаблицаДанных" типизировать.
14 mzelensky
 
03.09.14
11:59
(9) Боже, зачем такой велосипед??? Чем просто метод "ЗаполнитьЗначенияСвойств" не устраивает???
15 mzelensky
 
03.09.14
12:01
(14) Вот так:

Для каждого СтрокаТаблицыИсточника Из ТаблицаИсточник Цикл

   // Заполним значения в совпадающих колонках.
   ЗаполнитьЗначенияСвойств(ТаблицаПриемник.Добавить(), СтрокаТаблицыИсточника);
КонецЦикла;
16 Фокусник
 
03.09.14
12:04
(4), (5) Да ладно, типы тоже копируются...  при ТЗ.Скопировать()

(0) ИМХО, проблема в неограниченной строке:
Новый ОписаниеТипов("Строка")
17 phaz
 
03.09.14
12:04
(15) Спасибо, так реально быстрее.
18 mzelensky
 
03.09.14
12:07
(16) ну так правильно, скопируются. И если ТЗ "ТаблицаДанных" не типизировалась (ее колонки не типизировались), то запрос работать не будет.  

Чет ты, дядя, подтупливаешь...
19 Фокусник
 
03.09.14
12:11
(18) Ага, вырвал проблему из контекста кода :)