|
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 Спасибо. Получилось. Всем большое спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |