Имя: Пароль:
1C
1С v8
Итератор для значения не определен.
,
0 Новичок10
 
31.05.19
11:37
Доброе утро.
Нужно программно у всех бизнес процессов Согласование в табличной части Исполнители проставить пометку Пройден = Истина. Написал процедуру, но не работает.  Но никак не пойму почему. Подскажите, пожалуйста.
&НаСервере
Процедура кнопкаНаСервере()
    
БП = БизнесПроцессы.Согласование.Выбрать();
Для Каждого Б из БП цикл
    Для Каждого Ис из Б.Исполнители Цикл
        ИС.Пройден = Истина;
    КонецЦикла;
    Б.Записать();
    КонецЦикла;
    
КонецПроцедуры
1 Новичок10
 
31.05.19
11:37
1с ругается : Итератор для значения не определен.
2 dka80
 
31.05.19
11:39
БП = БизнесПроцессы.Согласование.Выбрать();

    Для Каждого Ис из БП.Исполнители Цикл
        ИС.Пройден = Истина;
    КонецЦикла;
    БП.Записать();
3 Новичок10
 
31.05.19
11:42
(2) Та же самая ошибка.
4 mikecool
 
31.05.19
11:42
(3) в отладчик, смотреть тип объекта у которого обходишь, думаешь
5 hhhh
 
31.05.19
11:43
(2) тут не Для каждого надо. Чего вы путаете?

Пока БП.Следующий() Цикл
6 ice777
 
31.05.19
11:49
(0) а Выгрузить?
У тебя скорее всего не коллекция и ходить не по чему
7 Новичок10
 
31.05.19
11:50
(5) Большое спасибо. Все получилось.

&НаСервере
Процедура кнопкаНаСервере()
    
БП = БизнесПроцессы.Согласование.Выбрать();
Пока БП.Следующий() Цикл
     БПОбъект = БП.Ссылка.ПолучитьОбъект();
     Для Каждого Строка из БПОбъект.Исполнители Цикл
         Строка.Пройден = Истина;
     КонецЦикла;
     БПОбъект.Записать();
КонецЦикла;

    
КонецПроцедуры