Имя: Пароль:
1C
1С v8
МоментВремени() тормозит запрос.
0 Rokstedi
 
20.07.13
17:42
Подскажите, нет ли какого-то способа обойти МоментВремени() в запросе?
1 sda553
 
20.07.13
18:01
нет, не должен тормозить. Момент времени это Дата+Ссылка. Оба поля индексируемые, т.е. тормозов не вызывающие
2 Rokstedi
 
20.07.13
18:03
Ну при запросе с использованием даты документа запрос выполняется 0.8с., а при использовании МоментВремени() - 8с.
3 Живой Ископаемый
 
20.07.13
18:04
а при использовании ссылка? а если статистику собрать?
4 Нууф-Нууф
 
20.07.13
18:06
Попробуй с границей
5 Нууф-Нууф
 
20.07.13
18:06
И покажи запрос
6 Rokstedi
 
20.07.13
18:08
(3) не понял.
(4) а если несколько документов в одну секунду проводятся?
(5)
ВЫБРАТЬ
   РезервыОстатки.Номенклатура,
   РезервыОстатки.Качество,
   РезервыОстатки.Характеристика,
   РезервыОстатки.Заказ,
   РезервыОстатки.Склад,
   РезервыОстатки.РезервОстаток

ИЗ
   РегистрНакопления.Резервы.Остатки(
           &НаДату,
           1 = 1
               И Номенклатура = &ВыбНоменклатура
               И Склад = &ВыбСклады
               И Качество В (&ВыбКачество)
               И Характеристика В (&ВыбХарактеристики)) КАК РезервыОстатки

УПОРЯДОЧИТЬ ПО
   РезервыОстатки.Номенклатура,
   РезервыОстатки.Качество,
   РезервыОстатки.Характеристика,
   РезервыОстатки.Склад
АВТОУПОРЯДОЧИВАНИЕ
7 Живой Ископаемый
 
20.07.13
18:09
э... и где же момент времени?
8 Rokstedi
 
20.07.13
18:10
Извините, забыл уточнить. Момент времени передаю параметром(&НаДату)
9 Живой Ископаемый
 
20.07.13
18:11
э... а то именно  дольше всего выполняется? Запрос.выполнить()  или получение момента времени?
10 Нууф-Нууф
 
20.07.13
18:11
Дай границу
11 Rokstedi
 
20.07.13
18:11
(9)Запрос.выполнить()
12 Нууф-Нууф
 
20.07.13
18:13
Используй границу! Будь мужиком, блеать!
13 Rokstedi
 
20.07.13
18:19
(12) Новый Граница(МоментВремени(),ВидГраницы.Исключая)
так?
всё равно тормозит, с использованием Даты в 2 раза быстрее получается.
14 Fragster
 
модератор
20.07.13
18:37
а какой порядок измерений там в регистре?
15 Rokstedi
 
20.07.13
18:40
(14)
1) Номенклатура
2) Качество
3) Характеристика
4) Заказ
5) Склад
16 GROOVY
 
модератор
20.07.13
18:41
Уточню один (два) момент, прямого отношения к вопросу не имеющий.

Зачем в условии "1=1"?

И почему бы не использовать вместо оператора "И" условие на сочетание полей?
17 Fragster
 
модератор
20.07.13
18:41
(15) сдвинь склад под номенклатуру
18 GROOVY
 
модератор
20.07.13
18:42
Чему равна дата, и чему равен моментВремени? Все это в оперативном проведении тормозит? Какая отметка оперативного времени?
19 Reaper_1c
 
20.07.13
18:47
И совсем уж чтоб наверняка - в базе итоги рассчитаны?
20 Rokstedi
 
20.07.13
18:47
(17) 1 = 1, потому как запрос встроен в универсальную функцию, которая принимает определенный набор параметров, если параметр не передан то я удаляю строчу параметра, например: "И Номенклатура = &ВыбНоменклатура", если параметров нет вообще то остается условие ГДЕ 1 = 1. Вроди б видел этот прием в типовых конфигурациях.
Можешь подробнее про условие на сочетание полей?
21 GROOVY
 
модератор
20.07.13
18:49
(Номенклатура, Склад, Качество) В (ВЫБРАТЬ &Номенклатура, &Склад, &Качество)
22 GROOVY
 
модератор
20.07.13
18:50
Причем в том порядке в котором в регистре указаны поля. Там составной индекс их окучит.
23 Rokstedi
 
20.07.13
19:06
РегистрНакопления.Резервы.Остатки(&НаДату,
           (Номенклатура, Качество, Характеристика, Склад) В(ВЫБРАТЬ &ВыбНоменклатура,
                   &ВыбКачество,
                   &ВыбХарактеристики,
                   &ВыбСклады)) КАК РезервыОстатки


ВыбКачество И ВыбХарактеристики - массив, ругается на "Неверные параметры
(Номенклатура, Качество,Характеристика,Склад) В (ВЫБРАТЬ &ВыбНоменклатура,<<?>>&ВыбКачество,&ВыбХарактеристики,&ВыбСклады)) КАК РезервыОстатки"
24 Rokstedi
 
20.07.13
19:11
(18)
Провожу документ не оперативно.
МоментВремени().Дата = 18.09.2012 11:53:47
Дата = = 18.09.2012 11:53:47
25 Rokstedi
 
20.07.13
19:14
(19) итоги не рассчитаны, но если я не ошибаюсь они по умолчанию рассчитываются на 1 число текущего месяца?
26 Fragster
 
модератор
20.07.13
19:17
главное, чтобы на сентябрь 12 года были рассчитаны
27 Rokstedi
 
20.07.13
19:30
(26)
Пробовал рассчитывать на 30.09.2012 и на 31.08.2012, скорость не изменилась.
28 Rokstedi
 
20.07.13
19:32
А у вас по скорости одинаково получается, что через Дату, что через моментВремени()?
29 Rokstedi
 
20.07.13
19:46
(26) я ошибался, расчет итогов еще как помогает, спасибо, думал автоматом рассчитывается на конец каждого месяца. Надо про них поподробнее почитать.
30 hhhh
 
20.07.13
20:07
(29) ну если знаешь про итоги, то должен понимать, что обороты за месяц посчитаются в 2 раза быстрее, чем за один день этого же месяца?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.