Внешняя печатная форма.

1. BuryMeInVegas 14.11.19 14:19 Сейчас в теме
Добрый день! Столкнулся с проблемой, которую не могу сходу решить. Имеется внешняя печатная форма, вот код её формирования:

Функция СформироватьПечатнуюФорму (СсылкаНаОбъект, ОбъектыПечати)
	ТабличныйДокумент = Новый ТабличныйДокумент;
	МакетПечФормы = ПолучитьМакет("ПФ_MXL_МБ8");
	
	ОбластьШапки = МакетПечФормы.ПолучитьОбласть("Шапка");
	ОбластьШапки.Параметры.ПредставлениеОрганизации = СсылкаНаОбъект.Организация;
	ОбластьШапки.Параметры.Заголовок = "АКТ на списание материалов";
	
	ТабличныйДокумент.Вывести(ОбластьШапки);
	
	ОбластьСтроки = МакетПечФормы.ПолучитьОбласть("Строка");
	Для Каждого ТекущаяСтрока из СсылкаНаОбъект.ПеремещениеТоваров Цикл
		  ОбластьСтроки.Параметры.Счёт = ТекущаяСтрока.СчётУчёта;
		  ОбластьСтроки.Параметры.МатериалНаименование = ТекущаяСтрока.Номенклатура;
		  ОбластьСтроки.Параметры.Номенклатура = ТекущаяСтрока.КодСтроки;
		  ОбластьСтроки.Параметры.ЕдиницаИзмерения = ТекущаяСтрока.Упаковка;
		  ОбластьСтроки.Параметры.Количество = ТекущаяСтрока.КоличествоУпаковок; 
		  
		  ТабличныйДокумент.Вывести(ОбластьСтроки);
	 КонецЦикла;
	  
	 Возврат ТабличныйДокумент; 
		
КонецФункции
Показать


При попытке прицепить эту внешнюю обработку в режиме Предприятия, оно начинает ругаться на то, что "Итератор для значения не определен".

Я только начинаю постигать азы доработки типовых конфигураций (моя первая задача:)) и понятия не имею, что я сделал не так. Как решить этот момент?



UPD. Делал по видео-уроку от самих 1С. :)
+
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
12. Aleksandr_prof 192 14.11.19 18:05 Сейчас в теме +0.3 $m
Вот все пишут, что ошибка в коде твоей функции. НО! Вы пишите, что ошибка при попытке прицепить печатную форму. Так вот скорее всего ошибка не в этой функции, а в функции регистрации обработки. Ошибку лучше искать через отладку. Отладкой пользоваться умеете? Или помочь по отладке?

И, кстати, есть хорошая универсальная печатная форма, оттуда много полезных фишек можно перенять https://infostart.ru/public/1038757/
Niang; +1
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. aezdakov 5 14.11.19 14:31 Сейчас в теме
(1)
ОбластьСтроки.Параметры.Счёт = ТекущаяСтрока.СчётУчёта;

меня вот этот участок смущает, сомневаюсь, что у параметра и/или колонки ТекущаяСтрока в наименовании присутствует буква "ё".
Чтобы проверить: отладка/точка останова/остановка по ошибке и посмотреть через табло или вычислить значение, что кроется в ТекущаяСтрока, а так же на макете в области "Строка" удостоверится в наличие параметра "Счёт".

(1)
Итератор для значения не определен

И ещё, проверьте так же "СсылкаНаОбъект.ПеремещениеТоваров", из-за наличия этой ошибки тоже в нём нет уверенности. Может это и не таблица и её нельзя в цикле перебирать, вот и ошибка.
Всё равно поможет только отладка.
+
10. AlexandrSmith 69 14.11.19 15:43 Сейчас в теме
(1)

https://wiseadvice-it.ru/o-kompanii/blog/articles/iterator-dlya-znacheniya-ne-opredelen-v-1s-8-3/

Причины и решение ошибки
Возникновение окна с ошибкой о неопределенном итераторе чаще всего проявляется в двух случаях:

Неудачное обновление конфигурации;
Обращение через итератор к элементам объектов, не являющихся коллекциями – массивам, таблицам значений и другим.

Проблема в СсылкаНаОбъект.ПеремещениеТоваров
+
11. AlexandrSmith 69 14.11.19 16:10 Сейчас в теме
(1) (10)

Обращение через итератор к элементам объектов, не являющихся коллекциями – массивам, таблицам значений и другим.
Проблема в СсылкаНаОбъект.ПеремещениеТоваров


