|
Оптимизация работы с объектами |
☑ |
0
ИС-2
naïve
02.01.23
✎
09:11
|
Есть документы с большим кол-вом строк в ТЧ (>5000).
Из-за этого работа с ТЧ занимает много времени.
Например, на выгрузку номенклатуры уходит 5% (1-3 сек) времени
Запрос.УстановитьПараметр("НоменклатураДокумента", источник.товары.выгрузить().выгрузитьколонку("Номенклатура"));
Есть ли способы оптимизации именно работы с объектами? Т.е когда нет ссылки, чтобы делать запрос
|
|
1
hockeyist
02.01.23
✎
09:28
|
(0) источник.ссылка чем не ссылка?
|
|
2
Aleksey
02.01.23
✎
09:32
|
Номенклатура = ОбщегоНазначения.ВыгрузитьКолонку(источник.Товары, "Номенклатура", Истина);
|
|
3
RomanYS
02.01.23
✎
10:22
|
Если объект записан, то в запрос передавать ссылку на документ, номенклатуру получать внутри.
У метода Выгрузить() есть параметры, можно выгрузить только одну колонку
|
|
4
ИС-2
naïve
02.01.23
✎
11:43
|
(1) код выполняется в событии перед записью т.е данные в ссылке отличаются от данных в объекте
|
|
5
Armando
02.01.23
✎
17:21
|
Передавать в запрос массив размером несколько тысяч элементов так себе идея. Нельзя ли этот код использовать в ПриЗаписи?
|
|
6
RomanYS
02.01.23
✎
17:47
|
*(3) забыл, что у ТЧ есть метод ВыгрузитьКолонку
потестил на 5000 строках ТЧ 16 реквизитов
М = ТЧ.ВыгрузитьКолонку("Реквизит1"); //~0,001 сек
ТЗ = ТЧ.Выгрузить();// ~0,05 сек
М = ТЗ.ВыгрузитьКолонку("Реквизит1");// ~0.0002 сек
ТЗ = ТЧ.Выгрузить(,"Реквизит1");// ~0,007 сек
М = ТЗ.ВыгрузитьКолонку("Реквизит1");// ~0.0002 сек
Откуда могут быть 1-3 секунды?
|
|
7
D_E_S_131
03.01.23
✎
14:36
|
(4) Тогда через временную таблицу, если в базе еще нет этой информации.
|
|
8
mistеr
04.01.23
✎
12:40
|
(0) При выгрузке можно отбор делать.
Ну и 3 сек. да, многовато.
|
|
9
PR
04.01.23
✎
12:46
|
(0) Прикольно, да, сначала выгрузить всю ТЧ, а потом только одну колонку, и возмущаться, что долго что-то
|
|