Господа!
Как в рамках одного запроса, реализовать следующую задачу, к списку полученных документов, добавить поле которое бы отображало есть ли в базе документ ПКО у которого в реквизите ДокОснование есть ссылка на один из документов полученных ранее, я начал выносить получение исходного списка документов, в подзапрос, начались проблемы с типизацией, начали вылазить пустые записи в поле. Решил уточнить на форуме )
Собственно запрос получения доков такой
|SELECT
| Жур.IDDoc as [ТекДок $Документ],
| Жур.IDDocDef as ТекДок_вид,
| (CAST(LEFT(Жур.Date_Time_IDDoc, 8) AS DateTime)) AS Дата,
| $Реализация.СуммаВзаиморасчетов AS [Сумма]
|FROM
|_1SJOURN Жур With (NOLOCK)
|INNER JOIN
|$Документ.Реализация AS Реализация With (NOLOCK) ON Жур.IDDOC = Реализация.IDDOC
|WHERE
|Жур.ISMARK=0 AND
|Жур.$ОбщийРеквизит.Фирма = :Фирма
|AND Жур.date_time_iddoc between :НачДата and :КонДата~
Попробовал сделать вот так (на типизацию уже не ругается, но в поле ПКО нет данных, хотя для одного документа точно должно быть):
SELECT
T1.ТекДок AS [Документ $Документ],
T1.ТекДок_вид as Документ_вид,
T1.Дата as Дата,
T1.Сумма AS [Сумма $Число],
T2.ТекДокПКО AS [ПКО],
T2.ТекДокПКО_вид as Документ_вид_ПКО
FROM
(
SELECT
Жур.IDDoc as [ТекДок],
Жур.IDDocDef as ТекДок_вид,
(CAST(LEFT(Жур.Date_Time_IDDoc, 8) AS DateTime)) AS Дата,
$Реализация.СуммаВзаиморасчетов AS [Сумма]
FROM
_1SJOURN Жур With (NOLOCK)
INNER JOIN
$Документ.Реализация AS Реализация With (NOLOCK) ON Жур.IDDOC = Реализация.IDDOC
WHERE
Жур.ISMARK=0 AND
Жур.$ОбщийРеквизит.Фирма = :Фирма
AND $Реализация.Контрагент = :ВыбКонтрагент
AND Жур.date_time_iddoc between :НачДата and :КонДата~
) T1
LEFT JOIN
(
SELECT
Жур.IDDoc AS [ТекДокПКО],
Жур.IDDocDef AS ТекДокПКО_вид,
$ПКО.ДокОснование AS ДокОснование
FROM
_1SJOURN Жур With (NOLOCK)
INNER JOIN
$Документ.ПКО AS ПКО With (NOLOCK) ON Жур.IDDOC = ПКО.IDDOC
) T2 ON T1.ТекДок = T2.ДокОснование
ДокОснование - как задан в конфигураторе?
Цитата: Злоп от 06 августа 2025, 18:17ДокОснование - как задан в конфигураторе?
Как реквизит - типа "Документ" без типа документа.
Цитата: SnakePlisskin от 06 августа 2025, 12:55T2.ТекДокПКО AS [ПКО],
T2.ТекДокПКО_вид as Документ_вид_ПКО
замени на
T2.ТекДокПКО AS [ПКО $Документ],
T2.ТекДокПКО_вид as ПКО_вид
а в условии присоединения
) T2 ON T1.ТекДок = right(T2.ДокОснование, 9)
Цитата: vladmenleo от 07 августа 2025, 11:06Цитата: SnakePlisskin от 06 августа 2025, 12:55T2.ТекДокПКО AS [ПКО],
T2.ТекДокПКО_вид as Документ_вид_ПКО
замени на
T2.ТекДокПКО AS [ПКО $Документ],
T2.ТекДокПКО_вид as ПКО_вид
а в условии присоединения
) T2 ON T1.ТекДок = right(T2.ДокОснование, 9)
Да спасибо!
Правильно, значит, я понял в чем проблема.