У вас точно СсылкаНаОбъект.ПеремещениеТоваров, то есть у вас есть у объекта СсылкаНаОбъект, табличная часть ПеремещениеТоваров или вы название документа "ПеремещениеТоваров" случайно бухнули в свойства СсылкаНаОбъект, как табличную часть?
+
2. Alexei_Siva 182 14.11.19 14:21 Сейчас в теме
Если у вас внешняя печатная форма, то для её отладки нужно создать форму в обработке печатной формы, ну и вызвать функцию печати с каким-либо документом
+
3. comptr 31 14.11.19 14:24 Сейчас в теме
Обычно ещё в сообщении об ошибке указывается сам код, вызывающий оишбку, и номер строки в модуле.
Но ошибка "Итератор для значения не определен" указывает на перебор коллекции.
Здесь я вижу только
Для Каждого ТекущаяСтрока из СсылкаНаОбъект.ПеремещениеТоваров Цикл

А точно у СсылкаНаОбъект есть табличная часть ПеремещениеТоваров?
Больше похоже, что СсылкаНаОбъект и есть ссылка на документ ПеремещениеТоваров, а в цикле нужно перебирать табличную часть "Товары".
Для Каждого ТекущаяСтрока из СсылкаНаОбъект.Товары Цикл

Хотя это тоже не правильно, лучше всего запросом получить данные табличной части и потом их выводить.
+
6. BuryMeInVegas 14.11.19 14:31 Сейчас в теме
(3) Да, вы правы, тут я допустил серьёзную ошибку. Но при замене "ПеремещениеТоваров" на имя табличной части этого документа, ошибка никуда не делась. Мне кажется, дело в том, что "СсылкаНаОбъект" в моём случае не определена, но я ума не приложу, как к этой ссылке подвязать нужный мне документ...
+
7. YannikAlx 43 14.11.19 14:37 Сейчас в теме
(6) ну так передавать в функцию правильную ссылку на документ.
Вы же сейчас как я понял передаете какую-то лажу, почему и ругается...
+
8. comptr 31 14.11.19 14:45 Сейчас в теме
(7) для этого достаточно найти пример реализации внешней печатной формы, чтобы разобраться, как всё работает.
Если разработка ведется для какой-то типовой конфигурации на платформе 8.2 (обычные формы, не управляемые) , то внешняя печатная форма должна содержать реквизит обработки (не формы) с именем "СсылкаНаОбъект" и нужным типом. При вызове такой ВПФ конфигурация сама передает в неё ссылку на документ и вызывает экспортную функцию "Печать" из модуля объекта обработки. Дальше уже всё на совести разработчика.
Самый простой способ отладки - добавить в обработку свою форму, установив её в качестве основной, вывести на форму реквизит СсылкаНаОбъект и в обработчике нажатия кнопки "Выполнить" вызывать функцию "Печать".
+
4. darkultro37 10 14.11.19 14:30 Сейчас в теме
Есть обработки типо такой https://infostart.ru/public/73691/ (только посвежее) через которые можно в большинстве случаев делать отладку печатных форм. Must have наряду с консолью запросов. Если стукнешься в личку могу поделиться.
+
9. comptr 31 14.11.19 14:49 Сейчас в теме
12. Aleksandr_prof 192 14.11.19 18:05 Сейчас в теме +0.3 $m
Вот все пишут, что ошибка в коде твоей функции. НО! Вы пишите, что ошибка при попытке прицепить печатную форму. Так вот скорее всего ошибка не в этой функции, а в функции регистрации обработки. Ошибку лучше искать через отладку. Отладкой пользоваться умеете? Или помочь по отладке?

И, кстати, есть хорошая универсальная печатная форма, оттуда много полезных фишек можно перенять https://infostart.ru/public/1038757/
Niang; +1
15. BuryMeInVegas 15.11.19 08:30 Сейчас в теме
(12)Кстати говоря, да, ошибка заключалась именно в функции регистрации. Ибо в справке самого предприятия нашёл эталонный вид функции, сделал так же и всё получилось.
+
13. a_kudaev 201 14.11.19 23:19 Сейчас в теме
В реквизитах обработки есть "СсылкаНаОбъект"?
+
14. v3rter 15.11.19 01:38 Сейчас в теме
Скорее всего
Для Каждого ТекущаяСтрока из СсылкаНаОбъект.ПеремещениеТоваров.Товары Цикл
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот