Имя: Пароль:
1C
1С v8
Помогите с запросом.
0 bestuzhev
 
25.11.13
08:04
Есть Регистр накопления, в нем есть регистратор. Допустим там 2 документа Документ1 и Документ2. У документа 1 есть реквизит ВидОперации. Так вод нужно выбрать все движения с условием что Документ1 с определенным видом операции ВидОрерации1 пропускать. Т.е. условие такое Документ1.ВидОперации <> &ВидОперации1. Как сделать чтобы данный фильтр применялся только к определенному виду документов?
1 Apokalipsec
 
25.11.13
08:06
ВЫБОР
КОГДА
ТОГДА
ИНАЧЕ
КОНЕЦ

В твоем случае будет выбор в выборе.
2 Галахад
 
гуру
25.11.13
08:08
Документ1.ВидОперации <> &ВидОперации1
и
ДОкумент1 ссылка Доккумент.Документ1
3 catena
 
25.11.13
08:09
Или
не Регистратор в (выбрать ссылка из Документ.Документ1 где...)
4 bestuzhev
 
25.11.13
08:15
Сделал вот так, не работает:
ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(Регистр1.Регистратор) = ТИП(Документ.Документ1)
        ТОГДА ВзаиморасчетыОстаткиИОбороты.Регистратор.ВидОперации <> &ВидОперации1
КОНЕЦ
5 Wobland
 
25.11.13
08:17
где выбор когда регистратор ссылка .. и нужный вид
6 Wobland
 
25.11.13
08:17
(5) где регистратор ссылка и вид
7 Rovan
 
гуру
25.11.13
08:17
(4) ВЫБОР
    КОГДА НЕ ВзаиморасчетыОстаткиИОбороты.Регистратор ССЫЛКА Документ.Документ1
ИЛИ НЕ ВзаиморасчетыОстаткиИОбороты.Регистратор.ВидОперации <> &ВидОперации1
        ТОГДА...
КОНЕЦ
8 bestuzhev
 
25.11.13
08:19
(7)Мне надо чтобы при одном условии срабатывало второе условие
ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(Регистр1.Регистратор) = ТИП(Документ.Документ1)
        ТОГДА Регистр1.Регистратор.ВидОперации <> &ВидОперации1
КОНЕЦ

т.е. если документ регистратор удовлетворяет условию ТИПЗНАЧЕНИЯ(Регистр1.Регистратор) = ТИП(Документ.Документ1)
тогда на него накладывать отбор Регистр1.Регистратор.ВидОперации <> &ВидОперации1
9 Wobland
 
25.11.13
08:23
(8) И должен справится и без тебя
10 Рэйв
 
25.11.13
08:24
ТОГДА Регистр1.Регистратор.ВидОперации <> &ВидОперации1

пятнично:-)
11 Галахад
 
гуру
25.11.13
08:25
(10) А чо? Нормально.
+ ИНАЧЕ Истина
И в условие.
12 bestuzhev
 
25.11.13
08:27
(10) Ну дай умный совет как сделать так чтобы условие срабатывало только при определенном условии (т.е. условие в условии)?
13 Галахад
 
гуру
25.11.13
08:30
(12) "&"
14 Рэйв
 
25.11.13
08:31
Где НЕ (Регистратор Ссылка Документ.Какойто И Регистратор.ВидОперации=&ВидОп)
15 m-serg74
 
25.11.13
08:33
+ (14) я бы написал только
Где Регистратор Ссылка Документ.Какойто ИЛИ Регистратор.ВидОперации <> &ВидОп
16 Рэйв
 
25.11.13
08:35
(15)Ему "какой" то  с другими видами операций надо чтобы попадало в запрос..А в твоем случае весь вид документов завернет
17 m-serg74
 
25.11.13
08:37
(16)
/Допустим там 2 документа Документ1 и Документ2/
+
/нужно выбрать все движения с условием что Документ1 с определенным видом операции ВидОрерации1 пропускать/

что я не так написал?
18 Wobland
 
25.11.13
08:38
где НЕ (мужчина и борода)
где (мужчина или не борода)

второе условие пропускает женщин
19 m-serg74
 
25.11.13
08:38
(18) а где сдесь женщины?
20 Рэйв
 
25.11.13
08:39
(17)Ему нужно чтобы определенный тип документа где вид операции=Вид 1 не попал в запрос. А тот же тип с видом=Вид2 попал.  А ты полностью тип документа исключаешь
21 bestuzhev
 
25.11.13
08:39
Всем спасибо, вопрос решен:
ВЫБОР
    КОГДА Регистр1.Регистратор ССЫЛКА Документ.Документ1
        ТОГДА ВЫБОР
                КОГДА Регистр1.Регистратор.ВидОперации <> &ВидОперации1
                    ТОГДА ИСТИНА
                ИНАЧЕ ЛОЖЬ
            КОНЕЦ
    ИНАЧЕ ИСТИНА
КОНЕЦ
22 m-serg74
 
25.11.13
08:40
+ (19) в (0)
/У документа 1 есть реквизит ВидОперации/
про второй документ ничего не сказано, есть ли у него ВидОперации
23 Рэйв
 
25.11.13
08:40
(21)Мсье знает толк...:-)
24 m-serg74
 
25.11.13
08:40
(20) /А ты полностью тип документа исключаешь/
каким это боком интересно?
25 Рэйв
 
25.11.13
08:41
(24)Вернее ты только его и оставляешь.а ему нужны еще и доки 2
26 m-serg74
 
25.11.13
08:42
(25) повторю вопрос из (24)
27 anaed
 
25.11.13
08:43
(0) если я правильно понял суть, то "выбор когда" вкладывается друг в друга точно так же как "если тогда". Т.е. первым "выбор когда" отсеиваешь только нужный тебе вид регистратора и в тогда заводишь новый выбор когда с условием, остальные можешь включить(иначе истина) или не включать (иначе ложь) в выборку.
28 Рэйв
 
25.11.13
08:43
(26)Мне почдилась там НЕ :-)
Но (25) все равно истина:-)
29 m-serg74
 
25.11.13
08:43
(25) /Где Регистратор Ссылка Документ.Какойто ИЛИ Регистратор.ВидОперации <> &ВидОп/

Регистратор Ссылка Документ.Какойто - это все Документ2
Регистратор.ВидОперации <> &ВидОп - это исключает Документ1 с ненужным видом операции
30 m-serg74
 
25.11.13
08:44
(27) читай (10)
31 Рэйв
 
25.11.13
08:45
(29)Вообщето под какойто я имел ввиду док1, но не суть.
У тебя все ранво только один вид документов попадает в запрос. а надо чтобы оба
32 m-serg74
 
25.11.13
08:46
(31) покажи где в (29) я не прав, хотя твое (10) ловчее
33 m-serg74
 
25.11.13
08:47
(31) если вот так я имел ввиду:
Где Регистратор Ссылка Документ.Документ2 ИЛИ Регистратор.ВидОперации <> &ВидОпДокумента1
34 Рэйв
 
25.11.13
08:47
(32)
ГДЕ Регистратор Ссылка Документ.Какойто -- все.
Только один вид доков в запросе. И не важно что ты дальше напишешль с видом операции

А ТС налдо чтобы попадало два вида , но вид 1 без опрелделенных операций
35 m-serg74
 
25.11.13
08:47
(34) там ИЛИ вообщето
36 m-serg74
 
25.11.13
08:48
(34) /И не важно что ты дальше напишешль/
ты вероятно шутишь?
37 Рэйв
 
25.11.13
08:48
(35)ну...не знаю..Надо запускать пробовть:-)
38 Рэйв
 
25.11.13
08:50
и еще не факт что во втором документе есть Вид операции.Тоже неизвестно ка котработает
39 m-serg74
 
25.11.13
08:50
(37) :-)
просто из (0) осталось неясно
1. Есть ли у Документ2 реквизит ВидОперации и если есть то есть ли такой же ВидОперации как и у Документ1 который надо исключить у Документ1, но не обращать внимание на Документ2
40 m-serg74
 
25.11.13
08:51
(38) /во втором документе есть Вид операции/
NULL <> ВидОперации даст ИСТИНУ?
41 Wobland
 
25.11.13
08:51
у меня складывается впечатление, что м-серг просто разложил условие Рэйва по де-Моргану..
42 m-serg74
 
25.11.13
08:52
(41) а я и написал (15) - это + к (14)
43 Wobland
 
25.11.13
08:53
(42) нене, я в этих играх разума не участвую ;)
44 Рэйв
 
25.11.13
08:53
(40)С нулом вообще навскидку сложно сказать чего там даст.Может свалиться с ошибкой что нет такого поля, а может и нулл дать.Я ж говорю надо запускать , так гадать можно долго
45 Галахад
 
гуру
25.11.13
08:54
(40) А если в другом документе тоже есть реквизит "ВидОперации"?
46 m-serg74
 
25.11.13
08:54
но мне больше нравится
ВЫБОР
    КОГДА Регистр1.Регистратор ССЫЛКА Документ.Документ1
        ТОГДА Регистр1.Регистратор.ВидОперации <> &ВидОперации1
    ИНАЧЕ ИСТИНА
КОНЕЦ

как советовал Рейв в (10)
47 m-serg74
 
25.11.13
08:54
(45) посмотри (39)
48 Wobland
 
25.11.13
08:55
ТОГДА Регистр1.Регистратор.ВидОперации <> &ВидОперации1
не взлетит же
49 m-serg74
 
25.11.13
08:55
почему это?
50 Wobland
 
25.11.13
08:55
+(48) там ещё один выбор ради этого надо бабашить
51 m-serg74
 
25.11.13
08:56
(48) /Регистр1.Регистратор.ВидОперации <> &ВидОперации1 /

даст либо ИСТИНА либо ЛОЖЬ что и требуется
52 Wobland
 
25.11.13
08:56
(51) тогде нужне литерал
53 Рэйв
 
25.11.13
08:56
Кажется это надолго
*пошел за кофе и попкорном.
54 anaed
 
25.11.13
08:59
(50) я тоже так подумал поначалу, но зачем через истину получать истину?
Регистр1.Регистратор.ВидОперации <> &ВидОперации1 итак даст нам или истину или ложь
55 Wobland
 
25.11.13
09:01
(54) литерал
56 m-serg74
 
25.11.13
09:10
(55) проверь:-)
57 Wobland
 
25.11.13
09:11
58 m-serg74
 
25.11.13
09:17
(57) а сам многократно проверял, вот посмотри:
http://savepic.su/3927096.jpg
и
http://savepic.su/3931192.jpg
делал для Реализаций отсев по ненужной операции, остальные документы без проверки оного реквизита
59 m-serg74
 
25.11.13
09:18
а что ты его в ВЫБРАТЬ то загнал там не катит а вот в условии легко
60 Wobland
 
25.11.13
09:18
какой непростой понедельник. убедил ;)
"выбрать 0 где выбор когда 2=2 тогда 2<>2 конец"
61 Рэйв
 
25.11.13
09:19
(60)Впечатление что у вас 1С из разных вселенных:-))
62 m-serg74
 
25.11.13
09:20
(60) :-) мало ли, может сгодится когда, не ради самоутверждения убеждал
63 Wobland
 
25.11.13
09:21
(62) да я знал об этом. три часа проснуться не могу ;)
64 m-serg74
 
25.11.13
09:22
тоже нужное дело (поспать)