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

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

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


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

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



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

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

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

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

И ещё, проверьте так же "СсылкаНаОбъект.ПеремещениеТоваров", из-за наличия этой ошибки тоже в нём нет уверенности. Может это и не таблица и её нельзя в цикле перебирать, вот и ошибка.
Всё равно поможет только отладка.
10. AlexandrSmith 68 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 68 14.11.19 16:10 Сейчас в теме
(1) (10)

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


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

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

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

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

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день