|
Отрицательное значение в условии цикла | ☑ | ||
---|---|---|---|---|
0
ХДС
27.12.21
✎
14:39
|
Для Счетчик2 = 0 По РезультатЗапроса[Счетчик].КонтактнаяИнформация.Количество() - 1 Цикл
Как отработает такое условие при Количество = 0, и почему? |
|||
1
polosov
27.12.21
✎
14:41
|
Ошибка в РезультатЗапроса[Счетчик] ?
|
|||
2
ДенисЧ
27.12.21
✎
14:42
|
(0) цикл не выполнится
|
|||
3
polosov
27.12.21
✎
14:43
|
(0) А, понял. Нормально должно отработать. Там же обычное сравнение.
|
|||
4
lodger
27.12.21
✎
14:45
|
(0) зачем делать _такие_ конструкты там, где это совершенно не требуется?
|
|||
5
lEvGl
гуру
27.12.21
✎
14:45
|
надо думать что не попадет в цикл или ошибку даст, что правая часть не может быть меньше нуля
|
|||
6
Kassern
27.12.21
✎
14:46
|
(0) никак не отработает. Просто дальше код пойдет выполняться минуя цикл
|
|||
7
Kassern
27.12.21
✎
14:47
|
аналогично для конструкции Для Каждого ТекСтрока Из ТЗ Цикл, где ТЗ пустая таблица
|
|||
8
Aleksey
27.12.21
✎
14:48
|
(7) не совсем. У него цикл от 0 до -1. Но ответ правильный. Дальше пойдет
|
|||
9
ДенисЧ
27.12.21
✎
14:49
|
Попробуй
для сч = 0 по -1 Цикл сообщить("Мы в цикле"); КонецЦикла; |
|||
10
mistеr
27.12.21
✎
14:50
|
(8) Там столько обращений к объектам, что вполне может быть и ошибка.
(4) +1 |
|||
11
TheRoofIsOn Fire
27.12.21
✎
14:52
|
а что одинэс умеет step -1? Я не знал.
|
|||
12
Мультук
гуру
27.12.21
✎
14:53
|
(11)
Он и не умеет, да здесь (в этом примере) оно и не нужно |
|||
13
TheRoofIsOn Fire
27.12.21
✎
14:53
|
(12) Как отработает такое условие при Количество = 0, и почему? - никак оно не отработает, цикл бля в 1С не умеет считать назад. Цикл Пока - может.
|
|||
14
dubolom
27.12.21
✎
14:58
|
(13) зачетная опечатка
|
|||
15
Мультук
гуру
27.12.21
✎
14:58
|
(13)
Очевидно, что цикл для сч = 0 по -1 Цикл сообщить("Мы в цикле"); КонецЦикла; выполнется как сч = 0; Пока сч <= -1 Цикл КонецЦикла; Будет ли проинициализирована "сч" -- не знаю. |
|||
16
lEvGl
гуру
27.12.21
✎
14:59
|
(13) новогоднее настроение!! та ра та ра та ра тата та ра та ра та раааа))
|
|||
17
ХДС
27.12.21
✎
15:11
|
Натурные испытания показали что условие не выполняется.
А вот почему? |
|||
18
Kassern
27.12.21
✎
15:16
|
(17) поэтому что это обычное условие, которое равно Ложь, поэтому в цикл и не заходит
|
|||
19
Serg_1960
27.12.21
✎
15:20
|
Строго говоря, автор не спрашивал про количество итераций цикла - вопрос был "Как отработает такое условие при Количество = 0?".
Отвечаю: результат условия = -1. Ваш КО. |
|||
20
mistеr
27.12.21
✎
15:24
|
(17) Условие проверяется ПЕРЕД выполнением тела цикла.
|
|||
21
Serg_1960
27.12.21
✎
15:26
|
(17) "Натурные испытания показали что условие не выполняется" - Вы всё напутали: условие - выполняется, а цикл с предусловием - не выполняется.
|
|||
22
ХДС
27.12.21
✎
15:34
|
(21) Не выполняются ни условие, ни цикл?
|
|||
23
Serg_1960
27.12.21
✎
15:49
|
(22) "Максимальное значение счетчика цикла... вычисляется однократно перед началом цикла и не может быть изменено внутри цикла"(Синтакс-помощник)
|
|||
24
Fragster
гуру
27.12.21
✎
15:51
|
вот на партнерском хороший кусок из типовых https://partners.v8.1c.ru/forum/topic/1862941
|
|||
25
Fragster
гуру
27.12.21
✎
15:53
|
для тех, у кого нет доступа: https://i.imgur.com/8MFfxQT.png
|
|||
26
Fragster
гуру
27.12.21
✎
15:54
|
правда про то, что присвоение происходит до вычисления правой части, не написано
|
|||
27
Serg_1960
27.12.21
✎
16:06
|
(26) Левые и правые части условия рассчитываются и присваиваются автономно и независимо друг от друга до проверки условия цикла :)
"Л-логика"(с) |
|||
28
Serg_1960
27.12.21
✎
16:11
|
Пример для наглядности вышесказанного:
Для i = -2 По -1 Цикл Сообщить(i); КонецЦикла; Сообщить(i); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |