|
Цикл Для каждого. Итератор для значения не определен |
☑ |
0
nlv-lara
28.11.16
✎
14:22
|
Добрый день.
Выпадает ошибка в стандартном модуле разработчика при отправке документа на печать - итератор для значения не определен.
Эта ошибка возникает только на одном документе (документ добавлялся в конфу), при этом все нормально срабатывает на всех остальных документах (также добавленных в конфу самостоятельно). Код перепроверен сто раз.
Конфигурация 1C:CRM, редакция 2.0 (2.0.12.7)
В чем может быть причина?
|
|
1
Fish
гуру
28.11.16
✎
14:23
|
Отладчик знает.
|
|
2
Волшебник
модератор
28.11.16
✎
14:23
|
Отправьте модуль разработчику на доработку
|
|
3
nlv-lara
28.11.16
✎
14:25
|
(2) Невозможно, конфа не на поддержке.
|
|
4
FIXXXL
28.11.16
✎
14:25
|
(0) причина в коде
но ты его не показывай
|
|
5
nlv-lara
28.11.16
✎
14:29
|
Функция СформироватьПечатнуюФормуБСО(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
ТабДок = Новый ТабличныйДокумент;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_БСО";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПКО.Дата,
| ПКО.Номер,
| ПКО.НомерЗаказа КАК Заказ,
| ПКО.Плательщик КАК Клиент,
| ПКО.Сумма
|ИЗ
| Документ.ПКО КАК ПКО
|ГДЕ
| ПКО.Ссылка В(&МассивОбъектов)";
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПКО.БСО");
Выборка = Запрос.Выполнить().Выбрать();
................
|
|
6
nlv-lara
28.11.16
✎
14:31
|
(5) Процедура СформироватьПечатныеФормы(ИмяМенеджераПечати, Знач ИменаМакетов, МассивОбъектов, ПараметрыПечати,
КоллекцияПечатныхФорм, ОбъектыПечати = Неопределено, ПараметрыВывода) Экспорт
СписокПолучателей = Новый СписокЗначений;
Для Каждого Док из МассивОбъектов Цикл // Здесь вылетает
................
|
|
7
Fish
гуру
28.11.16
✎
14:32
|
(6) Поставь здесь точку останова, и посмотри в отладчике, чему равен МассивОбъектов. Вангую, что в случае вылета, там не массив.
|
|
8
nlv-lara
28.11.16
✎
14:34
|
(7) Все верно, во время вылета там не Массив, а ссылка на документ.
Но разобраться почему, не могу.
|
|
9
Fish
гуру
28.11.16
✎
14:35
|
(8) Надо смотреть, откуда вызывается СформироватьПечатныеФормы() и где происходит инициализация переменной МассивОбъектов.
|
|
10
catena
28.11.16
✎
14:36
|
(8)Поставь точку останова, дождись остановки и посмотри стек вызовов.
|
|
11
Сияющий Асинхраль
28.11.16
✎
14:43
|
Варианта два, один уже сказали, второй проще: проверять тип объекта МассивОбъектов, если он не представляет собой массив, обработывать отдельно. Первый вариант будет правильнее, второй вариант - для ленивых...
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой