Имя: Пароль:
1C
1С v8
Замер производительности...
,
0 Dmitriy_76
 
18.07.11
17:05
1с Розница.
Простой запрос :

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Дата"                      , ТекущаяДата());
   Запрос.УстановитьПараметр("Номенклатура"              , Элемент.ТекущаяСтрока);
   Запрос.УстановитьПараметр("МагазинСклад", ПараметрыСеанса.ТекущийМагазин);

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

показывает 0,13 (на строчке выполнения запроса) ....
это я так понимаю очень много....? как быть?
1 Defender aka LINN
 
18.07.11
17:07
(0) А как ты понял, что это много?
И для какого хрена ты результат группируешь?
2 Господин ПЖ
 
18.07.11
17:07
курить буквари про работу с вирт. таблицами и получанием полей через "."
3 H A D G E H O G s
 
18.07.11
17:07
(0) Не писать запросы в 1С- Розница.
И не в 1С-Розница - тоже не писать.
Вообще не писать запросы в 1С.
4 Господин ПЖ
 
18.07.11
17:08
(1) >И для какого хрена ты результат группируешь?

одинаковый магазин в складах наверное
5 Maxus43
 
18.07.11
17:11
ТоварыНаСкладахОстатки.Склад.Магазин КАК Магазин
И Группировку убрать, будет шустрей!
6 Dmitriy_76
 
18.07.11
17:11
(4) Именно
7 Maxus43
 
18.07.11
17:13
(6) именно поэтому Группировка ничего не даст, он и так одинаковый
8 Dmitriy_76
 
18.07.11
17:13
групировку убрал. не помогло
9 Dmitriy_76
 
18.07.11
17:14
(1) вывожу эти данные..и чуствую что притормаживает..вот и понял что много....
10 H A D G E H O G s
 
18.07.11
17:14
11 H A D G E H O G s
 
18.07.11
17:14
Ответ в (2).
12 Defender aka LINN
 
18.07.11
17:14
(8) А ты (2) уже пробовал, нет?
13 Dmitriy_76
 
18.07.11
17:19
"ВЫБРАТЬ
   |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
   |    ТоварыНаСкладахОстатки.Склад.Магазин КАК Магазин
   |ИЗ
   |    РегистрНакопления.ТоварыНаСкладах.Остатки(,Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки
   |ГДЕ
   |    ТоварыНаСкладахОстатки.Склад.Магазин = &МагазинСклад";


производительность = 0,044 ... прогресс :)


(2) (11) (8)  -  как получить итог по магазину ? у кторого 3 склада..
14 Rovan
 
гуру
18.07.11
17:20
(13) добавить склад в выборку
15 Господин ПЖ
 
18.07.11
17:21
>ТоварыНаСкладахОстатки.Склад.Магазин = &МагазинСклад"

при Склад.Магазин = &МагазинСклад" я не вижу разницы с Склад = &Склад в вирт таблице...
16 palpetrovich
 
18.07.11
17:23
а че дату убрал?
РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата,Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки

и что такое "Магазин" в ТоварыНаСкладахОстатки.Склад.Магазин?
17 Dmitriy_76
 
18.07.11
17:24
(14) мне не надо отдельно по складам...надо итого по магазину..



сворачивать потом результат запроса тоже не есть хорошо
18 Dmitriy_76
 
18.07.11
17:24
(16) за не надобностью...
19 Defender aka LINN
 
18.07.11
17:24
(13) А можно объяснить логически, почему ты одно условие в ПВТ перенес, а второе - нет?
20 H A D G E H O G s
 
18.07.11
17:25
(19) Автор - осторожен!
21 palpetrovich
 
18.07.11
17:27
(18) т.е. тебя не интересует на какую дату получать остатки
и все-таки, "Магазин" - это реквизит справочника Склады (МестаХранения)?  Какого типа?
22 cViper
 
18.07.11
17:39
(19) Логика проста - автор не знает что так можно сделать.
23 palpetrovich
 
18.07.11
17:43
(22) ваще-т перенести (Склад = &ВыбСклад) можно если  есть такое измерение "Склад"
а ему нужно отобрать по какому-то секретному "ТоварыНаСкладахОстатки.Склад.Магазин"  :)
24 cViper
 
18.07.11
18:10
(23) Так что в этом сложного? Склад в регистре есть. А у склада есть реквизит магазин.
25 Dmitriy_76
 
18.07.11
21:39
(21) магазин имеет тип справочникСссылка.Магазин ..вообще то это розница а не ут
26 palpetrovich
 
18.07.11
21:47
(25) мои сорьки, с розницей не знаком
(24) если не сложно, дополни строку что-б был отбор и по ТоварыНаСкладахОстатки.Склад.Магаизин
РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата,Номенклатура = &Номенклатура) КАК
27 Dmitriy_76
 
19.07.11
08:09
все решилось просто :



       "ВЫБРАТЬ
       |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
       |ИЗ
       |    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата,Номенклатура = &Номенклатура И Склад.Магазин = &МагазинСклад)  КАК ТоварыНаСкладахОстатки";
28 gr0ck
 
19.07.11
08:45
Молодец, что додумался))) А вообще-то, нужно изучить работу с запросами, и вирт таблицами, а не делать все методом тыка:)
29 palpetrovich
 
19.07.11
10:36
(27) это работает? вот-же не думал что так прокатит ...косность мышления однако :)
Программист всегда исправляет последнюю ошибку.