Вход | Регистрация

1С:Предприятие ::

Метки:запросы, Запросы и построители

Как проще всего узнать количество элементов в группировке в запросе

Я
   Asmodeus
 
27.07.04 - 14:36
Т.е., например, у нас есть запрос с группировкой Документ. Когда запрос выполнен, как узнать сколько документов попало в результат запроса?
Есть какое-нибудь стандартное средство?
Так вижу два пути: пробежать результат один раз вхолостую или как-нибудь с помощью Функции организовать счетчик.
Цель: повесить счетчик выполнения отчета в процентах.
 
  Рекламное место пустует
   SnarkHunter
 
1 - 27.07.04 - 14:38
Выгрузить в тз и свернуть по колонке Документ
   Gavrila
 
2 - 27.07.04 - 14:38
Можно так: выгрузить результат запроса в ТЗ и свернуть, колво строк ТЗ = колво группировок :)
   Gavrila
 
3 - 27.07.04 - 14:39
(1) :))
   Asmodeus
 
4 - 27.07.04 - 14:42
:-)
А как бы сделать через Функцию? Чтобы на каждый документ она плюсовала единичку.. т.е. банальный счетчик... Может через Выбран()? Интересно сработает?
   Gavrila
 
5 - 27.07.04 - 14:47
(4) Попробуй с этим повозиться может и получиться то, что надо :)
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)

    |Период с ВыбНачПериода по ВыбКонПериода;
    |ПриходнаяНакладная = Документ.ПриходнаяНакладная.ТекущийДокумент;
    |Функция Счётчик = Счётчик();
    |Группировка ПриходнаяНакладная;
    |//}}ЗАПРОС

    ;
   Asmodeus
 
6 - 27.07.04 - 15:01
Я попробовал так:
В запросе есть строки:
    |Док=    Документ.ПоступлениеТМЦ.ТекущийДокумент,
    |Функция Сум = Сумма(Док.Выбран());
    |Группировка Док;
Затем:
    Каунт=0;
    КолДок=ЗапросДок.Сум;
    Пока ЗапросДок.Группировка(1)=1 Цикл
        ТекДок=ЗапросДок.Док;
        Каунт=Каунт+1;
        Состояние(Строка(100*Каунт/КолДок)+"%   -   "+Строка(ТекДок));

Итак, все работает! :-)
Пишет процент и представление текущего документа
   Asmodeus
 
7 - 27.07.04 - 15:11
Унылое З.Ы.
Счетчик обработки запроса - это, конечно, хорошо, но большую часть времени (в большой базе) занимает выполнение самого запроса, а его отследить, я так понимаю, нельзя... Ведь он "сам" работает после команды Запрос.Выполнить(ТекстЗапроса), так? Или все-таки можно? Ведь в статусной строке отображается перебор документов... Только когда запрос сложный делается - неизвестно на каком он шаге на данный момент...
   Gavrila
 
8 - 27.07.04 - 15:19
(7) Как говорится "Два года с этим боремся...". Я пока ничего не придумал, может умные люди чтонить скажут? :)


Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует