Имя: Пароль:
1C
1С v8
Быстродействие отчета СКД с использованием { }
0 Teresa
 
13.05.14
14:37
Добрый день! Помогите, пожалуйста, разобраться с СКД
БП 8.2
Обычное приложение, толстый клиент.
Пишу отчет на СКД и в случае, когда значение отбора заполнено, использую отбор, иначе отбрасываю, используя скобки {} таким образом:

РегистрБухгалтерии.Хозрасчетный.Остатки(, счет = &счет, , {(Субконто1 В ИЕРАРХИИ (&УсловиеОтбора))}) КАК Остатки

В итоге при отладке на копии выполняется сравнительно быстро всегда, а на сервере, когда НЕ заполнено условие отбора отчет оооочень долго формируется, вместо 3 секунд порядка 15 минут (жуть!). Вопрос, почему такие тормоза могут быть, что я могла упустить?
1 shuhard
 
13.05.14
14:38
(0) а ты возьми консоль отчетов СКД и посмотри во что 1С трансформирует твой запрос
2 Teresa
 
13.05.14
14:39
(1) это на ИТС которая? Еще не пользовалась ни разу. Сейчас поищу
3 shuhard
 
13.05.14
14:44
(2) угу
она распатронивает СКД и показывает реальный запрос
4 Teresa
 
13.05.14
14:54
(3) Спасибо за подсказку, удобная штука. Попробовала, запустила, запрос отработал, а где там посмотреть, как консоль запрос преобразует? Запрос выполнился, кстати, с нормальной скоростью.
5 Teresa
 
13.05.14
14:56
(4) э... по поводу скорости пока не понятно, выполняла запрос на клиенте.
6 Teresa
 
13.05.14
15:08
(3) Консоль игнорирует параметр в {} в принципе. Но работает быстро. Запрос не видоизменился.
7 shuhard
 
13.05.14
15:08
(4) а там закладка есть
8 Fragster
 
гуру
13.05.14
15:11
(0) надо еще галочку снимать с параметра
9 Teresa
 
13.05.14
15:11
(7) гыде? О_о У меня там две закладки, "Результат" и "Сводная таблица" (которая пустая).
10 Fragster
 
гуру
13.05.14
15:12
(8)+ галочку "использование"
11 Teresa
 
13.05.14
15:17
(10) у меня нет такой закладки и флажка "Использование" не вижу тоже. В Параметры я заполнила список параметров из запроса. {Параметр} добавила вручную. Видать, что-то не так делаю или обработка не та?
12 Teresa
 
13.05.14
15:20
(10) Или ты про галочку в настройках СКД в закладке "Параметры"?
13 Fragster
 
гуру
13.05.14
15:22
(12) да
14 Teresa
 
13.05.14
15:25
(13) убрала флажок - все равно на сервере долго выполняется.
15 Teresa
 
13.05.14
15:28
(1) поняла, почему не вижу закладки - я консоль запросов взяла)
16 Defender aka LINN
 
13.05.14
15:34
(0) Ногами бить за такие "отборы".
{Субконто1.* КАК ИмяПоля}
или
{ВЫРАЗИТЬ(Субконто1 КАК Справочник.ИмяСправочника).* КАК ИмяПоля}
17 Teresa
 
13.05.14
15:49
(16) Не надо ногами. Я же это не сама придумала, в книжке вычитала.
А каким образом использовать параметр для отбора, когда значение отбора заполнено?
18 Teresa
 
13.05.14
15:51
(16) Субконто1 В ИЕРАРХИИ (&Параметр) куда девать?
19 Fragster
 
гуру
13.05.14
16:17
(16) норм отбор, чо. только не отключается у автора :)

(14) а в схеме на закладке "параметры" галочка "обязательное использование" снята?
20 Teresa
 
13.05.14
16:19
(19) Использование Авто по умолчанию
21 Teresa
 
13.05.14
16:22
(19) Вопрос не в том, что он не отключается... Он отключается, но работает значительно дольше при использовании {} в параметрах виртуальной таблицы или в условии типа {ГДЕ Субконто В Иерархии (&Параметр) }
22 Teresa
 
13.05.14
16:24
(19) Задача стоит элементарная - нужно выводить всё, если параметр не заполнен. И вот когда отбор не заполнен - на сервере отчет работает мегадолго. Если заполнен - летает. Вот и возникла проблема - как правильно отключить отбор.
23 Fragster
 
гуру
13.05.14
16:25
(21) если он отключается, то тогда запрос должен работать ровно столько же, сколько и в консоли запросов (так как этот текст просто отбрасывается)
24 Teresa
 
13.05.14
16:26
(23) пойду утоплюсь(
25 Fragster
 
гуру
13.05.14
16:28
скачай инструменты разработчика отсюда: http://devtool1c.ucoz.ru/
в консоли отчетов на панели будет кнопка с буквой "З", которая показывает настоящий текст запроса.

Сравни текст запроса с установленной и со снятой _галочкой_ у параметра
26 Teresa
 
13.05.14
16:28
(23) когда я убираю фигурные скобки и условие тоже все летает
27 Fragster
 
гуру
13.05.14
16:29
например для такого запроса:

ВЫБРАТЬ ПЕРВЫЕ 100
    Номенклатура.Ссылка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
{ГДЕ
    (Номенклатура.Ссылка В ИЕРАРХИИ (&Папка))}

при установленной галке - текст становится

ВЫБРАТЬ ПЕРВЫЕ 100
    Номенклатура.Ссылка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    (Номенклатура.Ссылка В ИЕРАРХИИ (&Папка))


а при снятой:
ВЫБРАТЬ ПЕРВЫЕ 100
    Номенклатура.Ссылка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
28 Teresa
 
13.05.14
16:30
в консоли СКД тоже можно посмотреть реальный запрос?
29 Fragster
 
гуру
13.05.14
16:31
(28) в той, что на ИТС? хз :)
30 Teresa
 
13.05.14
16:34
Но вообще {ГДЕ условие} не должно тормозить работу отчета на сервере? я просто недавно с СКД имею дело
31 Teresa
 
13.05.14
16:35
(27) Чтобы скачать надо авторизоваться?
32 Fragster
 
гуру
13.05.14
16:35
(30) в реальном запросе то, что в {} видоизменяется и выполняется обычный запрос. вопрос в том, как оно видоизменяется
33 Fragster
 
гуру
13.05.14
16:35
(31) нет
34 Teresa
 
13.05.14
16:38
(33) спасибо, скачала, сейчас посмотрю
35 Teresa
 
13.05.14
16:49
(33) она, судя по всему для редакции 3.0?
36 Teresa
 
13.05.14
16:52
Всё, завтра буду разбираться, в чем подвох. Одного не поняла, как все-таки правильно делать такое вот условие, {Где} использовать или в параметрах компоновки. Как правильно?
37 Teresa
 
13.05.14
16:54
Спасибо всем за помощь
38 Fragster
 
гуру
13.05.14
16:56
(35) оно универсальное
39 Fragster
 
гуру
13.05.14
16:57
(36) апельсин - он больше оранжевый чем круглый?