Имя: Пароль:
1C
1C 7.7
v7: Фильтры в бух запросе
0 zorgus
 
24.11.11
15:23
Доброго времени суток!
Нужно выбрать дебетовый оборот по счету без учета некоторых субконто

   СпрТМЦ=СоздатьОбъект("Справочник.ТМЦ");
   спГаз=СоздатьОбъект("СписокЗначений");
   спрТМЦ.НайтиПоКоду("20040001",0);
   спрТМЦ.ТекущийЭлемент();  
   спГаз.ДобавитьЗначение(спрТМЦ.ТекущийЭлемент(),);
   спрТМЦ.НайтиПоКоду("20010006",0);
   спрТМЦ.ТекущийЭлемент();  
   спГаз.ДобавитьЗначение(спрТМЦ.ТекущийЭлемент(),);
       Ит=СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ,спГаз,3);
   Ит.ВыполнитьЗапрос(ВыбНачПериода,ВыбКонПериода,Счет,,,1,,"С");
   ДОГаз=Ит.ДО(1);

И получаю весь дебитовый оборот по счету, параметр "не учитывать это субконто вообще" не работает
Чего я не учел?
1 miki
 
24.11.11
15:35
2 zorgus
 
24.11.11
15:51
угу, тока у меня не взлетело
3 zorgus
 
24.11.11
15:53
может быть дело в том что субконто я передаю списком значений?
4 miki
 
24.11.11
15:58
а может просто не летает?
5 zorgus
 
24.11.11
16:01
угу не летает, обороты выхватываются полностью...
6 chief accountant
 
24.11.11
16:16
(5) Поставь условие не в списке и забудь
7 palpetrovich
 
24.11.11
16:19
а нафига эти строки "спрТМЦ.ТекущийЭлемент();" ?
8 zorgus
 
24.11.11
16:21
(6) не элегантно получается: мне надо начальное дебетовое сальдо и дебетовый оборот по счету без некоторых наименований...
(7) добавляем тмц, которые нужно исключить из запроса в список значений
9 miki
 
24.11.11
16:23
(6)штатная ОСВ показвает, что это не поможет.
10 chief accountant
 
24.11.11
16:25
Чего не поможет?
11 miki
 
24.11.11
16:28
забыть не поможет
12 chief accountant
 
24.11.11
16:30
(11) Это почему?
13 miki
 
24.11.11
16:34
а должно?
14 chief accountant
 
24.11.11
16:35
(13) на раз
15 miki
 
24.11.11
16:37
как убедиться?
я больше доверяю ОСВ из типовой...
16 zorgus
 
24.11.11
16:57
Вот эта конструкция работает    

Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ,спГаз);

т.е. выбираются снд и до по этим субконто из списка значений
17 miki
 
24.11.11
17:17
(16)То отбирает по фильтру из списка факт.
Вопрос что значит "не учитывать это субконто вообще". Имхо - "по всем", без отборов и детализаций.
18 zorgus
 
24.11.11
17:24
(16) отбирает
параметр ТипФильтра=3
19 zorgus
 
24.11.11
17:24
т.е. (17)
20 miki
 
24.11.11
17:51
(18)в (16) ТипФильтра=3?
21 palpetrovich
 
24.11.11
18:21
(8) а так не будет добавлять? :)
спрТМЦ.НайтиПоКоду("20040001",0);
   //спрТМЦ.ТекущийЭлемент();  
   спГаз.ДобавитьЗначение(спрТМЦ.ТекущийЭлемент(),);
   спрТМЦ.НайтиПоКоду("20010006",0);
   //спрТМЦ.ТекущийЭлемент();  
   спГаз.ДобавитьЗначение(спрТМЦ.ТекущийЭлемент(),);
22 zorgus
 
25.11.11
08:26
(20) в сабже тип фильтра 3, в (16) без фильтра и работает
сабж как раз о том что фильтр не работает
23 zorgus
 
25.11.11
08:28
(21) будет, но код и так добавляет в список, а вот фильтр не работает
24 miki
 
25.11.11
09:13
(22)Меня убеждать не надо, я тебе это уже не сколько раз написАл...
25 chief accountant
 
25.11.11
09:17
(23) Тебе же сказано - забей
26 miki
 
25.11.11
09:23
(25)Ты в (6)что-ли про условие ужЕ при выборке?
Если да, то я вчера не правильно понял, сорри...
27 zorgus
 
25.11.11
09:29
(25) да забил уже, реализовал не в списке, просто интересно какого не работает фильтр
28 chief accountant
 
25.11.11
10:02
(27) да хз. Я обычно либо сразу нужный список делаю, либо потом условием лишние убираю, типом фильтра "3" никогда не пользовался, а разбираться почему не работает лень
А вообще, один умный человек сказал: не можешь решить проблему, обойди её (это об 1с)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший