Представление объекта в запросе #459421


#0 by Nic1
Если в запросе будет:     А потом при выводе на печать ПечТовар=Запрос.Товар, то при выводе будут еще обращение к базе, чтобы получить представление товара?
#1 by fisher
Думаю, да. Даже в 8-ке это руками разруливать надо.
#2 by Nic1
А если обращение к конкретному товару, типа ПечТовар=СпрТовары.ТекущийЭлемент, то название будет браться из кэша видимо? В запросе такой механизм не действует?
#3 by Nic1
Или в любом случае лучше на печать выводить сразу наименование, чтобы гарантированно исключить повторное обращение к базе?
#4 by Mikeware
Ну и не только наименование. Золотое правило - запрос должен возвращать всю требуемую информацию....
#5 by Nic1
ну с остальными реквизитами это понятно, чтобы не обращаться через точку, а сразу все получать в запросе. А с представлением получается, что 1С неявно обращается к базе, и на это многие не обращают внимание.
#6 by Nic1
Просто думалось раньше, что в такой конструкции |Товар = Справочник.Товары.ТекущийЭлемент; в запросе будет получено и представление, и при выводе оно же и будет использоваться вместо ссылки на товар...
#7 by ДенисЧ
Используй ЗначениеУпорядочивания
#8 by Nic1
при таком варианте обращения к базе не будет?
#9 by Nic1
Вернее ПечТовар=Запрос.ЗначениеУпорядочивания(1,1);
#10 by МихаилМ
то  В 7.7 нет кэша Оптимизация выборок сложная задача. Учтите что для выборки элеметнов 1с77 использует хр а текст объекта запрос будет развернут в текст MS SQL с left join по каждому полю элемента справочника если обращение будет через ссылку типа  Поле = Документ(Регистр,Справочник..).Справочник.Поле если использовать прамые запросы то опять же что выгодней разворачивать расшифровки в 1 таблицу как или пакетом скачивать расшифровки завивисит от качества данных опятьже усложняется программирование таких выборок, а 1с - это "быстрая разработка" короче оптимизация может быть применима только к конкретным условиям. а если Вы напишите К Товар = Справочник.Товары.ТекущийЭлемент; БЫДЕТ ТО все равно будет сгенерированн столько мелких запросов, сколько элементов выборке. ИСПОЛЬЗУЙТЕ группировка Товар без упорядочивания. про кончтрукцию "В" отдельная песня
#11 by fisher
Уверен, что нет. Из выборки присвоится ссылка, а при выводе на печать (в процессе преобразования к строке), полезет на сервер за представлением. Да. Есть в 7.7 кэш. По первому обращению через точку объект кэшируется и последующие обращения через точку к этому же объекту уже не будут дергать БД.
#12 by МихаилМ
это не тот кэш, что в 1с8.х ну естествннно что будет в памяти объект и то если вызвать метод Вид для документов, данные по которому уже считаны   то полюбому будет обращение к БД. опять же в тз ссылки не хранятся на обекты и будут повторные считывания при разыменовании. Вобщем,  MS SQL profiler  помогает разобраться  в особенностях взаимодействия с MS SQL в 1с77 и в 1с8.х
#13 by fisher
Согласен. Но в рамках обсуждаемого вопроса разница несущественна.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С