Имя: Пароль:
1C
1C 7.7
v7: Группировка Товар Все зависает при обходе групп
0 Pr0gLamer
 
29.03.12
18:02
Доброго времени суток!

Период с Дата1 По Дата2;
Автор=Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяНакладная.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.НарядЗаказ.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.НарядЗаказГидр.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.ГТДГидр.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяРозничная.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.ПриходнаяНакладная.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.ЧекКА.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.ОтчетКА.Автор;
Фирма = Регистр.ПартииТоваров.Фирма;
Товар = Регистр.ПартииТоваров.Товар;
КодОперации = Регистр.ПартииТоваров.КодОперации;
ОстатокТовара = Регистр.ПартииТоваров.ОстатокТовара;

ОборотТовара = Регистр.ПартииТоваров.ОборотДоллар;

Группировка Товар Все;

Условие (Фирма = ВыбФирма);

Условие (Товар в СписокТоваров);



Если в "СписокТоваров" есть группы - запрос зависает. Если вместо "Группировка Товар Все" написать "Группировка Товар" - запрос отрабатывает нормально.Если ничего не менять и в "СписокТоваров" нет групп - запрос отрабатывает нормально.Кто-то сталкивался с подобной проблемой?
1 snegovik
 
29.03.12
18:06
"Если вместо "Группировка Товар Все" написать "Группировка Товар" - запрос отрабатывает нормально"
--------------------
Ну вот так и оставь, раз всё нормально:-)
2 Pr0gLamer
 
29.03.12
18:08
=)
я бы оставил,но мне нужно получить непродоваемы товары
3 andrewalexk
 
29.03.12
18:09
:) дбф?
4 Pr0gLamer
 
29.03.12
18:12
SQL
5 Maxxxim
 
29.03.12
18:12
Наверняка есть элемент у которого в качество ссылки на родитель указан он сам. В таких случаях обычно "Тестрование и исправление" тоже зависает и исправить ситуацию можно только отредакировав таблицу вручную...
6 andrewalexk
 
29.03.12
18:14
:) или кривая база или объем регистра критичен
7 Ёпрст
 
29.03.12
18:15
(0) это же не весь код ?
Где функции этого запроса ?
8 Pr0gLamer
 
29.03.12
18:15
Если была бы такая ситуация(5),то наверняка бы без "Все" тоже бы зависало.Или оно как-то особенно влияет?
9 Pr0gLamer
 
29.03.12
18:16
Период с Дата1 По Дата2;
Автор=Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяНакладная.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.НарядЗаказ.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.НарядЗаказГидр.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.ГТДГидр.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяРозничная.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.ПриходнаяНакладная.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.ЧекКА.Автор,
   Регистр.ПартииТоваров.ТекущийДокумент.ОтчетКА.Автор;
Фирма = Регистр.ПартииТоваров.Фирма;
Товар = Регистр.ПартииТоваров.Товар;
КодОперации = Регистр.ПартииТоваров.КодОперации;
ОстатокТовара = Регистр.ПартииТоваров.ОстатокТовара;

ОборотТовара = Регистр.ПартииТоваров.ОборотДоллар;

Группировка Товар;

Условие (Фирма = ВыбФирма);

Условие (Товар в СписокТоваров);
Условие (Товар в СписокТоваровМНФ);Условие (Товар в сзОтфильтрПоз);
Функция Продажи = Расход(ОстатокТовара);
Функция Оборот = Расход(ОборотТовара);
Условие (КодОперации В КодыОперацийПродажи);  
Вработе = Регистр.ПартииТоваров.ТекущийДокумент.НарядЗаказ.Вработе,
Регистр.ПартииТоваров.ТекущийДокумент.ГТДГидр.Вработе;
Условие (Вработе<>1);
10 Maxxxim
 
29.03.12
18:18
(8) без "все" этот элемент может не поподать в выборку..
11 Maxxxim
 
29.03.12
18:19
(8) тем более если это "Группа"
12 Pr0gLamer
 
29.03.12
18:20
ситуацию решил добавлением всех элементов из групп в СЗ,потом уже обход этого СЗ
но очень коряво как-то
13 Maxxxim
 
29.03.12
18:22
Выполни в SQLе примерно следующий запрос    
SELECT
   Nom.CODE AS Код,
FROM
   $Справочник.Номенклатура Nom (NOLOCK)
WHERE
   Nom.ID = Nom.ParentId
14 Ёпрст
 
29.03.12
18:22
запрос.ВулючитьSQl(0)

токма про скорость забудь, хотя.. при таком запросе её и так нет
15 Maxxxim
 
29.03.12
18:23
он вернет коды таких элементов, ибо обязательно где-нибудь потом опять столкнешься с это проблемой!
16 Pr0gLamer
 
29.03.12
18:24
Спасибо,попробую сейчас.NOLOCK это что?
17 Pr0gLamer
 
29.03.12
18:29
ничего не вернул запрос
18 Ёпрст
 
29.03.12
18:30
(17) а где ты его запускал ?
:)
в QA поди ?
^)
19 Pr0gLamer
 
29.03.12
18:33
запусти его в своей обработке
20 Pr0gLamer
 
29.03.12
18:33
запустил*
21 Ёпрст
 
29.03.12
18:36
ну тогда тебе повезло - нет циклических ссылок
22 Pr0gLamer
 
29.03.12
18:40
нда,мне еще повезло,т.к. у меня через 20 минут заканчивается рабочий день,и по ходу моё бредовое решение проблемы пойдёт в рабочую )
23 splayfooted
 
29.03.12
18:50
скоко можно извращений?
сделай оборотный рег "движениеТовара", напихай туда в реквизиты информации и "выспрашивай" у него инфу.
бороздить "ПартииТоваров" дурной вкус (имхо)
24 FN
 
29.03.12
21:39
(22) сделай два запроса: первый из (0), второй просто к справочнику с нужными условиями.
Обход результатов делай по второму запросу а данные получай из первого с помощью метода Получить(...)
25 Pr0gLamer
 
30.03.12
10:18
(24) примерно так и делаю,уже вопрос даже не в том "как сделать?",а "почему происходит?"
26 FN
 
30.03.12
11:22
(25) просто запомни, что использование "Все" в запросе приводит к значительному увеличению времени выполнения запроса.
Лично я использую "Все" только применительно к группировкам Месяц, Год и тп
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший