Имя: Пароль:
1C
 
Выполнить, останавливается только на 1 значении массива
0 Александр056
 
23.03.16
14:16
Собственно вопрос, Выполнить, останавливается только на 1 значении массива
код:
Для Каждого Обработчик Из Обработчики Цикл        Выполнить(Обработчик + ".ЗаполнитьПоказателиТекущихДел(РасчитанныеПоказатели, КэшируемыеЗначения);");
    КонецЦикла;
в Обработчики, лежит массив, ряд значений, отладчиком останавливается только на 1 проходе... если добавлю перед выполнить сообщить, все выведет, но остановится опять же 1 раз, оставлю только строку сообщить в цикле, будет останавливаться каждый раз, что такого особенного в Выполнить? справка не предупреждает.
1 George Wheels
 
23.03.16
14:35
Первый же обработчик вызывает исключение.
Попробуй использовать

Попытка
Исключение
ОписаниеОшибки...
2 Александр056
 
23.03.16
14:43
ок попробую, просто я вижу результат, все рассчитано
3 Александр056
 
23.03.16
14:49
(1) нету исключений
4 sash-ml
 
23.03.16
15:13
попробуй  Выполнить(сокрлп(Обработчик )...
5 lxs
 
23.03.16
15:28
(0) поставь останов на КонецЦикла
6 Александр056
 
23.03.16
15:37
(5) не останавливается
7 lxs
 
23.03.16
16:00
Для Индекс = 1 по 3 цикл
    Выполнить("Сообщить(""хелло, ворлд"")");
КонецЦикла;



Останов отработал во всех трех итерациях.

Что есть "Обработчик"?
8 Sabbath
 
23.03.16
18:19
А что-то дальше по циклу после Выполнить есть?
9 Sabbath
 
23.03.16
18:19
Прошел бы в отладчике и увидел, на каком моменте вылетает из цикла
10 Александр056
 
23.03.16
19:54
(9) сразу как только проходит строку Выполнить, все после нее даже на конеццикла не встает
11 Александр056
 
23.03.16
19:55
(7) обработчик это массив заполняется так:
Обработчики.Добавить("Справочники.СоглашенияСКлиентами");
    
    // СделкиСКлиентами (1ч)
    Обработчики.Добавить("Справочники.СделкиСКлиентами");
    
    // КоммерческиеПредложенияКлиентам (2ч)
    Обработчики.Добавить("Документы.КоммерческоеПредложениеКлиенту");
    
    // ЗаказыКлиентов (4ч)
    Обработчики.Добавить("Документы.ЗаказКлиента");
    
    // ЗаявкиНаВозвратТоваровОтКлиентов (4ч)
    Обработчики.Добавить("Документы.ЗаявкаНаВозвратТоваровОтКлиента");
    
    // ДоговорыСКлиентами (2ч)
    // ДоговорыСПоставщиками (2ч)
    Обработчики.Добавить("Справочники.ДоговорыКонтрагентов");
    
    // СоглашенияСПоставщиками (2ч)
    Обработчики.Добавить("Справочники.СоглашенияСПоставщиками");
    
    // ЗаказыПоставщикам (4ч)
    Обработчики.Добавить("Документы.ЗаказПоставщику");
    
    // ЗаявкиНаОплату (2ч)
    Обработчики.Добавить("Документы.ЗаявкаНаРасходованиеДенежныхСредств");
    
    // ЗаданияТорговымПредставителям (3ч)
    Обработчики.Добавить("Документы.ЗаданиеТорговомуПредставителю");
    
    // РаспоряженияНаПоступление (1т)
    Обработчики.Добавить("Обработки.УправлениеПоступлением");
    
    // РаспоряженияНаОтгрузку (1т)
    Обработчики.Добавить("Обработки.УправлениеОтгрузкой");
    
    // ДоверенностиНаПолучениеТоваров (4ч)
    Обработчики.Добавить("Документы.ДоверенностьВыданная");
    
    // ПеремещенияТоваров (2ч)
    Обработчики.Добавить("Документы.ПеремещениеТоваров");
12 Записьдампа
 
23.03.16
20:31
(11) Выброси "Выполнить" нахрен. Складывай в массив вместо строк сами менеджеры объектов и вызывай в цикле Обработчик.ЗаполнитьПоказателиТекущихДел непосредственно.
Или у тебя там еще и передача массива с клиента?
13 Александр056
 
23.03.16
20:45
(12) нет, из массива как раз формируется строка, которая вызывает процедуру.
14 Александр056
 
23.03.16
20:45
(12) код типовой))
15 Записьдампа
 
23.03.16
20:48
(14) и чо? Его надо развернуть на Мекку т совершить над ним намаз?
16 ВРедная
 
23.03.16
21:21
(14) Смотри, что там за типовой код вызывается в "Обработчик + ".ЗаполнитьПоказателиТекущихДел(РасчитанныеПоказатели, КэшируемыеЗначения)"
17 hhhh
 
23.03.16
21:31
(14) а почему через задний проход делаете? Делайте по простому

Для Каждого Менеджер Из Менеджеры Цикл    
        Менеджер.ЗаполнитьПоказателиТекущихДел(РасчитанныеПоказатели, КэшируемыеЗначения);
    КонецЦикла;


и

Менеджеры = Новый Массив;
Менеджеры.Добавить(Справочники.СоглашенияСКлиентами);
Менеджеры.Добавить(Справочники.СделкиСКлиентами);

и т.д.
18 Записьдампа
 
23.03.16
21:38
(17) Отличная иллюстрация к (12), спасибо!
19 Александр056
 
24.03.16
07:56
(17) там по сути тоже самое, только строка формируется. в массив строки загоняются... я понимаю что суть проста, но непонятно что за фокусы с Выполнить, это норм для этой функции?
20 sash-ml
 
24.03.16
10:15
может есть реквизит с именем "обработчик"?
переименуй в цикле на "Обработчик123"
21 Александр056
 
24.03.16
13:58
(20) нету
22 aleks_default
 
24.03.16
14:15
ну так может у тебя  в процедуре ЗаполнитьПоказателиТекущихДел() где-то "Прервать;" стоит?
23 Aprobator
 
24.03.16
14:47
(0) Не верю. Модулях ЗаполнитьПоказателиТекущихДел - в менеджерах соответствующих объектов точки останова ставил для проверки?
24 Записьдампа
 
24.03.16
14:51
(22) Куда катится мир...

Я бы уж лучше предположил, что в массиве есть строка "Продолжить; //"
25 Александр056
 
24.03.16
15:07
(23) да ставил, останавливается
26 aleks_default
 
24.03.16
17:58
(24) не понял, куда он катится?
27 Записьдампа
 
24.03.16
22:53
(26) В задницу, братушка. Все стремится к идеальной форме - шару, и катится по наклонной. "Прервать" внутри процедуры - это практически next grade тебе и уважение, блд.
28 Александр056
 
31.03.16
09:24
апну так на всякий.... это косяк платформы, на сайте 1с в списках ошибок нашел,... 8.3.7.2008 а исправлено будет в 8.3.8....гады, голову сломал...
29 Александр056
 
31.03.16
09:25
Код ошибки: 10159704
Код(ы) обращения: SW1016493
Статус: Исправлена в будущей версии Зарегистрирована: 02.03.2016
Исправлена:
"Технологическая платформа", версия 8.3.8

Описание:

                            После выполнения оператора Выполнить не работают точки останова и не выполняется пошаговая отладка.