|
Типовой кусок от 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% это больше полсекунды или нет? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |