Имя: Пароль:
1C
1С v8
Помогите плиз с запросом
0 zhenka
 
21.07.11
18:18
Буха 8-ка

Нужно получить обороты по счету 90.09 в разрезе 1-го субконто

Делаю запрос

Счет90=ПланыСчетов.Хозрасчетный.ПрибыльУбытокОтПродаж;    
   ТекстЗапроса="ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    ХозрасчетныйОстаткиИОбороты.Счет,
   |    ХозрасчетныйОстаткиИОбороты.Субконто1,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СуммаОборотКт,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СуммаОборотДт
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатН, &ДатК, , , , , ) КАК ХозрасчетныйОстаткиИОбороты
   |ГДЕ
   |    ХозрасчетныйОстаткиИОбороты.Счет = &Счет90
   |    И ХозрасчетныйОстаткиИОбороты.Организация = &Организация
   |
   |СГРУППИРОВАТЬ ПО
   |    ХозрасчетныйОстаткиИОбороты.Счет,
   |    ХозрасчетныйОстаткиИОбороты.Субконто1";

   
Запрос=Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Счет90",Счет90);
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.УстановитьПараметр("ДатН",ДатН);
Запрос.УстановитьПараметр("ДатК",ДатК);
   
   
ТЗ=Новый ТаблицаЗначений;
ТЗ=Запрос.Выполнить().Выгрузить();

В результате ТЗ.Количество() выдает 0.

Обороты в заданом периоде есть, вставлял этот запрос в консоль запросов в бухе, выдает все верно.

В чем косяк может быть?
1 Fragster
 
гуру
21.07.11
18:31
для начала можно поучится пользоваться параметрами виртуальных таблиц
2 zhenka
 
21.07.11
18:32
Что не так? подскажите
3 SaM58
 
21.07.11
18:36
что есть "Счет90"?
4 zhenka
 
21.07.11
18:37
Счет90=ПланыСчетов.Хозрасчетный.ПрибыльУбытокОтПродаж; 90.09
5 SaM58
 
21.07.11
18:38
(4) тьфу, не заметил
6 qeos
 
21.07.11
18:38
ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ХозрасчетныйОстаткиИОбороты.Счет,
   ХозрасчетныйОстаткиИОбороты.Субконто1,
   ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
   ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатН, &ДатК, , , Счет в иерархии( &Счет90), , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты
7 unregistered
 
21.07.11
18:38
(2) Скорее всего период (ДатаН и ДатаК) неправильно установлены. Или какие-либо другие параметры запроса. Смотри отладчиком что ты туда передаешь.

А по сути всё неправильно!
Во-первых, нафига брать таблицу ОстаткиИОбороты, когда тебе нужны только Обороты. На экзамене на спеца за это сразу два балла ставят.
Во-вторых, условия отбора по измерениям (Организация) и счетам должны находиться в параметрах виртуальной таблицы (там же где указано ДатаН и ДатаК), а не в разделе "ГДЕ".
В-третьих, группировка тут нафиг не нужна, т.к. виртуальные таблицы выдают результат уже сгруппированный по всем счетам, измерениям и значениям субконто.
8 qeos
 
21.07.11
18:39
(0) Счет в иерархии( &Счет90)
9 unregistered
 
21.07.11
18:41
(8) С чего ты взял, что 90.09 - группа? Разве в типовой это не обычный счет?
10 zhenka
 
21.07.11
18:43
90.09 это не группа, обычный счет
11 unregistered
 
21.07.11
18:44
(10) Если так, то "В ИЕРАРХИИ" не надо. Оставь условие на равенство "Счет=&Счет90".
12 qeos
 
21.07.11
18:45
(9) в любом случае это правильней ))
13 zhenka
 
21.07.11
18:46
Счет90=ПланыСчетов.Хозрасчетный.ПрибыльУбытокОтПродаж;    
   ТекстЗапроса="ВЫБРАТЬ РАЗРЕШЕННЫЕ
                |    ХозрасчетныйОстаткиИОбороты.Счет,
                |    ХозрасчетныйОстаткиИОбороты.Субконто1,
                |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СуммаОборотКт,
                |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СуммаОборотДт
                |ИЗ
                |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатН, &ДатК, , , Счет = &Счет90, ,Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты
                |СГРУППИРОВАТЬ ПО
                |    ХозрасчетныйОстаткиИОбороты.Счет,
                |    ХозрасчетныйОстаткиИОбороты.Субконто1";

   
   Запрос=Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("Счет90",Счет90);
   Запрос.УстановитьПараметр("Организация",Организация);
   Запрос.УстановитьПараметр("ДатН",ДатН);
   Запрос.УстановитьПараметр("ДатК",ДатК);


Все равно 0
14 qeos
 
