Имя: Пароль:
1C
1С v8
Быстрое получение представления объекта ссылочного типа
0 Diversus
 
23.09.15
10:26
Добрый день, коллеги.

Есть задача быстрого получения представления объектов ссылочного типа.
Несмотря на то, что задача выглядит очень простой - это не совсем так.

Сейчас это работает так:

Представление = Строка(Объект[ИмяРеквизита]);

Но данный подход работает чрезвычайно медленно!

Видимо платформа пытается найти в модуле менеджера объекта процедуры ОбработкаПолученияПредставления и ОбработкаПолученияПолейПредставления, если не находит то начинает по ссылке читать данные (для справочников: основное представление в метаданных, потом код или наименование; для документов: вид документа, дату и номер и т.д.), которые необходимы для построения представления, если находит, то аналогично, только этот процесс проводится по определенным правилам, уже заданным разработчиком. Но все сводится к тому же - получение по ссылке данных.

Ну а собственно получение данных по ссылке - это лишние запросы к БД.

Поэтому код указанный выше работает ОЧЕНЬ долго.

Если способ быстрее получить представление объекта ссылочного типа?
1 Cyberhawk
 
23.09.15
10:29
Рекомендую почитать в толстой книге про объектный кэш
2 Diversus
 
23.09.15
10:48
Спасибо!

Вот кстати, инетересное описание работы с представлением на ИТС-е:
http://its.1c.ru/db/metod8dev#content:2655:hdoc
3 Cyberhawk
 
23.09.15
13:23
Осталось неясным, как ты собирался избавиться от "получение данных по ссылке - это лишние запросы к БД"
4 Гёдза
 
23.09.15
13:24
Долго в этом коде чтение ВСЕГО объекта в память
5 Cyberhawk
 
23.09.15
13:26
(4) Я на это и хотел намекнуть в (3) - обращение к БД за полями, образующими представление, все равно происходит.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.