1С 7.7 прямой запрос к реквизиту "Документ" (любой вид)

1. KNOSSOS 12.03.25 04:18 Сейчас в теме
Привет!
Помогите, плз, обойти грабли с реквизитом справочника типа документ любого вида
Есть справочник ПоставкиОплаты, в котором реквизит "Оплата" вида "Документ".
Есть прямой запрос:
|SELECT
	|    Жур.IDDoc as ДокументОплаты,
	|    Жур.IDDocDef as Док_вид,
	|    $ДокументОплаты.Сумма as Сумма,
	|    $Спр.Оплата as Оплата,
	|	 SUM($Спр.СуммаОплаты) AS Распределено
	|FROM
	|    _1SJourn Жур
	|INNER JOIN
	|   $Документ.СтрокаВыпискиРасход as ДокументОплаты ON ДокументОплаты.IDDoc = Жур.IDDoc 
	|JOIN
	|	$Справочник.ПоставкиОплаты as Спр ON  $Спр.Оплата = Жур.IDDoc
	|WHERE
	|    (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)
	|     AND (Жур.IDDocDef = $ВидДокумента.СтрокаВыпискиРасход)
	|GROUP BY
	|	Жур.IDDoc, Жур.IDDocDef, $ДокументОплаты.Сумма, $Спр.Оплата 
	|ORDER BY
	|	Жур.IDDoc";
Показать

Не работает связка JOIN $Справочник.ПоставкиОплаты as Спр ON $Спр.Оплата = Жур.IDDoc

Если в справочнике Оплаты сделать реквизит Оплата не произвольного вида, а конкретного, например, "Документ.СтрокаВыпискиРасход", то запрос работает.
Как выкручиваться? Спасибо!
По теме из базы знаний
Найденные решения
3. KNOSSOS 12.03.25 10:32 Сейчас в теме
(2) Спасибо, поразбирался с этим и решил так:
...
JOIN
| $Справочник.ПоставкиОплаты as Спр ON ($ВидДокумента36.СтрокаВыпискиРасход + Жур.IDDoc = $Спр.Оплата)

В случае SUBSTRING($Спр.Оплата,4,9) может быть совпадение с другим видом документов.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Salimbek 13 12.03.25 08:27 Сейчас в теме
(1) Поле $Спр.Оплата - у тебя с типом char(13) и содержит в себе 4 символа Типа документа (IDDocDef) + 9 символов IdDoc. А поле Жур.IDDoc - с типом char(9) так как есть отдельное поле Жур.IDDocDef с типом char(4) в котором указан Тип документа. Поэтому у тебя соединение и не срабатывает.
Надо SUBSTRING($Спр.Оплата,4,9) = Жур.IDDOC
3. KNOSSOS 12.03.25 10:32 Сейчас в теме
(2) Спасибо, поразбирался с этим и решил так:
...
JOIN
| $Справочник.ПоставкиОплаты as Спр ON ($ВидДокумента36.СтрокаВыпискиРасход + Жур.IDDoc = $Спр.Оплата)

В случае SUBSTRING($Спр.Оплата,4,9) может быть совпадение с другим видом документов.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот