|   |   | 
| 
 | Тип не может быть выбран в запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        yanejsh 06.11.13✎ 10:00 | 
        Есть ТЗ с колонкой, в которой может быть два типа
 Массив = Новый Массив; Массив.Добавить(Новый ОписаниеТипов("СправочникСсылка.Материалы")); Массив.Добавить(Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); ОписаниеТипаМатерИНомен = Новый ОписаниеТипов(Массив, , ); ТаблицаРасходаМатериалов.Колонки.Добавить("Материал",ОписаниеТипаМатерИНомен); Далее в запросе эта таблица подставляется во временную и выбирается |ВЫРАЗИТЬ(ТаблицаМатериалов.Материал КАК Справочник.Номенклатура) КАК Материал, Когда был один тип - все понятно. Сейчас надо добавить два типа, а как это сделать в запросе? | |||
| 1
    
        yanejsh 06.11.13✎ 10:19 | 
        как-то так пробую 
 http://kb.mista.ru/article.php?id=526 - неоплучается, говорит, что Несовместимые типы "ВЫРАЗИТЬ" <<?>>ВЫРАЗИТЬ(НЕОПРЕДЕЛЕНО КАК Справочник.Номенклатура) КАК Ссылка | |||
| 2
    
        yanejsh 06.11.13✎ 10:43 | 
        Обошелся этим
 ВЫРАЗИТЬ(ТаблицаМатериалов.Материал КАК Строка(100)) КАК Материал, | |||
| 3
    
        Галахад гуру 06.11.13✎ 10:45 | 
        Как это? Справочник в строку преобразовывает?     | |||
| 4
    
        Feunoir 06.11.13✎ 10:51 | 
        (2) А какая цель типизации в этом случае?     | |||
| 5
    
        yanejsh 06.11.13✎ 11:00 | 
        в ТЗ могло добавляться два типа справочника. теперь добавляется имя элемента справочника.
 А цель - чтобы в запросе выбирать, он без типизации не может | |||
| 6
    
        yanejsh 06.11.13✎ 11:01 | 
        ну и вместо 
 ТаблицаРасходаМатериалов.Колонки.Добавить("Материал",ОписаниеТипаМатерИНомен); стало ТаблицаРасходаМатериалов.Колонки.Добавить("Материал",Новый ОписаниеТипов(Массив, , Новый КвалификаторыСтроки(100))); | |||
| 7
    
        Feunoir 06.11.13✎ 11:09 | 
        (5) Да ладно? Прямо так и не может? У параметра - таблицы значения должны быть все колонки явно типизированы, а в запросе уже больше ничего не требуется. Оно там само разберется. Но если уж тебе очень хочется, тогда через ВЫБОР.
 ВЫБОР КОГДА (... ССЫЛКА Справочник.Материалы) ТОГДА ВЫРАЗИТЬ(... КАК Справочник.Материалы) ... КОНЕЦ | |||
| 8
    
        yanejsh 06.11.13✎ 11:25 | 
        что-то ОНО САМО не разбиралось.
 через выбор тоже понятно. | |||
| 9
    
        Defender aka LINN 06.11.13✎ 11:31 | 
        (2) То есть ты нам вот так вот запросто рассказываешь, что 1С преобразовывает типы в запросе, да?     | |||
| 10
    
        hhhh 06.11.13✎ 11:42 | 
        (8) сделайте 2 колонки
 ТаблицаРасходаМатериалов.Колонки.Добавить("Материал",ОписаниеТипаМатер); ТаблицаРасходаМатериалов.Колонки.Добавить("Номенклатура",ОписаниеТипаНомен); чего вы паритесь из-за фигни? | |||
| 11
    
        Sammo 06.11.13✎ 11:49 | 
        1. Зачем в запросе делать Выразить если колонка итак типизированная?
 2. Если колонка составного типа, она и в запросе будет составного типа | |||
| 12
    
        Sammo 06.11.13✎ 11:51 | 
        +11 Спокойно можно было использовать .Представление или Код или наименование. 
 С нюансами (про неявное соединение) | |||
| 13
    
        Rovan гуру 06.11.13✎ 12:15 | 
        (1) НЕОПРЕДЕЛЕНО - волшебная вещь!
 использовать его надо только в крайнем случае | |||
| 14
    
        Feunoir 06.11.13✎ 13:07 | 
        (8) см. (13) НЕОПРЕДЕЛЕНО это нетипизированное значение. Что-то я не сложу, как у тебя связаны тип колонки в таблице и ВЫРАЗИТЬ(НЕОПРЕДЕЛЕНО КАК Справочник.Номенклатура)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |