Имя: Пароль:
1C
1С v8
v8: Помогите исправить ошибку
,
0 alex-van1C8
 
02.07.12
12:39
Есть запрос:

Запрос.Текст="ВЫБРАТЬ
                |  ИтоговаяТаблицаСМатериалом.Материал КАК Материал
                |ПОМЕСТИТЬ ВТ_Материалов
                |ИЗ
                |  &ИтоговаяТаблицаСМатериалом КАК ИтоговаяТаблицаСМатериалом
                |;
                |
                |////////////////////////////////////////////////////////////////////////////////
                |ВЫБРАТЬ
                |  КартаРаботПоМатериалу.ОписаниеРабот.(
                |      Ссылка,
                |      НомерСтроки,
                |      Номенклатура,
                |      Формула,
                |      УсловиеВыполнениеРабот,
                |      Деталировка,
                |      Фасады,
                |      ШкафыКупе
                |  )
                |ИЗ
                |  ВТ_Материалов КАК ВТ_Материалов
                |      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КартаРаботПоМатериалу КАК КартаРаботПоМатериалу
                |      ПО ВТ_Материалов.Материал = КартаРаботПоМатериалу.Номенклатура.Ссылка";
               
   Запрос.УстановитьПараметр("ИтоговаяТаблицаСМатериалом",ИтоговаяТаблицаСМатериалом);

При выполнении выдает ошибку:
"Тип не может быть выбран в запросе <<?>>ИтоговаяТаблицаСМатериалами КАК Материал".

В конструкторе запроса при описании ВременнойТаблицы указываю тип .

Что не так делаю?
1 Cube
 
02.07.12
12:41
(0) "В конструкторе запроса при описании ВременнойТаблицы указываю тип"
Здесь ошибка. Конструктор конструктором, то у ТЗ, которую ты в запрос передаешь все колонки должны быть типизированными.
2 МойКодУныл
 
02.07.12
12:41
Колонки таблицы значений типизированы? Иначе не выйдет
3 Mafoni
 
02.07.12
12:43
(0) а что передаеш в запрос ? ИтоговаяТаблицаСМатериалом - это тз ? как она получена ?
4 Maxus43
 
02.07.12
12:44
решают обычно задачи, а не ошибки)
5 Mikeware
 
02.07.12
12:44
"Решить ошибку"????
6 alex-van1C8
 
02.07.12
12:48
(3)
   ИтоговаяТаблицаСМатериалом=Новый ТаблицаЗначений;
   ИтоговаяТаблицаСМатериалом.Колонки.Добавить("Материал");
   .....
НоваяСтрока=ИтоговаяТаблицаСМатериалом.Добавить();            
   НоваяСтрока.Материал=Стр[НазваниеКолонки];
7 alex-van1C8
 
02.07.12
12:48
(2) А как понять типизированы они или нет?
8 Cube
 
02.07.12
12:50
(6) (7) Типизированная ТЗ:

МояТЗ = Новый ТаблицаЗначений;
МояТЗ.Колокни.Добавить("Колонка1", Новый ОписаниеТипов("Строка"));
9 Cube
 
02.07.12
12:50
+(8) Сори за очепятки :)
С ними будет интереснее разобраться)
10 Maxus43
 
02.07.12
12:51
колонки не типизированы, или принудительно тип указывай, или выгружай в ТЗ уже типизированно
11 Maxus43
 
02.07.12
12:52
что есть Стр[НазваниеКолонки]? строка ТЧ или ТЗ? Выгрузить() кури например, сразу ТЗ типизированная создастся без оходов в циклах и т.д.
12 qwerty09
 
02.07.12
12:53
(0) какой то странный у тебя запрос...почему ты выбираешь данные из ТЧ через таблицу документа, а не его табличную часть, и вообще накуя здесь весь этот огород с временной таблицей? Выбирай из таблицы ТЧ документа с условием ГДЕ КартаРаботПоМатериалу.Номенклатура.Ссылка = &МассивМатериалов
13 alex-van1C8
 
02.07.12
12:53
Для Каждого Стр из ПромежуточнаяТаблицаСМатериалом Цикл
           
           Если ПустаяСтрока(Стр[НазваниеКолонки]) Тогда Прервать КонецЕсли;
           
           НоваяСтрока=ИтоговаяТаблицаСМатериалом.Добавить();            
           НоваяСтрока.Материал=Стр[НазваниеКолонки](ДСП,Фанера, и т д (СправочникССылкаНоменклатура));
           
       КонецЦикла;
14 qwerty09
 
02.07.12
12:54
(12) * всмысле ГДЕ КартаРаботПоМатериалу.Номенклатура.Ссылка В (&МассивМатериалов)
15 Mafoni
 
02.07.12
12:55
(0) смотри (8)
16 Maxus43
 
02.07.12
12:56
помойму надо  не (8) смотреть, а менять вобще подход к решению, типа как в (12)
17 alex-van1C8
 
02.07.12
12:58
Суть такова. Есть обработка в ней табличная часть. В этой ТЧ есть три колонки в которых указывается номенклатура. То-есть в одной строке три разных номенклатуры.
Я делаю ТЗ с колонкой "материал" и туда сливаю всю номенклатуру. А затем мне нужно ко всей этой номенклатуре подтянуть данные.
18 alex-van1C8
 
02.07.12
13:04
(8) сработало.
хотя (12) все проще. Что то я действительно нагородил :).
Ребят, спасибо!
19 Cube
 
02.07.12
13:04
(17) Ну Ппц... Чо, так не проще:

Запрос.Текст="ВЫБРАТЬ
                |  КартаРаботПоМатериалу.ОписаниеРабот.(
                |      Ссылка,
                |      НомерСтроки,
                |      Номенклатура,
                |      Формула,
                |      УсловиеВыполнениеРабот,
                |      Деталировка,
                |      Фасады,
                |      ШкафыКупе
                |  )
                |ИЗ
                |  Справочник.КартаРаботПоМатериалу КАК КартаРаботПоМатериалу
                |ГДЕ
                |  КартаРаботПоМатериалу.Номенклатура В (&СписокНоменклатуры)";
СписокНоменклатуры = Новый СписокЗначений;
Для Каждого СтрокаТЧ Из МояТЧ Цикл
   СписокНоменклатуры.Добавить(СтрокаТЧ.Номенклатура1);
   СписокНоменклатуры.Добавить(СтрокаТЧ.Номенклатура2);
   СписокНоменклатуры.Добавить(СтрокаТЧ.Номенклатура3);
КонецЦикла;
Запрос.УстановитьПараметр("СписокНоменклатуры", СписокНоменклатуры);
20 alex-van1C8
 
02.07.12
13:06
Согласен через СЗ или массив проще.Не знаю чего меня в ТЗ и ВТ потянуло?
21 hhhh
 
02.07.12
13:14
(19) можно так

               |ГДЕ
                |  КартаРаботПоМатериалу.Номенклатура В (&СписокНоменклатуры1)
ИЛИ КартаРаботПоМатериалу.Номенклатура В (&СписокНоменклатуры2)
ИЛИ КартаРаботПоМатериалу.Номенклатура В (&СписокНоменклатуры3)