21.07.11
18:47
(13) а там есть ченить-то?
15 unregistered
 
21.07.11
18:47
(12) В любом случае это тормознее работать будет.
А более правильным это считается только лишь с той точки зрения, что в дальнейшем когда-нибудь теоретически возможно, что счет 90.09 сделают группой и налепяп ему кучу субсчетов. В таком случае запрос будет работать по-прежнему правильно и включать еще и данные по субсчетам 90.09.
16 SaM58
 
21.07.11
18:47
"ВЫБРАТЬ РАЗРЕШЕННЫЕ" - может прав нет?
17 unregistered
 
21.07.11
18:48
(13) Чудес не бывает. Выкладывай картинку с отладчиком, где указаны значения всех параметров передаваемых в запрос.
18 v8Newbie
 
21.07.11
18:49
"Разрешенные". И консоль запросов может лучше использовать?
19 qeos
 
21.07.11
18:49
пусть построит запрос в консоле для начала.. и посмотрит ОСВ, что там есть хоть чтото.. причем с остатком..
20 unregistered
 
21.07.11
18:49
(13) И чо ты нам текст запроса сюда пихаешь. Он у тебя хоть и кривельческий (методически неправильный), но работать должен.
21 qeos
 
21.07.11
18:49
(18) ыгы
22 Fragster
 
гуру
21.07.11
18:50
распространенная ошибка - перепутать местами даты
23 unregistered
 
21.07.11
18:50
(18) (19) Внимательней ветку читайте:

(0) >> Обороты в заданом периоде есть, вставлял этот запрос в консоль запросов в бухе, выдает все верно
24 unregistered
 
21.07.11
18:51
(22) +100

Уже говорил об этом в (7)
25 zhenka
 
21.07.11
18:52
26 zhenka
 
21.07.11
18:54
ну вот как-то так
27 qeos
 
21.07.11
18:56
1. точно 90.09 не имеет подгрупп? "в иерархии" также показывает?
2. организация та? и из того справочника?
28 qeos
 
21.07.11
18:56
что такое СуммаПо90091 ??
29 qeos
 
21.07.11
18:57
какой смысл от ТЗ=Новый ТаблицаЗапросов?
30 qeos
 
21.07.11
18:57
итог: чудес не бывает
31 zhenka
 
21.07.11
18:58
ТЗ= Новый таблица значений
СуммаПо90091 эта сумма в следующем цикле считается
32 zhenka
 
21.07.11
18:59
Организация та, 90.09 подгрупп не имеет в иерархии тоже 0 показывает
33 qeos
 
21.07.11
19:00
(31) ну да "таблицаЗначений".. это лишнее.
покаж запрос в консоле с параметрами
34 unregistered
 
21.07.11
19:00
(31) qeos хотел сказать, ТЗ= Новый таблица значений - совершенно бессмысленная строка. Она здесь не нада. Ну да к  твоей беде это отношение не имеет.
35 zhenka
 
21.07.11
19:01
Не пойму, в консоле запросов все работает, почему тут нет
36 unregistered
 
21.07.11
19:01
(32) Значит оборотов там нет.

Показывай картинку с аналогичным запросом, который ты сделал в консоли с теми же самыми параметрами, но где есть результат.
37 qeos
 
21.07.11
19:02
(35) покажи ))
38 unregistered
 
21.07.11
19:02
(35) Может проблема в Организации? У вас там случайно нет в справочнике организаций с одинаковыми наименованиями?
39 zhenka
 
21.07.11
19:04
40 unregistered
 
21.07.11
19:08
Последний тупой вопрос.
А не делаются ли эти обороты, которые ты видишь в консоли самим этим документом ЗакрытиеМесяца?

Может в обработке проведения документа этих оборотов еще нет?
41 unregistered
 
21.07.11
19:09
+ к (40) Покажи результат запроса из консоли с периодичностью "Регистратор".
42 zhenka
 
21.07.11
19:12
http://imagepost.ru/?v=33333_6.JPG

с переодичностью
43 unregistered
 
21.07.11
19:14
(42) Круто конечно, но поле Регистратор в выборку запроса добавь, пожалуйста :)
44 zhenka
 
21.07.11
19:22
45 SaM58
 
21.07.11
19:23
(44)ну что и требовалось доказать :))
46 zhenka
 
21.07.11
19:27
как можно обойти?
47 unregistered
 
21.07.11
19:45
(46) Что обойти?

Ты хочешь увидеть результаты проведения еще до окончания обработки проведения. Сделать это возможно только принудительно выполнив запись проводок. типа

Движения.Записать(); // Запись всех наборов

или

Движения.Хозрасчетный.Записать(); // запись только набора записей регистра Хозрасчетный