Имя: Пароль:
1C
1С v8
Двойной заход в цикл
0 LittlePumpkin
 
17.08.20
20:17
Написал цикл в процедуре, прохожу его в дебаггере и вижу вот что: заходим в цикл, пробегаем его, выходим из цикла, доходим до слов "КонецПроцедуры" иии.... снова заходим в цикл! Что это за фигня и почему так происходит?
1 Momus
 
17.08.20
20:22
мб эта процедура вызывается в цикле?) Если уверен в коде, то очистка кэша не помешает. Для начала можно привести код
2 LittlePumpkin
 
17.08.20
20:23
Процедура Расш1_ПриОткрытииПосле(Отказ)

Для каждого итератор из Объект.Товары Цикл
    итератор.ПроцентПрибыли = 5;
    Сумма = Сумма + итератор.ПроцентПрибыли;
КонецЦикла;
КонецПроцедуры
3 LittlePumpkin
 
17.08.20
20:24
Код совсем небольшой, какого черта запускается повторный обход я не понимаю(
4 RomanYS
 
17.08.20
20:47
(0) Начни с начала: создал расширение, захватил процедуру...
Включи отладчик и по стеку вызовов определи почему (исходная) процедура вызывается дважды.
5 ReaLg
 
17.08.20
21:12
(0) Вангую: не 2 раза цикл пробегается при вызове процедуры, а процедура 2 раза дергается...
6 ReaLg
 
17.08.20
21:15
(4) Не дочитал :))
7 hhhh
 
17.08.20
22:45
(3) может Процедура Расш1_ПриОткрытииПосле к двум событиям привязана
8 zelyak
 
18.08.20
06:20
Версия сохранена ?
9 LittlePumpkin
 
18.08.20
07:26
Процедура действительно дергается два раза:
1)В ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
2) Непосредственно обрабатывает сама "После".
Охренеть весело. И как это заблокировать? Поставить условие перед циклом?
10 Галахад
 
гуру
18.08.20
08:12
(9) Ну, вроде как сейчас в "ПриОткрытии" ничего с данными не делают. Используют "ПриСозданииНаСервере".
11 uno-group
 
18.08.20
08:49
Сумма=0 может нужно все таки перед циклом прописать.
12 rudnitskij
 
18.08.20
15:15
(2) то есть процедура при каждом открытии добавляет 5 * ЧислоСтрок к сумме документа? При каждом открытии?
Интересно, что хотел заказчик...
13 rudnitskij
 
18.08.20
15:16
(11) перезапись данных документа при каждом открытии - что может быть прекраснее))
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой