Size: a a a

1С, БСП, DevOps и Архитектура

2021 September 30

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Засунь получение объекта внутрь цикла
источник

A

Alexey Lab Sosnoviy in 1С, БСП, DevOps и Архитектура
Потыкали же
источник

A

Alexey Lab Sosnoviy in 1С, БСП, DevOps и Архитектура
Да вообще его получать не надл
источник

1P

1C Programmer in 1С, БСП, DevOps и Архитектура
уже навтыкали ))) сейчас другой скину
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
А кто вообще бездумно заменяет обрашение через точку к объекту на запрос?)
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Ну т.е это как минимум разные данные
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Реквизит в объекте <> реквзит в ссылке
источник

A

Alexey Lab Sosnoviy in 1С, БСП, DevOps и Архитектура
Поверь, говоришь не надо через точку. Говорят ок и тупо втыкают значениереквизита
источник

АЕ

Александр Егоров... in 1С, БСП, DevOps и Архитектура
Да когда вы сказали про кэш то понял в чем может быть проблема, совсем про него забыл, но опять же не везде надо сделать. Если данные из одного и того же объекта то кэш быстрее. Например сначала товар.код потом товар.наименование будет быстрее чем значение реквизита товар.код и товар.наименование, но если разные товары то быстрее через запрос с получением 1 поля.
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
И передают туда объект?
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
источник

A

Alexey Lab Sosnoviy in 1С, БСП, DevOps и Архитектура
)))
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
В целом нет. Если у тебя есть ссылка, ты можешь через ЗначениеРеквизитовБлаБлаБла дёрнуть сразу набор нужных тебе свйоств в стрктуру, и это всё ещё будет быстрее считывания объекта в память
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Но если уже прилетел объект, то дёргать значения его реквизитов через ссылку это безумие как минимум потому что
А.) Он может быть не записан
Б.) Значения реквизитов в объекте могут отличаться от тех что лежат в БД
В.) Все значения уже в оперативе, не нужно лезть за ними в БД
источник

1P

1C Programmer in 1С, БСП, DevOps и Архитектура
В общем извиняюсь перед всеми. Запросом быстрее
источник

1P

1C Programmer in 1С, БСП, DevOps и Архитектура
&НаСервере
Процедура Команда1НаСервере()    
 МасД = Новый Массив;
 Запрос = Новый Запрос;
 Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 3000 СписаниеТоваров.Ссылка КАК Ссылка ИЗ Документ.СписаниеТоваров КАК СписаниеТоваров";
 РезультатЗапроса = Запрос.Выполнить();
 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   МасД.Добавить(ВыборкаДетальныеЗаписи.Ссылка);
 КонецЦикла;
 
 Для Каждого Э Из МасД Цикл К = Э.Номер;КонецЦикла;
КонецПроцедуры
15 сек
источник

1P

1C Programmer in 1С, БСП, DevOps и Архитектура
&НаСервере
Процедура Команда2НаСервере()
 МасД = Новый Массив;
 Запрос = Новый Запрос;
 Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 3000 СписаниеТоваров.Ссылка КАК Ссылка ИЗ Документ.СписаниеТоваров КАК СписаниеТоваров";
 РезультатЗапроса = Запрос.Выполнить();
 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   МасД.Добавить(ВыборкаДетальныеЗаписи.Ссылка);
 КонецЦикла;
 
 Для Каждого Э Из МасД Цикл
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ СписаниеТоваров.Номер КАК Номер ИЗ Документ.СписаниеТоваров КАК СписаниеТоваров ГДЕ СписаниеТоваров.Ссылка = &Ссылка";
   Запрос.УстановитьПараметр("Ссылка", Э);
   РезультатЗапроса = Запрос.Выполнить();
 КонецЦикла;
КонецПроцедуры    3сек
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Несите сертификат эксперта
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
Почему вообще в первом примере точка от объекта?
Писали же выше, что проблема ТОЛЬКО в точке от ссылки!
При чем ТОЛЬКО ПРИ ПЕРВОМ обращении к ссылке.
Кэш живёт 20 сек.
источник