Имя: Пароль:
1C
1С v8
Что отработает быстрее в ОбработкаПолученияПредставления
,
0 TolikoSprosit
 
29.05.18
12:55
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    СтандартнаяОбработка = Ложь;
    Представление = Данные.Наименование + "(" + Строка(Данные.SpaceTypesMain) + ")";
    Представление = Данные.Наименование + "(" + ОбщегоНазначения.ПолучитьЗначениеРеквизита(Данные.SpaceTypesMain,"Наименование") + ")";
    
КонецПроцедуры

Замер производительности показывает что запрос в ПолучитьЗначениеРеквизита самое медленное место, это почему так? Или замер лукавит?
1 singlych
 
29.05.18
12:57
А вот кто-нибудь запилит обработку получения представления для Данные.SpaceTypesMain, что будешь делать?
2 TolikoSprosit
 
29.05.18
12:59
(1) это я переживу)
3 TolikoSprosit
 
29.05.18
13:08
SpaceTypesMain не большой справочник. Моя ставка на то, что 1с кэшурует представление(Строка(Данные.SpaceTypesMain)) поэтому он и отрабатывает быстрей. Но я хочу чтобы господа эксперты высказались)
4 DmitrO
 
29.05.18
13:09
Не надо использовать ОбщегоНазначения.ПолучитьЗначениеРеквизита, это отдельный запрос к базе.
Надо использовать событие ОбработкаПолученияПолейПредставления и все данные для формирования представления будут получаться в исходном запросе.
5 DmitrO
 
29.05.18
13:11
А SpaceTypesMain это ссылка что ли? Тогда да, 1С так не умеет. :)
6 TolikoSprosit
 
29.05.18
13:14
(4) (5) Я уж думал чудо какое есть)
7 DmitrO
 
29.05.18
13:18
Им бы сделать чтобы можно было указать в ОбработкаПолученияПолейПредставления поля так: Поля.Добавить("SpaceTypesMain.Наименование");
а в структуру данных помещать под такой ключ: "SpaceTypesMainНаименование" - но кто ж об этом догадаться-то то может, это ж мля, так не очевидно!
8 TolikoSprosit
 
29.05.18
13:26
Шутки шутками, а закэшированное Строка(Данные.SpaceTypesMain), отработает быстрее всего. Думаю можно расходится.
9 RomanYS
 
29.05.18
13:36
(3) если справочник условно-неизменный можно поиграться с
-модулями повторного использования
-(фиксированным) соответствием засунутым, например, в параметры сеанса
10 TolikoSprosit
 
29.05.18
13:41
(9) Тоже думал про модуль, но не нашлось нужного модуля с нужными галочками, а для отдельной функции модуль добавлять пока не буду.

2ое решение я бы назвал экзотическим. С моей точки зрения, трудно поддерживаемое.
11 aka MIK
 
29.05.18
13:44
(8) ну разумеется, оно уже на клиенте. Для этого все и делилось на инструкции где что выполнять
12 DmitrO
 
29.05.18
15:00
(8)разыменование ссылок кешируется только на время серверного вызова. При следующем серверном вызове снова же в базу полезет.
13 TolikoSprosit
 
30.05.18
10:18
(11) на каком клиенте? это модель менеджера.
14 TolikoSprosit
 
30.05.18
10:19
(12) "разыменование" это другое. Кэшируется на сессию.
15 тарам пам пам
 
30.05.18
10:38
(8) Быстрее всего отработает добавленный реквизит "Представление", который заполнять перед записью.
16 TolikoSprosit
 
30.05.18
10:47
(15) как вариант
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший