![]() |
![]() |
![]() |
|
Выбрать движения по определенному счету с условием на субконто | ☑ | ||
---|---|---|---|---|
0
YF
07.10.11
✎
10:40
|
БП 2.0
Хочу выбрать движения по счету 79 (как Дт, так и Кт), где субконто1 этого счета принимает одно из N значений. Эти N значений загоняю в массив и делаю запрос (текст ниже) при этом если условия на субконто отсутствуют или в условии равенство, а не "В", то все отрабатывает нормально, если "В", то запрос не выбирает ничего. Что делаю не так подскажите? "ВЫБРАТЬ | зТаблицаДвижений.СчетДт КАК зСчетДт, | зТаблицаДвижений.СчетКт КАК зСчетКт, | зТаблицаДвижений.СубконтоДт1 КАК зСубконтоДт1, | зТаблицаДвижений.СубконтоДт2 КАК зСубконтоДт2, | зТаблицаДвижений.СубконтоДт3 КАК зСубконтоДт3, | зТаблицаДвижений.СубконтоКт1 КАК зСубконтоКт1, | зТаблицаДвижений.СубконтоКт2 КАК зСубконтоКт2, | зТаблицаДвижений.СубконтоКт3 КАК зСубконтоКт3, | СУММА(зТаблицаДвижений.Сумма) КАК зСумма, | СУММА(зТаблицаДвижений.КоличествоДт) КАК зКоличествоДт, | СУММА(зТаблицаДвижений.КоличествоКт) КАК зКоличествоКт, | зТаблицаДвижений.Содержание КАК зСодержание, | зТаблицаДвижений.Регистратор КАК зРегистратор |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( | &ПараметрЗапросаНачалоПериода, | &ПараметрЗапросаОкончаниеПериода, | Организация В (&ПараметрЗапросаОрганизация) | И СчетДт В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | И ВЫБОР | КОГДА СчетДт В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | ТОГДА СубконтоДт1 В (&ПараметрЗапросаСубконты) | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА СчетКт В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | ТОГДА СубконтоКт1 В (&ПараметрЗапросаСубконты) | ИНАЧЕ ИСТИНА | КОНЕЦ, | , | ) КАК зТаблицаДвижений | |СГРУППИРОВАТЬ ПО | зТаблицаДвижений.СчетКт, | зТаблицаДвижений.СубконтоДт1, | зТаблицаДвижений.СчетДт, | зТаблицаДвижений.СубконтоДт2, | зТаблицаДвижений.СубконтоДт3, | зТаблицаДвижений.СубконтоКт1, | зТаблицаДвижений.СубконтоКт2, | зТаблицаДвижений.СубконтоКт3, | зТаблицаДвижений.Содержание, | зТаблицаДвижений.Регистратор" |
|||
1
catena
07.10.11
✎
10:44
|
СчетДт В ИЕРАРХИИ (&ПараметрЗапросаСчет79)
Тощно только ДТ? |
|||
2
YF
07.10.11
✎
10:45
|
(1) Не понял вопроса?
Когда 79 в Дт, нужно условие на Субконто1 дт, если в Кт, то на субконто1 кт ... |
|||
3
YF
07.10.11
✎
10:46
|
+(2), блин, конечно же в условии Счет В ИЕРАРХИИ (&ПараметрЗапросаСчет79)
в (0) эта строка из тестового варианта |
|||
4
YF
07.10.11
✎
11:00
|
^
| |
|||
5
Maxus43
07.10.11
✎
11:10
|
ПараметрЗапросаСубконты - там точно массив с правильными субконтами и там точно есть такие движения?
|
|||
6
YF
07.10.11
✎
11:37
|
(5) ага, все правда
беру значение из этого массива и изменяю условие на равно - все ОК: * Не работает массивОрганизаций_ = Новый СписокЗначений; массивОрганизаций_.Добавить(Справочники.Организации.НайтиПоКоду("000000005")); запрос_.УстановитьПараметр("ПараметрЗапросаСубконты" , массивОрганизаций_); в запросе СубконтоДт1 В (&ПараметрЗапросаСубконты) * Работает запрос_.УстановитьПараметр("ПараметрЗапросаСубконты" , Справочники.Организации.НайтиПоКоду("000000005")); в запросе СубконтоДт1 = &ПараметрЗапросаСубконты |
|||
7
YF
07.10.11
✎
11:44
|
+(6)
Ghbxtv ghj,jdfk b cgbcjr pyfxtybq b vfccbd - jlyf abuyz |
|||
8
YF
07.10.11
✎
11:44
|
+(6)
Причем пробовал и список значений и массив - одна фигня |
|||
9
YF
07.10.11
✎
14:19
|
^
|
|||
10
YF
10.10.11
✎
09:38
|
^
|
|||
11
hhhh
10.10.11
✎
09:51
|
так СчетДт или СчетКт у тебя там? Ты так и не ответил.
|
|||
12
YF
10.10.11
✎
10:04
|
(11) Ответил в (3): "Счет В ИЕРАРХИИ (&ПараметрЗапросаСчет79)"
|
|||
13
hhhh
10.10.11
✎
10:54
|
(12) в ДвиженияССубконто Счет не бывает.
|
|||
14
YF
10.10.11
✎
10:57
|
(13) Бывает, но только в условиях
|
|||
15
unregistered
10.10.11
✎
11:02
|
Группировка вроде как не нужна. Это же виртуальная таблица. Все данные уже будут сгруппированы. Добавлена проверка на Активность записи.
ВЫБРАТЬ зТаблицаДвижений.СчетДт КАК зСчетДт, зТаблицаДвижений.СчетКт КАК зСчетКт, зТаблицаДвижений.СубконтоДт1 КАК зСубконтоДт1, зТаблицаДвижений.СубконтоДт2 КАК зСубконтоДт2, зТаблицаДвижений.СубконтоДт3 КАК зСубконтоДт3, зТаблицаДвижений.СубконтоКт1 КАК зСубконтоКт1, зТаблицаДвижений.СубконтоКт2 КАК зСубконтоКт2, зТаблицаДвижений.СубконтоКт3 КАК зСубконтоКт3, зТаблицаДвижений.Сумма КАК зСумма, зТаблицаДвижений.КоличествоДт КАК зКоличествоДт, зТаблицаДвижений.КоличествоКт КАК зКоличествоКт, зТаблицаДвижений.Содержание КАК зСодержание, зТаблицаДвижений.Регистратор КАК зРегистратор ИЗ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( &ПараметрЗапросаНачалоПериода, &ПараметрЗапросаОкончаниеПериода, Организация В (&ПараметрЗапросаОрганизация) И Счет В ИЕРАРХИИ (&ПараметрЗапросаСчет79) И Субконто1 В (&ПараметрЗапросаСубконты) И Активность, , ) КАК зТаблицаДвижений |
|||
16
hhhh
10.10.11
✎
11:03
|
(14) ну вот из справки
Условие (необязательный) Конструкция языка запросов. Условие выбора проводок. В условии могут следующие поля таблицы Период, Регистратор, НомерСтроки, Активность, СчетДт, СубконтоДт<Номер субконто>, ВидСубконтоДт<Номер субконто>, СчетКт, СубконтоКт<Номер субконто>, ВидСубконтоКт<Номер субконто>, <Имя измерения>, <Имя измерения>Кт, <Имя измерения>Кт, <Имя ресурса>, <Имя ресурса>Дт, <Имя ресурса>Кт, <Имя реквизита>. где ты там счет увидал? |
|||
17
YF
10.10.11
✎
11:14
|
(16) В конструкторе запросов и в книге "А. Габец, Д. Гончаров - Профессиональная разработка в системе 1С Предприятие 8"
|
|||
18
Maxus43
10.10.11
✎
11:16
|
возьми вирт таблицу ОборотыДтКт и не мучайся... не вариант?
|
|||
19
YF
10.10.11
✎
12:57
|
(15) А субконто1 будет именно с той стороны, с которой Счет79?
|
|||
20
unregistered
10.10.11
✎
14:05
|
(19) Условие (Субконто1=&НужноеЗначение) равносильно условию (СубконтоДт1=&НужноеЗначение ИЛИ СубконтоКт1=&НужноеЗначение)
|
|||
21
YF
10.10.11
✎
16:19
|
(20) Может оказаться, что
Дт: Счет - нужный Субконто1 - не нужное Кт: Счет - не нужный Субконто1 - нужное В этом случае условие говорит о том, что запись регистра нужно брать в выборку, однако, на деле, эта запись не нужна ... |
|||
22
unregistered
10.10.11
✎
16:28
|
(21) Тогда жестко прописывай условие:
| Счет В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | И | ВЫБОР | КОГДА СчетДт В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | ТОГДА СубконтоДт1 В (&ПараметрЗапросаСубконты) | ИНАЧЕ ЛОЖЬ | КОНЕЦ | ИЛИ | ВЫБОР | КОГДА СчетКт В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | ТОГДА СубконтоКт1 В (&ПараметрЗапросаСубконты) | ИНАЧЕ ЛОЖЬ | КОНЕЦ |
|||
23
YF
10.10.11
✎
16:31
|
(22) Так в (0) и сделано, но если и в Дт и в Кт нужный счет, тогда хватит только одного субконто нужного либо из Дт либо из Кт, т.е. условие как в (0), а не как в (22)
|
|||
24
unregistered
10.10.11
✎
16:38
|
(23) Нет в (0) Другое условие. "И" вместо "ИЛИ", "ИСТИНА" вместо "ЛОЖЬ", "СчетДт" вместо "Счет".
|
|||
25
YF
10.10.11
✎
16:40
|
(24) а вот так имеется ввиду в (22)
Счет В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | И | (ВЫБОР | КОГДА СчетДт В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | ТОГДА СубконтоДт1 В (&ПараметрЗапросаСубконты) | ИНАЧЕ ЛОЖЬ | КОНЕЦ | ИЛИ | ВЫБОР | КОГДА СчетКт В ИЕРАРХИИ (&ПараметрЗапросаСчет79) | ТОГДА СубконтоКт1 В (&ПараметрЗапросаСубконты) | ИНАЧЕ ЛОЖЬ | КОНЕЦ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |