Имя: Пароль:
1C
1C 7.7
v7: Как выбрать элементы по документу?
0 Таня-ученица
 
10.08.15
16:08
Создала справочник "А", где одним из реквизитов типа "Документ" (реквизит "Документ").
Хочу отобрать только те элементы справочника, которые равны моему текущему документу. Написала запрос:


|SELECT
|DOC.DESCR as [Наименование],
|СпрСотр.DESCR as [Сотрудник]
|
|FROM
|    $Справочник.А as Спр
|
|INNER JOIN
|  _1SJOURN As DOC  ON DOC.IDDOC = $Спр.Документ
|LEFT JOIN
| $Справочник.Сотрудники as СпрСотр ON СпрСотр.ID = $Спр.Сотрудник
|
|WHERE
|DOC.IDDOC = :Док
|
|";
запросSQL.УстановитьТекстовыйПараметр("Док", ТекущийДокумент());

Но в выборке пусто. Помогите найти ошибку!
1 Таня-ученица
 
10.08.15
16:13
Под селектом нужно так:
|SELECT
|СпрСотр.DESCR as [Сотрудник]
|

но не помогает.
Тут что-то в
|INNER JOIN
|  _1SJOURN As DOC  ON DOC.IDDOC = $Спр.Документ

тип реквизита не конкретный вид документа, а общий "Документ"
2 Абыр
 
10.08.15
16:23
(0) тип реквизита "Документ" какой?
3 Абыр
 
10.08.15
16:25
если тип "Документ", т.е. без указания конкретного вида, то Спр.Документ = DOC.IDDOCDEF + DOC.IDDOC, а не просто IDDOC
4 Абыр
 
10.08.15
16:25
и для описанной задачи джойн с журналом не нужен.
можете сразу сделать отбор по реквизиту справочника в WHERE
5 Таня-ученица
 
10.08.15
16:28
(4) Напишите пример после WHERE
6 Таня-ученица
 
10.08.15
16:34
Я вот этого не поняла:
Спр.Документ = DOC.IDDOCDEF + DOC.IDDOC
7 palpetrovich
 
10.08.15
16:34
(5) так наверное:
|SELECT
|СпрСотр.DESCR as [Сотрудник]
|FROM
|    $Справочник.А as СпрСотр
|WHERE
|СпрСотр.РеквизитТипаДокумент = :Док
8 Mutniy2
 
10.08.15
16:35
9 Mutniy2
 
10.08.15
16:37
Короч. script-coding.com/v77tables.html
И пункт "1.1.1. Хранение ID объекта"
10 Таня-ученица
 
10.08.15
16:38
(7) Сделала так, но в выборке снова пусто.
11 Таня-ученица
 
10.08.15
16:39
Сделала внутреннее соединение так:
|INNER JOIN
|    _1SJOURN As DOC  ON DOC.IDDOC = $Спр.Документ AND DOC.IDDOCDEF = $ВидДокумента.Расход

В выборке пусто.
12 Ёпрст
 
10.08.15
16:39
(0)

|INNER JOIN
|  _1SJOURN As DOC (nolock) ON DOC.IDDOC = right($Спр.Документ,9)
13 Ёпрст
 
10.08.15
16:40
ну и из селекта, вот этот бред выкини

DOC.DESCR as [Наименование],
14 Таня-ученица
 
10.08.15
16:42
(12) Снова в выборке пусто.  :(
(13) Давно выкинула.
15 Ёпрст
 
10.08.15
16:43
и ...всё в топку, пиши так, что ле:

|SELECT
|Спр .DESCR as [Наименование],
|СпрСотр.DESCR as [Сотрудник]
|
|FROM
|    $Справочник.А as Спр (nolock)
|LEFT JOIN
| $Справочник.Сотрудники as СпрСотр (nolock) ON СпрСотр.ID = $Спр.Сотрудник
|Where  $Спр.Документ = :ВыбДокумент~
16 Таня-ученица
 
10.08.15
16:44
Всё, разобралась :)
Я - умница!
17 Таня-ученица
 
10.08.15
16:45
Спасибо, Ёпрстик! :)
18 Эльниньо
 
11.08.15
14:15
Спр.ВыбратьЭлементыПоРеквизиту() чем плох?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс