Имя: Пароль:
1C
1C 7.7
v7: Периодический реквизит. Тормоза.
,
0 AntiBuh
 
30.06.14
09:36
Есть справочник с несколькими периодическими реквизитами
при получении реквизитов - на некоторые тратится оч много времени

Получаю так:
Спр.ИспользоватьДату(Дат);
п1 = Спр.Рекв1;
п2 = Спр.Рекв2;
п3 = Спр.Рекв3;

Рекв1 - Строка 30
Рекв2 и Рекв3 - Число 15.2

на получение Рекв2 и 3 уходит раз в 100 больше времени чем на Рекв1

в чем может быть проблема?
1 vde69
 
модератор
30.06.14
09:42
Рекв1 -
то реально так называется реквизит???? или он назывется по другому???
2 AntiBuh
 
30.06.14
09:43
(1) а имеет значение как он в реале называется?
3 ДенисЧ
 
30.06.14
09:44
Это норма (с)
периодические - они такие....
4 SleepyHead
 
гуру
30.06.14
09:45
(2) Все периодические значения хранятся в файле 1sconst, делай выводы
5 vde69
 
модератор
30.06.14
09:46
(2)
имеет,

МойРекв будет быстрее чем МойСуперПуперРеквизтДляСправочникаЛевыхЗапчастей...
6 ДенисЧ
 
30.06.14
09:47
(5) Что за гон???
7 SleepyHead
 
гуру
30.06.14
09:48
Модератор пьян с утра и шутит? :)
8 vde69
 
модератор
30.06.14
09:48
(6) это не гон, замерь...
9 ДенисЧ
 
30.06.14
09:49
(8) В 7ке? Издеваешься? Где я её возьму?
10 Адинэснег
 
30.06.14
09:49
клюшки RIP
11 vde69
 
модератор
30.06.14
09:49
то что не уложится в индекс будет тормозить.... а индекс для дбф коротенький :)
12 ДенисЧ
 
30.06.14
09:50
(11) В индексе нет имени реквизита, каким его показывает 1с...
13 AntiBuh
 
30.06.14
09:55
(5) Длина имени у тормозного имя на 2 символа длиннее
14 vde69
 
модератор
30.06.14
09:55
(12) ладно, раскули - шутю.... дляна реквизита не зависит, в файле его ID...

по сабжу - смотреть надо, так на вскидку не скажешь :)
15 AntiBuh
 
30.06.14
09:55
(13) 6 и 8 соотвественно
16 vde69
 
модератор
30.06.14
09:57
если серьезно - может влиять только 2 фактора
1. наличие/отсутсвие регистратор
2. количество записей как в таблице в целом так и для конкретных реквизитов.

но понять, что конкретно влияет без тестов с копией базы вряд-ли можно :)
17 vde69
 
модератор
30.06.14
09:58
еще влияет отсутствие явной типизации у реквизита...
18 SleepyHead
 
гуру
30.06.14
10:01
ТС, попробуй не через объект с установленной датой читать, как в начале темы, а через ссылку, примерно так:

Элемент = Спр.ТекущийЭлемент();
Значение1 = Элемент.ИмяПериодическогоРеквизита.Получить(нужнаяДата);
19 AntiBuh
 
30.06.14
10:02
(16) заполнение абсолютно одинаково - в обработке (без регистратора)
количество записей соответственно одинаковое, разве что у тормозных значения чаще меняются
(17) типизация в наличии, в топ посте сразу написал
20 SleepyHead
 
гуру
30.06.14
10:03
(19) у тормозных значения чаще меняются

Вот и ответ. Поиск идет по ид элемента справочника и ид реквизита и дате, соответственно нужно проанализировать больше значений.
21 AntiBuh
 
30.06.14
10:04
(18) да вот думал что с установленной датой будет быстрее чем для каждого реквизита Получить() юзать
22 AntiBuh
 
30.06.14
10:06
(20) ну пишутся-то они одинаково
просто у Рекв1 значение совпадает со старым
23 AntiBuh
 
30.06.14
10:22
(18) однохренственно
24 Злой Бобр
 
30.06.14
15:51
(0) Эх ..., молодежь. Получай прямым запросом и будет тебе счастье.
25 AntiBuh
 
30.06.14
16:10
(24) вот пробую
все равно вроде медленновато
26 Злой Бобр
 
30.06.14
16:58
(25) Ну незнаю, незнаю. Либо у вас сервак медленный, либо просто неумеете готовить.
27 ДенисЧ
 
30.06.14
17:00
(25) индекс создай нужный
28 Ujcnm99
 
30.06.14
17:28
А Спр это выборка или элемент
Может так попробовать
Спр.ИспользоватьДату(Дат, 1)
29 НеБорис Нуралиев
 
30.06.14
17:35
(25) Бобр прав. Прямыми запросами быстрее на порядок.
30 SleepyHead
 
гуру
30.06.14
18:52
(29) Это ж сколько значений надо прочитать, чтобы эффект был заметен пользователю? Разница в 100 раз штука относительная, пользователь в итоге может и не заметить, на самом деле.

На полном серьезе - один раз клиенты (медицина) попросили, чтобы программа работала подольше, хотя бы минуту чтобы отчет формировался, а то как-то несолидно и неудобно перед начальством.

Исходно отчет формировался за секунды, пришлось лепить задержки до минуты.
31 дедушка Вах
 
30.06.14
19:26
может он элемент, или этого ещё не проходили?
32 AntiBuh
 
30.06.14
21:15
(26) второе вероятнее :)
(30) вот именно что выборка всего 30-35 значений
и получается порядка секунды на каждое
33 SleepyHead
 
гуру
01.07.14
06:30
А стоит ли из-за 35 секунд искать, в чем проблема? Больше времени потеряешь, а пользователи пусть чай пьют.

Сколько раз в день отчет формируется?
34 AntiBuh
 
01.07.14
07:49
(33) ну у ползателя вроде еще медленнее
на основании этих данных еще ряд значений заполняется и этого довольно много
35 НеБорис Нуралиев
 
01.07.14
16:00
(30) Кому-то нужно что бы солидно было, а  кому-то что бы работало хорошо.
36 SleepyHead
 
гуру
01.07.14
18:09
(35) Одно другому не мешает вообще-то.