Имя: Пароль:
1C
1С v8
Неверный тип значения
0 bUbA
 
17.05.13
13:41
В процедуре

Номенклатура.Очистить();
   ПостроительЗапроса = Новый ПостроительЗапроса;
   ПостроительЗапроса.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                              |    Номенклатура.Ссылка
                              |ИЗ
                              |    Справочник.Номенклатура КАК Номенклатура
                              |ГДЕ
                              |    Номенклатура.ЭтоГруппа = ЛОЖЬ
                              |{ГДЕ
                              |    Номенклатура.Ссылка}";
                               
   Если НЕ ГруппаНоменклатура.Пустая() Тогда
       флОтборПоНоменклатуре = Истина;
   Иначе
       флОтборПоНоменклатуре = Ложь;
   КонецЕсли;                            
   
   Если флОтборПоНоменклатуре Тогда
       Отбор               = ПостроительЗапроса.Отбор.Добавить("Ссылка");
       Отбор.Использование = Истина;
       Отбор.ВидСравнения  = ВидСравнения.ВИерархии;      
       Отбор.Значение      = Номенклатура;                
   КонецЕсли;
   
   Запрос = ПостроительЗапроса.ПолучитьЗапрос();
   Выборка = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

На строке Отбор.Значение = Номенклатура; ругается на неверный тип значения - Ошибка при установке значения атрибута контекста (Значение). В чём может быть дело? Номенклатура - это ТЧ документа
1 Defender aka LINN
 
17.05.13
13:43
"Номенклатура - это ТЧ документа"
2 johnny17
 
17.05.13
13:43
Значение должно быть списком значений...
3 Defender aka LINN
 
17.05.13
13:44
(2) У тебя уже вечер пятницы?
4 johnny17
 
17.05.13
13:44
(3) Угу... хихикаю помаленьку ))
5 Maxus43
 
17.05.13
13:47
дак ТЧ то пустая, у тебя выше Номенклатура.Очистить();

а если бы была не пустая, тогда Отбор.Значение      = Номенклатура.выгрузить("СсылкаНаНоменклатуру");
6 johnny17
 
17.05.13
13:47
А если уж по делу, то к (2) Если Номенклатура - это ТЧ, то тогда Отбор.Значение = Номенклатура.ВыгрузитьКолонку("Номенклатура");

Вот только смысл, если в начале Номенклатура.Очистить() ???
7 johnny17
 
17.05.13
13:48
(5) ))
8 bUbA
 
17.05.13
14:04
(6) теперь пишет Ошибка при вызове метода контекста (ВыгрузитьКолонку), Недопустимое значение параметра (параметр номер '1') (Колонка не принадлежит коллекции)
9 Defender aka LINN
 
17.05.13
14:05
(6) Ащета вид сравнения "ВИерархии", а не "ВСпискеПоИерархии".
10 bUbA
 
17.05.13
15:46
Сделал так

Запрос = ПостроительЗапроса.ПолучитьЗапрос();
   ТЗ = Запрос.Выполнить().Выгрузить();
   ОбойтиСтроки1(ТЗ, Номенклатура);
           
КонецПроцедуры

Процедура ОбойтиСтроки1(ТЗ, Номенклатура)
   Для Каждого стрТЗ Из ТЗ Цикл
       ТЧ = Номенклатура.Добавить();
       ЗаполнитьЗначенияСвойств(ТЧ,стрТЗ);
   КонецЦикла;    
КонецПроцедуры


но теперь появляются пустые строки, как их заполнить?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший