![]() |
|
Как корректно построить запрос к РС с отбором по реквизитам? | ☑ | ||
---|---|---|---|---|
0
Aleks73
27.09.11
✎
14:12
|
Есть периодический зависимый регистр сведений, у которого один из реквизитов имеет тип справочник, по нему нужно сделать отбор.
Совсем не классика, я не имел дело с отборами по реквизитам вкупе со СрезПоследних, и не уверен что прокатит ГДЕ с учетом того, что понадобится ЛЕВОЕ СОЕДИНЕНИЕ. Чтобы не изобретать велосипед, киньте в меня кто-нибудь таким кодом. |
|||
1
Aleks73
27.09.11
✎
14:13
|
сорри, напутал, по РЕСУРСАМ, если это важно
|
|||
2
mikecool
27.09.11
✎
14:13
|
сам спросил, сам ответил
|
|||
3
Aleks73
27.09.11
✎
14:13
|
(2) нет не ответил
|
|||
4
mzelensky
27.09.11
✎
14:16
|
(27) ну ты бы хоть свой вариант написал...для начала!
|
|||
5
mzelensky
27.09.11
✎
14:16
|
(4) -> (0)
|
|||
6
Aleks73
27.09.11
✎
14:21
|
(4) В сущности я написал (0). конкретно:
выбрать что-то там из рс.срезпоследних( левое соединение другой рс по..... где рс.ресурс в (&списзначений) Не уверен, что так будет правильно. Кто делал, киньте код ! |
|||
7
mzelensky
27.09.11
✎
14:23
|
(6) а исходя из каких соображений "Не уверен, что так будет правильно." ??? где читал, от кого слышал?
|
|||
8
Aleks73
27.09.11
✎
14:24
|
(7) у меня были не раз случаи, и читал, что при СОЕДИНЕНИИ глючит отбор ГДЕ.
|
|||
9
GenV
27.09.11
✎
14:25
|
(8) Озвучь примеры, может что нового узнаю ...
|
|||
10
catena
27.09.11
✎
14:30
|
(8)ГДЕ никогда не глючит, скорее глючилка по другую сторону экрана. :)
|
|||
11
Ненавижу 1С
гуру
27.09.11
✎
14:32
|
(8) потому при ЛЕВОМ бывает NULL
|
|||
12
Aleks73
27.09.11
✎
14:34
|
(9) насколько я помню, чуть ли не стандат такое есть.
например Р1.остатки(отбор1) левое соединение Р2.остатки(отбор2) прокатит, Р1.остатки() левое соединение Р2.остатки(отбор2) ГДЕ отбор1 заглючит. конкретного примера нет, давно с этим сталкивался. |
|||
13
unregistered
27.09.11
✎
14:35
|
Ну, например, с отбором по стране:
ВЫБРАТЬ ГражданствоФизЛицСрезПоследних.ФизЛицо, ГражданствоФизЛицСрезПоследних.Страна, ФИОФизЛицСрезПоследних.Фамилия, ФИОФизЛицСрезПоследних.Имя, ФИОФизЛицСрезПоследних.Отчество ИЗ РегистрСведений.ГражданствоФизЛиц.СрезПоследних(&Период, Страна = &НужнаяСтрана) КАК ГражданствоФизЛицСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&Период, ) КАК ФИОФизЛицСрезПоследних ПО ГражданствоФизЛицСрезПоследних.ФизЛицо = ФИОФизЛицСрезПоследних.ФизЛицо |
|||
14
Aleks73
27.09.11
✎
14:35
|
(11) при том, что ГДЕ относится к ПЕРВОМУ регистру из соединения.
|
|||
15
Aleks73
27.09.11
✎
14:36
|
(13) тут отбор ПО ИЗМЕРЕНИЯМ, а мне надо по РЕСУРСАМ
|
|||
16
unregistered
27.09.11
✎
14:37
|
(15) Страна - ресурс регитра, а не измерение.
|
|||
17
unregistered
27.09.11
✎
14:39
|
(12) Бред. Не верю (с). Нужен конкретный пример. Уверен, что причина не в "ГДЕ".
|
|||
18
catena
27.09.11
✎
14:40
|
(14)Во-первых, у тебя в примере остатки, что не вяжется с РС. А во-вторых, не путай условие виртуальной таблицы с условием в самом запросе.
|
|||
19
Aleks73
27.09.11
✎
14:43
|
(16) так будет работать ? какая база ? у меня на базе бух 2.0 один из последних релизов, по глобальному поиску ничего близко нет.
|
|||
20
Aleks73
27.09.11
✎
14:43
|
(17) когда будет - напишу
|
|||
21
Aleks73
27.09.11
✎
14:44
|
(18) просто редко делал РС ЛЕВОЕ СОЕДИНЕНИЕ РС, поэтому РО.
|
|||
22
Ненавижу 1С
гуру
27.09.11
✎
14:44
|
(12) бухаем?
|
|||
23
mzelensky
27.09.11
✎
14:46
|
(0) не вижу проблемы/глюков совершенно никаких!
|
|||
24
unregistered
27.09.11
✎
14:47
|
(19) Это бух 1.5
|
|||
25
Aleks73
27.09.11
✎
14:47
|
(22) я на работе не пью
|
|||
26
Aleks73
27.09.11
✎
14:47
|
(24) а...попробую, все может быть.
|
|||
27
catena
27.09.11
✎
14:48
|
(21)В данном примере левое соединение вообще ни на что не влияет.
|
|||
28
unregistered
27.09.11
✎
14:49
|
(26) Кстати в Бух 2.0 есть точно такие же периодические регистры сведений.
|
|||
29
GenV
27.09.11
✎
14:49
|
(12) Если проблемы и могут быть, то только из-за (18)...
|
|||
30
catena
27.09.11
✎
14:50
|
ВЫБРАТЬ
РаботникиСрезПоследних.ФизЛицо ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, ) КАК РаботникиСрезПоследних где РаботникиСрезПоследних.Должность = &Должность Все, кто чичас имеет должность &Должность ВЫБРАТЬ РаботникиСрезПоследних.Физлицо ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Должность = &Должность) КАК РаботникиСрезПоследних Все, кто когда-либо имел должность &Должность. |
|||
31
Aleks73
27.09.11
✎
14:51
|
(30) интересное кино....
|
|||
32
catena
27.09.11
✎
14:53
|
(31)гы :)
Я ж говорю -> (18) |
|||
33
Aleks73
27.09.11
✎
14:54
|
(32) а если конкретную дату ?
|
|||
34
catena
27.09.11
✎
14:56
|
(33)Ну будет на дату.
Усолвие в виртуальной таблице применяется до отбора, в ГДЕ - после отбора. |
|||
35
mzelensky
27.09.11
✎
14:56
|
(30) с какой это радость:
"ВЫБРАТЬ РаботникиСрезПоследних.Физлицо ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Должность = &Должность) КАК РаботникиСрезПоследних Все, кто когда-либо имел должность &Должность." ??? ты же все-таки срез последних берешь!!! |
|||
36
mzelensky
27.09.11
✎
14:57
|
(35) + я же правельно понял ,что "Должность" в обоих случаях измерение ?
|
|||
37
unregistered
27.09.11
✎
14:58
|
(30) >> Все, кто когда-либо имел должность &Должность
С чего бы? Ты получишь только сотрудников которые сейчас на этой должности. |
|||
38
Aleks73
27.09.11
✎
14:58
|
(36) РЕСУРС
|
|||
39
unregistered
27.09.11
✎
14:59
|
(38) Не имеет значения.
|
|||
40
catena
27.09.11
✎
15:00
|
(35)Потому что
РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Должность = &Должность) Берет срез последних среди записей Должность = &Должность. А не из всех записей. |
|||
41
mzelensky
27.09.11
✎
15:03
|
(38) а...тогда ДА!
|
|||
42
Aleks73
27.09.11
✎
15:08
|
(40-41) озадачили.
|
|||
43
unregistered
27.09.11
✎
15:11
|
Что-то я тоже запутался. :))
Надо будет попробовать и сравнить. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |