|   |   | 
| 
 | v7: прямой запрос - типизация | ☑ | ||
|---|---|---|---|---|
| 0
    
        edud 02.06.24✎ 22:10 | 
        есть такой запрос
 ТекстЗапроса = " |SELECT | Жур.IDDoc as [Док $Документ], | Жур.IDDocDef Док_вид, | |CASE Жур.IDDocDef | WHEN $ВидДокумента.ПриходныйОрдер THEN $ДокПО.Контрагент | WHEN $ВидДокумента.Отгрузка THEN $ДокОтгр.Склад //|END AS [Отправитель $Справочник.Контрагенты] //|END AS [Отправитель $Справочник] |END AS Отправитель | |FROM | _1SJourn as Жур (nolock) |LEFT JOIN | $Документ.ПриходныйОрдер as ДокПО ON ДокПО.IDDoc = Жур.IDDoc |LEFT JOIN | $Документ.Отгрузка as ДокОтгр ON ДокОтгр.IDDoc = Жур.IDDoc |WHERE | Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND | Жур.IDDocDef IN ($ВидДокумента.ПриходныйОрдер,$ВидДокумента.Отгрузка) | |Order by Жур.Date_Time_IDDoc |"; В документе ПриходныйОрдер отправитель это элемент справочника Контрагенты В в документе Отгрузка отправитель это элемент справочника склады Если я типизирую столбец отправитель как AS [Отправитель $Справочник.Контрагенты], то в столбец попадают только значения из поля отправитель из документа ПриходныйОрдер, а из документа Отгрузка , естественно запрос запись не находит. Если я типизирую столбец отправитель как AS [Отправитель $Справочник], то в столбец вообще ничего нет. Хотя тип значения там правильный - "Справочник" Если я типизирую столбец отправитель просто как AS Отправитель, то в столбец попадают только значения идентификаторов из обоих реквизитов отправитель. Но это просто строки со значениями идентификаторов. Подскажет кто, как сделать чтобы в зависимости от вида документа в поле Отправитель попадал или элемент справочника контрагенты (из документа приходный ордер) или элемент справочника склады (из документа отгрузка)? Пробовал уже разные варианты CASE, пробовал IF ELSE. И пока безрезультатно. Причем необязательно чтобы в столбце был тип "Справочник". Сойдёт если это будет наименование элемента (descr). Спасибо... :-) | |||
| 1
    
        Sserj 03.06.24✎ 05:48 | 
        Чтобы типизировать $Справочник нужны виды справочников а из запроса попадают только 9 символов id. 
 Нужно к ним добавить приставки 3-ех символьные. Что-то типа: CASE Жур.IDDocDef WHEN $ВидДокумента.ПриходныйОрдер THEN $ВидСправочника.Контрагенты + $ДокПО.Контрагент WHEN $ВидДокумента.Отгрузка THEN $ВидСправочника.Склады + $ДокОтгр.Склад END AS [Отправитель $Справочник] За синтаксис не ручаюсь, но направление понятно. | |||
| 2
    
        ADirks 03.06.24✎ 07:45 | 
        (0) Для понимания происходящего рекомендую почитать
 http://www.script-coding.com/v77tables.html | |||
| 3
    
        edud 03.06.24✎ 13:21 | 
        (2) 
 Разумеется. :-) Этот раздел изучен. Но пока не получается. Нахожусь в стадии поиска решения... | |||
| 4
    
        Волшебник 03.06.24✎ 13:29 | 
        (3) Найдите уже восьмёрку...     | |||
| 5
    
        edud 03.06.24✎ 14:06 | 
        Восьмёрка есть.
 Есть у нас много баз на восьмой платформе. Но есть и 7.7 | |||
| 6
    
        АгентБезопасной Нацио 03.06.24✎ 15:08 | 
        (5) ну так (1) прочитали? Только надо $ВидСправочника36     | |||
| 7
    
        edud 03.06.24✎ 16:11 | 
        А вот да.... 
 >надо $ВидСправочника36 Спасибо. Получилось. Всем большое спасибо! | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |