Как правильней сч=сч+1 или тз.Индекс(текСтрока)? #645852


#0 by Crush
Как методологически правильнее получать номер строки при переборе Для Каждого? варианты: 1) сч=сч+1 При подсчете процента выполнения. От куда лучше брать общее количество строк? 1) из переменной КолСтрок = тз.Количество, определенной перед циклом Переменные сч и КолСтрок более нигде не используются
#1 by Reset
Я бы делал так -- сч=сч+1 -- из переменной КолСтрок = тз.Количество --
#2 by Kreont
сч=сч+1 универсальнее, и для массивов подойдет
#3 by palpetrovich
#4 by vicof
Не проще Для к = 1 По КолчиествоСтрок Цикл?
#5 by acsent
выгода несущественная
#6 by Reset
+1
#7 by zak555
#8 by fisher
+1 Если нужны номера, то по ним и обхожу.
#9 by hhhh
да это два разных варианта: для правильнее через "к", а если Для Каждого ТекСтрока Из ТЗ, то вариант тз.Индекс(текСтрока) рулит.
#10 by Reset
Почему рулит? Имхо он чуть медленней чем специальный счетчик, хотя .
#11 by hhhh
товарищ из спрашивает "Как методологически правильнее". Понятно, что чуть помедленнее. Да там со счетчиками вероятность ошибиться больше. А тут есть строка, тупо берем ее индекс.
#12 by Mnemonic1C
Смотря что делать с этой таблицей. Если например удалять строки по условию(ям), то не подойдет ни один из описаных алгоритмов.
#13 by Kreont
Для масивов обращение через "Индекс" не пойдет, вариант с "сч" будет универсальней
#14 by Crush
На консультации к экзамену на спеца говорилось, что не нужно лишний раз инициализировать переменные. Сам склоняюсь к тз.Индекс(текСтрока), но сколько операций выполняется процессором для получения индекса? Когда достаточно обратиться к области памяти, прочитать, добавить, записать - в случае с сч++. Так же и с количеством строк. Если через метод таблицы, то явно больше(имхо) операций, чем через переменную. Собственно вопрос касается случая, когда в процессе перебора строк нужно ориентироваться в каком месте находишься: будь то процент выполнения или решаешь ставить запятую после последнего значения или нет.
#15 by Reset
"что не нужно лишний раз инициализировать переменные" Это правильно. Вопрос в том, какой случай считать лишним. Имхо, когда заведение переменной приводит к увеличению быстродействия, переменная не лишняя.
#16 by Reset
<--- еще укажу мем "Имхо". Мнение может несовпадать с мнением экзаменаторов на спеца:) Да даже тут в ветке есть другое
#17 by Reset
в частном случае с запятой имхо проще ставить всегда(избавившись от проверок в цикле), а потом лишнюю один раз отрезать :)
#18 by Crush
Хе, согласен! А если перед предпоследним значением союз "и" надо влепить?:) Собственно это и подтолкнуло к вопросу.
#20 by Classic
То же самое.
#21 by Classic
+ Обычно надо "И" лепить везде, кроме первого.
#22 by Axel2009
вроде как получитьстроку отработывает медленнее чем для каждого
#23 by Reset
А может там не запрос, а "Уважаемый Петр, Марья, Сергей И Паша" :)
#24 by Classic
Возможно :)
#25 by Reset
Вполне возможно, не задавался. Можно проверить. Для каждого то же наверянка по индексу перебирает, но "внутри", соотв. может быстрее
#26 by NcSteel
Методически верно так:
#27 by GANR
тз.Индекс(текСтрока) - чтоб не думать!
#28 by GANR
+ Мало-ли какие строки добавятся/удалятся
#29 by Reset
Если строки могут удалиться, "Для каждого" вообще противопоказан :) А в "Для" счетчик уже есть
#30 by hhhh
так он собъется, если строки удалять. Проверено, ТЗ.Количество вычисляется ровно один раз, в начале.
#31 by Reset
По крайней мере иногда можно построить так, чтобы не сбился. "Для каждого" вообще "не управляемый".
#32 by NcSteel
Не надо ля ля ля . 1С часто его используют для таких целей и нормально.
#33 by Axel2009
если строки удалять то смысла в увеличении счетчика нет никакого. выйдет за рамки массива
#34 by Reset
Поясни про "ля ля"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С