Имя: Пароль:
1C
1С v8
Оптимизация запроса для получения кол-ва документов.
0 Teslo-
 
27.08.12
12:39
Доброе время суток!

Есть запрос вида:
ВЫБРАТЬ
   &База,
   Таблица.Ссылка.Проведен,
   КОЛИЧЕСТВО(&База) КАК Количество
   
ИЗ  
       Документ.[Имя документа] КАК Таблица
   
ГДЕ
       Таблица.Ссылка.Дата МЕЖДУ [Значение1 из формы] КОНЕЦПЕРИОДА([Значение2 из формы],ДЕНЬ)
И        Таблица.Ссылка.Проведен

СГРУППИРОВАТЬ ПО
       &База
   Таблица.Ссылка.Проведен

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

В принципе мне кол-во нужно, но не всегда.
Вопрос такой:
Есть ли какой-нибудь способ получать данные о существовании документов , вида "Да\Нет", без перебора(например параметры журнала, или просто "при если есть хоть 1 документ вернуть "ДА"" ).
1 iceman2112
 
27.08.12
12:51
а ты здесь разве их перебираешь потом? если тебя смущает что делаешь выборку большую то можешь делать не ВЫБРАТЬ, а ВЫБРАТЬ ПЕРВЫЙ 1
2 iceman2112
 
27.08.12
12:52
если тебе нужно количество то зачем выбираешь &База, Таблица.Ссылка.Проведен?
3 H A D G E H O G s
 
27.08.12
12:53
Таблица.Ссылка.

Это что за лютый писец №1?
4 H A D G E H O G s
 
27.08.12
12:53
МЕЖДУ [Значение1 из формы] КОНЕЦПЕРИОДА([Значение2 из формы]

Это что за лютый писец №2?
5 ILM
 
гуру
27.08.12
12:55
(3) Лучше и не скажешь))))))))))))))
6 Teslo-
 
27.08.12
14:07
=)
(2)
Мне не всегда нужно кол-во. Я просто использую для подсчета и поиска по базам 1 и тот же скрипт.Этот запрос находиться в теле скрипта для сборки инфы о кол-ве документов по всем базам(их ок. 100).  
Спасибо за ответ, по сути то что нужно.
(3)
Это обращения к реквизитам документа. Используя этот параметр я избегаю загрузки таблицы реквизитов.
(4)
Это установка временных ограничений, будут выбираться только документы созданные в этот период.
(Квадратные скобки просто для понимания)
7 H A D G E H O G s
 
27.08.12
14:15
Заменя текст

ВЫБРАТЬ
   &База,
   Таблица.ССЫЛКА.Проведен,
   КОЛИЧЕСТВО(&База) КАК Количество
   
ИЗ  
       Документ.[Имя документа] КАК Таблица
   
ГДЕ
       Таблица.ССЫЛКА.Дата МЕЖДУ [Значение1 из формы] КОНЕЦПЕРИОДА([Значение2 из формы],ДЕНЬ)
И        Таблица.ССЫЛКА.Проведен

СГРУППИРОВАТЬ ПО
       &База
   Таблица.ССЫЛКА.Проведен

на текст


ВЫБРАТЬ
   &База,
   Таблица.Проведен,
   КОЛИЧЕСТВО(&База) КАК Количество
   
ИЗ  
       Документ.[Имя документа] КАК Таблица
   
ГДЕ
       Таблица.Дата МЕЖДУ [Значение1 из формы] КОНЕЦПЕРИОДА([Значение2 из формы],ДЕНЬ)
И        Таблица.Проведен

СГРУППИРОВАТЬ ПО
       &База
   Таблица.Проведен


ты получишь 100500 к производительности.
8 Teslo-
 
27.08.12
14:31
(7)
Спасибо,мне нужно быть по внимательней.
Ссылки обычно использую если есть если нужны вытащить что-то из табличной части документа.

Документ.[Имя документа].[Имя таблицы] КАК Таблица

А тут в это нет необходимости.
9 acsent
 
27.08.12
14:32
зачем группировать?
10 МишКа
 
27.08.12
14:42
ВЫБРАТЬ Количество(*) ИЗ Документ.[ИмяДокумента]
ГДЕ...
так пожалуй правильнее
11 Teslo-
 
27.08.12
15:03
(10)
А если документ помечен на удаление,не проверен?
Да и если выбрать чистый документ, то скорость упадет.
12 МишКа
 
27.08.12
15:06
просто опустил условие
скорость не упадет