Имя: Пароль:
1C
1С v8
Как типизировать многими типами колонку, чтобы использовать в запросе ?
0 r1000
 
06.04.15
16:15
Сейчас пытаюсь сделать так:
    СписокТипов = Новый Массив;
    СписокТипов.Добавить("Строка");
    СписокТипов.Добавить("Число");    
    СписокТипов.Добавить("Булево");
    СписокТипов.Добавить("Дата");
    СписокТипов.Добавить("СправочникСсылка.Контрагенты");
    ОписаниеСоставногоТипа = Новый ОписаниеТипов(СписокТипов);
    ТЗ.Колонки.Добавить("Значение", ОписаниеСоставногоТипа);
  
Передаю эту ТЗ в запрос, но ругается "тип не может быть выбран в запросе". Или всегда нужно только один тип колонки задавать чтобы в запросе использовать ?
1 DrShad
 
06.04.15
16:21
создай тип все ссылки
2 DrShad
 
06.04.15
16:25
мТипВсеСсылки = Справочники.ТипВсеСсылки();
мТипВсеСсылки = Новый ОписаниеТипов(мТипВсеСсылки, Документы.ТипВсеСсылки().Типы());
мТипВсеСсылки = Новый ОписаниеТипов(мТипВсеСсылки, ПланыВидовХарактеристик.ТипВсеСсылки().Типы());
мТипВсеСсылки = Новый ОписаниеТипов(мТипВсеСсылки, ПланыОбмена.ТипВсеСсылки().Типы());
мТипВсеСсылки = Новый ОписаниеТипов(мТипВсеСсылки, ПланыВидовРасчета.ТипВсеСсылки().Типы());
мТипВсеСсылки = Новый ОписаниеТипов(мТипВсеСсылки, ПланыСчетов.ТипВсеСсылки().Типы());
мТипВсеСсылки = Новый ОписаниеТипов(мТипВсеСсылки, Перечисления.ТипВсеСсылки().Типы());
мТипВсеСсылки = Новый ОписаниеТипов(мТипВсеСсылки, БизнесПроцессы.ТипВсеСсылки().Типы());
мТипВсеСсылки = Новый ОписаниеТипов(мТипВсеСсылки, Задачи.ТипВсеСсылки().Типы());
3 r1000
 
06.04.15
16:26
Вопрос закрыт. Спасибо.
4 D_E_S_131
 
06.04.15
16:57
"Или всегда нужно только один тип колонки задавать чтобы в запросе использовать ?"
Именно!
5 DrShad
 
06.04.15
16:59
(4) да ладно!?
6 spiller26
 
06.04.15
17:01
Кстати бывают моменты когда таблицу передаешь в функцию, в которой она в последствии обрабатывается в запросе, тоже необходимо перетипизировать.
7 D_E_S_131
 
06.04.15
17:10
(5) Сорри, с необходимостью типизации попутал.
8 r1000
 
06.04.15
17:39
Пытаюсь типизировать вот так:
    СписокТипов = Новый Массив;
    СписокТипов.Добавить(Справочники.ТипВсеСсылки().Типы());
    СписокТипов.Добавить(ПланыВидовХарактеристик.ТипВсеСсылки().Типы());    
    СписокТипов.Добавить(Перечисления.ТипВсеСсылки().Типы());    
    СписокТипов.Добавить(Тип("Булево"));    
    СписокТипов.Добавить(Тип("Строка"));    
    СписокТипов.Добавить(Тип("Число"));
    
    ДопустимыеТипы = Новый ОписаниеТипов(ДопустимыеТипы, СписокТипов, , );

Выдает ошибку Несоответствие типов (параметр номер '2')
Вроде бы все по СП делаю... где ошибка ?
9 Лефмихалыч
 
06.04.15
17:44
квалификаторы строки и числа забыл подставить
10 r1000
 
06.04.15
17:49
Новый вариант, тоже не работает:

    СписокТипов = Новый Массив;
    СписокТипов.Добавить(Тип("СправочникСсылка.ЦветаДверей"));
    СписокТипов.Добавить(Тип("ПланВидовХарактеристикСсылка.СвойстваОбъектов"));
    СписокТипов.Добавить(Тип("Булево"));    
  
    КвЧисла = Новый КвалификаторыЧисла(10, 2);
    КвСтроки = Новый КвалификаторыСтроки(100);
    КвДаты = Новый КвалификаторыДаты(ЧастиДаты.Дата);
    
    
    ДопустимыеТипы = Новый ОписаниеТипов(, СписокТипов, , КвЧисла, КвСтроки, КвДаты);
11 r1000
 
06.04.15
17:51
В отладчике в СписокТипов содержиться массив с элементами типа Тип.
12 D_E_S_131
 
06.04.15
18:34
А хоть с одним типом работает? Добавляй поочередно и узнаешь на каком "валится".
13 r1000
 
06.04.15
18:51
Разобралсо.
Нужно было так сделать:
    СписокТипов = Новый Массив;
    СписокТипов.Добавить(Тип("СправочникСсылка.ЦветаДверей"));
    СписокТипов.Добавить(Тип("СправочникСсылка.ЗначенияСвойствОбъектов"));
    СписокТипов.Добавить(Тип("ПланВидовХарактеристикСсылка.СвойстваОбъектов"));
    СписокТипов.Добавить(Тип("Булево"));    
  
    КвЧисла = Новый КвалификаторыЧисла(10, 2);
    КвСтроки = Новый КвалификаторыСтроки(100);
    КвДаты = Новый КвалификаторыДаты(ЧастиДаты.Дата);
    
    ДопустимыеТипы = Новый ОписаниеТипов(СписокТипов, КвЧисла, КвСтроки, КвДаты);