Имя: Пароль:
1C
1С v8
Вопрос по быстродействию системы
,
0 mzelensky
 
06.09.11
14:29
Еще раз здрасти!

Интересует следующий момент: перебираю справочник номенклатуры (в принципе любой справочник) и сравниваю значения его реквизитов с эталонными (ну скажем из файла, но это не важно), так вот лучше работать с ссылкой на элемент справочника или с объектом элемента (разумеется если нужно все-таки поменять значение реквизита, то тогда однозначно получаем объект) ???

Т.е. на сколько идет разница в быстродействии между работой с ссылкой и с объектом???

П.С. платформа 8.1
1 mirosh
 
06.09.11
14:30
(0) С ссылкой работай. Лучше получи все нужные тебе реквизиты в запросе. запрос, естественно, не в цикле
2 mzelensky
 
06.09.11
14:33
(1) не, там циклом не получится, я получаю ссылку через "справочники.Номенклатура.найтипокоду()", а потом уже если надо получаю объект из нее.

Просто сперва сделал работу через "объект" - объект получался сразу из ссылки в любом случае. В этом варианте загрузка занимает около 3 минут.

Потом сделал сравнение по ссылке и объект получаю ток если его НУЖНО получить, т.е. изменить какой-то реквизит. По моей логике скорость работы должна была увеличиться...но на практике загрузка прошла примерно за теже 3 минуты
3 H A D G E H O G s
 
06.09.11
14:37
(2) Все правильно.
4 H A D G E H O G s
 
06.09.11
14:38
(2) Когда ты из ссылки считывает реквизит - платформа считывает весь объект.
5 mzelensky
 
06.09.11
14:40
(3) т.е. можно не заморачиваться с этими условиями и получать "объект" сразу же, а потом с ним и работать?
6 H A D G E H O G s
 
06.09.11
14:40
(5) Можно получать нужное запросом.
7 H A D G E H O G s
 
06.09.11
14:42
(5) Вернее даже - сравнивать в запросе, на выходе имея табличку объектов которые надо изменить.
8 mzelensky
 
06.09.11
14:42
Не красиво получится!

я обхожу файл ХМЛ, там прописаны реквизиты справочника. Считываю последовательно значения из файла и сравниваю их с уже имеющимися данными в справочнике. Чет мне кажется засовывать туда ЗАПРОС будет как-то криво
9 H A D G E H O G s
 
06.09.11
14:46
(8) Обойди тысяч 10 элементов справочника сохрани в ТЗ, ТЗ засунь в запрос, сравни, получи на выходе обновляемые элементы, из ТЗ заполни их новые реквизиты, повтори.
10 H A D G E H O G s
 
06.09.11
14:46
Че не пацан штоле?
11 mzelensky
 
06.09.11
14:49
(9) и ты думаешь это будет быстрее???
12 H A D G E H O G s
 
06.09.11
14:50
(11) Конечно.
13 Amiralnar
 
06.09.11
14:51
Я знаю, что будет быстрее
14 Дикообразко
 
06.09.11
14:51
(12) update не хватает?
15 H A D G E H O G s
 
06.09.11
14:53
(14) За update-ами ходите в ADO.
16 H A D G E H O G s
 
06.09.11
14:53
(14) Пиривет.
17 John83
 
06.09.11
14:54
вопрос на засыпку

Объект = Ссылка.ПолучитьОбъект();
Сообщить(Объект);

какие данные будут во время Сообщить() читаться?
18 H A D G E H O G s
 
06.09.11
14:57
(17) Никаких.
19 mzelensky
 
06.09.11
15:00
(12) ладно, подумаю :(
20 Дикообразко
 
06.09.11
15:00
(16) ага... и тебе :)
21 mzelensky
 
06.09.11
15:01
(12) и как думаешь, на 10 тысячах на сколько секунд выигрыш будет ?
22 H A D G E H O G s
 
06.09.11
15:07
(21) От 0 минут до 2 минут 45 секунд.
23 H A D G E H O G s
 
06.09.11
15:07
(21) Смотря сколько данных обновляется.
24 Дикообразко
 
06.09.11
15:12
(23) мне кажется там больше времени на чтения файла уйдет
25 mzelensky
 
06.09.11
15:18
Да там данные обновляются довольно редко
26 mzelensky
 
06.09.11
15:36
мне кажется лучше уменьшить количество данных в самом файле.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс