|
Клиент-сервер. Медленная работа выбора. | ☑ | ||
---|---|---|---|---|
0
espanol
16.07.12
✎
13:20
|
&НаКлиенте
Перем ОбработаннаяСтрока; &НаКлиенте Процедура ОстаткиПриАктивизацииСтроки(Элемент) Если ОбработаннаяСтрока <> Элемент.ТекущаяСтрока Тогда ПолучитьКартинку(Элемент.ТекущаяСтрока, Элемент.ТекущиеДанные.Номенклатура); КонецЕсли; КонецПроцедуры &НаСервере Функция ПолучитьКартинку(ТекущийСчет, СсылкаНаНоменклатуру) ОбработаннаяСтрока = ТекущийСчет; НаборКартинок = РегистрыСведений.КартинкиИФайлы.СоздатьНаборЗаписей(); НаборКартинок.Отбор.Объект.Установить(СсылкаНаНоменклатуру); НаборКартинок.Прочитать(); Если НЕ (НаборКартинок.Количество() = 0) Тогда Для Инд = 0 По НаборКартинок.Количество() - 1 Цикл мКартинка = НаборКартинок[0].Данные.Получить(); Картинка = ПоместитьВоВременноеХранилище(мКартинка.ПолучитьДвоичныеДанные()); КонецЦикла; КонецЕсли; КонецФункции ОбработаннаяСтрока = Неопределено; Очень медленно работает, секунд 10 отрабатывается, может кто знает как ускорить? |
|||
1
Fragster
гуру
16.07.12
✎
13:22
|
а индекс по измерению Объект есть?
|
|||
2
Kreont
16.07.12
✎
13:22
|
Сжать картинки, может там сканы 10мб?
|
|||
3
Fragster
гуру
16.07.12
✎
13:22
|
да и зачем там цикл если все равно по индексу получаешь только первую запись?
|
|||
4
Fragster
гуру
16.07.12
✎
13:23
|
а еще можно кэш картинок добавить, но там можно поиметь косяк с утечками памяти при неправильном подходе
|
|||
5
espanol
16.07.12
✎
13:24
|
(1) нет
(2) нет, там мало у кого есть картинки вообще... (3) это не без разницы, веть не оно утормаживает процесс |
|||
6
GROOVY
16.07.12
✎
13:24
|
А нафига в ВХ картинки пихать? Не проще ли навигационную ссылку возвращать?
|
|||
7
espanol
16.07.12
✎
13:24
|
(4) расскажи подробнее пожалуйста
|
|||
8
espanol
16.07.12
✎
13:26
|
(6) типа при помощи него будет быстрее?
|
|||
9
hhhh
16.07.12
✎
13:29
|
(5) вообще-то если напрмер 1000 картинок в наборе, то утормаживает ровно в 1000 раз.
|
|||
10
GROOVY
16.07.12
✎
13:30
|
(8) Ну как бы на порядок или на пару порядков быстрее.
|
|||
11
espanol
16.07.12
✎
13:32
|
(9) там может быть только 1, да хоть так сделать, скорость не меняется:
ОбработаннаяСтрока = ТекущийСчет; НаборКартинок = РегистрыСведений.КартинкиИФайлы.СоздатьНаборЗаписей(); НаборКартинок.Отбор.Объект.Установить(СсылкаНаНоменклатуру); НаборКартинок.Прочитать(); Если НЕ (НаборКартинок.Количество() = 0) Тогда мКартинка = НаборКартинок[0].Данные.Получить(); Картинка = ПоместитьВоВременноеХранилище(мКартинка.ПолучитьДвоичныеДанные()); КонецЕсли; |
|||
12
Fragster
гуру
16.07.12
✎
13:36
|
(5).1 дык это, надо бы
|
|||
13
Ksandr
16.07.12
✎
13:37
|
быстрее будет, если картинки хранить в справочнике, а не в РС, в РС только ссылки :)
Не помню откуда, но делать нужно чуть иначе - при активизации подключить обработчик ожидания на пол секунды - секунду с однократным выполнением и оттуда вызывать процедуру. |
|||
14
espanol
16.07.12
✎
13:38
|
(10) Картинка = ПолучитьНавигационнуюСсылку(мКартинка.ПолучитьДвоичныеДанные());
скорость не поменялась... |
|||
15
Fragster
гуру
16.07.12
✎
13:38
|
(13)о_О
|
|||
16
espanol
16.07.12
✎
13:39
|
тока строка там не та, для интереса так забил
|
|||
17
espanol
16.07.12
✎
13:40
|
(12) попробую
(13) ясно, спасибо! |
|||
18
Bober
16.07.12
✎
13:42
|
(16) ПолучитьНавигационнуюСсылку(Тут набор записей, тут описание ресурса, тут номер строки)
|
|||
19
Ksandr
16.07.12
✎
13:42
|
(15) Это к началу сообщения относится или к окончанию?
|
|||
20
Bober
16.07.12
✎
13:43
|
(17) + выполнять этот как сказал (13) "...при активизации подключить обработчик ожидания "
|
|||
21
Fragster
гуру
16.07.12
✎
13:47
|
(19) к началу. окончание понятно - "не тормозить у любителей потыкать по списку быстробыстро"
|
|||
22
GROOVY
16.07.12
✎
14:15
|
(14) Естественно! Не надо читать данные из ХЗ. Надо на них тупо сослаться. Читай что тебе в (16) говорят.
|
|||
23
H A D G E H O G s
16.07.12
✎
14:17
|
ППЦ
|
|||
24
H A D G E H O G s
16.07.12
✎
14:17
|
Вы чего, народ?
|
|||
25
H A D G E H O G s
16.07.12
✎
14:18
|
НаборКартинок.Прочитать();
Вот тут ваши не все дома. |
|||
26
H A D G E H O G s
16.07.12
✎
14:18
|
Запрос.Текст="
Выбрать Первые 1 КартинкиИФайлы.Данные .... и.т.д. |
|||
27
H A D G E H O G s
16.07.12
✎
14:20
|
(22) Без разницы, имхо. Тут не будет 10 секунд, даже при мегабайтах.
|
|||
28
ChAlex
16.07.12
✎
14:21
|
Вообще-то стоило бы подключить обработчик ожидания на событие при активации строки. Подозреваю ко всему прочему у вас по нескольку раз выполняется выборка картинки
|
|||
29
espanol
16.07.12
✎
14:49
|
(25) почему? по времени фактически одинаково выходит что и запросом
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |