Имя: Пароль:
1C
1С v8
Типовой кусок от 1С. конфиг ЗУП
,
0 Bugmenot
 
04.09.13
01:46
Скажите это нормально?

Для каждого СтрокаУдержания Из Запрос.Выполнить().Выгрузить() Цикл
      ЗаполнитьЗначенияСвойств(СтруктураПоиска,СтрокаУдержания);    
Если ПогашениеЗаймов.НайтиСтроки(СтруктураПоиска).Количество() = 0 Тогда
      ЗаполнитьЗначенияСвойств(ПогашениеЗаймов.Добавить(),СтрокаУдержания)    
КонецЕсли;
КонецЦикла;


Просто как помню из других языков, учили сначала получить отдельно А = Запрос.Выполнить().Выгрузить()   и уже потом делать цикл.


Видимо я плохо знаю 1С.
Этот участок когда ля каждого СтрокаУдержания Из Запрос.Выполнить().Выгрузить() Цикл


Будет каждый цикл выгружать?  Или один раз в начале выгрузил и все.
1 Bugmenot
 
04.09.13
01:48
(0) так бы пофиг)) просто этот кусок занимает 14% времени (замер произв.)
2 Reaper_1c
 
04.09.13
02:02
В цикле "для" выражение для вычисления предела цикла, или получения коллекции для обхода происходит 1 раз.
3 hhhh
 
04.09.13
02:09
(1) погашениеЗаймов проиндексируй по нужному полю. Тогда будет счастье.
4 hhhh
 
04.09.13
02:12
(3)+ и ЗаполнитьЗначенияСвойств замени обычными присваиваниями реквизитов, тоже ускорится слегка.
5 Bugmenot
 
04.09.13
02:15
(4) так код типовой ) не я его писал. Ты обвиняешь 1С программистов в НЕ оптимизированности ?
6 Любопытная
 
04.09.13
04:55
(5) имхо, 1С программисты редко задумываются об оптимизации. :) И пишут люди разные, а стиль особо не задекларирован, вероятно. ЗУП вообще страшен внутри, я порой с трудом разбираю, что там происходит. Правда я в УПП еще не заглядывала))
7 Sserj
 
04.09.13
05:35
(0) Как бы это вообще более правильный стиль программирование. Потому как строчка А = Запрос.Выполнить().Выгрузить()создает лишнюю переменную со ссылкой на объект, которую надо было бы незабыть обнулить дабы не создавать утечки памяти.
Но это во взрослых языках а в 1С это не шибко критично :)
8 Armando
 
04.09.13
07:56
Зачем вообще результат выгружать в ТЗ?
Нельзя обычной выборкой пользоваться? Она какбе для этого и предназначена.
9 alkov
 
04.09.13
07:59
(8) Видимо, тогда не будет таких "изящных" конструкций
10 Ненавижу 1С
 
гуру
04.09.13
08:46
(8) одну и ту же выборку нельзя обходить одновременно несколько раз, а ТЗ можно
11 guitar_player
 
04.09.13
09:05
(10) тут это причем? и как же сбросить?
12 Infsams654
 
04.09.13
09:08
(0) коротко и ясно. Нечего лишние строки плодить. hhhh - не на мобилах работаем и не на древних железяках, ЗУП как никак
13 Serg_1960
 
04.09.13
09:21
(0) Да, согласен, не самое удачное решение использовать НайтиСтроки() для проверки уникальности СтрокаУдержания в ПогашениеЗаймов, но явных ошибок код не содержит. Да, согласен, можно оптимизировать.
14 Fragster
 
модератор
04.09.13
09:31
чудаки, не могли в запросе все недостающие строки получить...

(0) а 14% это больше полсекунды или нет?
Закон Брукера: Даже маленькая практика стоит большой теории.