|
Выполнить, останавливается только на 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 Описание: После выполнения оператора Выполнить не работают точки останова и не выполняется пошаговая отладка. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |