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

```1c
    Функция СформироватьПечатнуюФорму (СсылкаНаОбъект, ОбъектыПечати)
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетПечФормы = ПолучитьМакет("ПФ_MXL_МБ8");

    ОбластьШапки = МакетПечФормы.ПолучитьОбласть("Шапка");
    ОбластьШапки.Параметры.ПредставлениеОрганизации = СсылкаНаОбъект.Организация;
    ОбластьШапки.Параметры.Заголовок = "АКТ на списание материалов";

    ТабличныйДокумент.Вывести(ОбластьШапки);

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

    ТабличныйДокумент.Вывести(ОбластьСтроки);
    КонецЦикла;

    Возврат ТабличныйДокумент;

    КонецФункции
```

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

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

UPD. Делал по видео-уроку от самих 1С. :)
---
Вот все пишут, что ошибка в коде твоей функции. НО! Вы пишите, что ошибка при попытке прицепить печатную форму. Так вот скорее всего ошибка не в этой функции, а в функции регистрации обработки. Ошибку лучше искать через отладку. Отладкой пользоваться умеете? Или помочь по отладке?

И, кстати, есть хорошая универсальная печатная форма, оттуда много полезных фишек можно перенять https://infostart.ru/public/1038757/
---
ОбластьСтроки.Параметры.Счёт = ТекущаяСтрока.СчётУчёта;
меня вот этот участок смущает, сомневаюсь, что у параметра и/или колонки ТекущаяСтрока в наименовании присутствует буква "ё".
Чтобы проверить: отладка/точка останова/остановка по ошибке и посмотреть через табло или вычислить значение, что кроется в ТекущаяСтрока, а так же на макете в области "Строка" удостоверится в наличие параметра "Счёт".

(1) Итератор для значения не определен
И ещё, проверьте так же "СсылкаНаОбъект.ПеремещениеТоваров", из-за наличия этой ошибки тоже в нём нет уверенности. Может это и не таблица и её нельзя в цикле перебирать, вот и ошибка.
Всё равно поможет только отладка.
---
https://wiseadvice-it.ru/o-kompanii/blog/articles/iterator-dlya-znacheniya-ne-opredelen-v-1s-8-3/

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

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

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

У вас точно СсылкаНаОбъект.ПеремещениеТоваров, то есть у вас есть у объекта СсылкаНаОбъект, табличная часть ПеремещениеТоваров или вы название документа "ПеремещениеТоваров" случайно бухнули в свойства СсылкаНаОбъект, как табличную часть?
---
Если у вас внешняя печатная форма, то для её отладки нужно создать форму в обработке печатной формы, ну и вызвать функцию печати с каким-либо документом
---
Обычно ещё в сообщении об ошибке указывается сам код, вызывающий оишбку, и номер строки в модуле.
Но ошибка "Итератор для значения не определен" указывает на перебор коллекции.
Здесь я вижу только
```1c
    Для Каждого ТекущаяСтрока из СсылкаНаОбъект.ПеремещениеТоваров Цикл
```

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

```1c
    Для Каждого ТекущаяСтрока из СсылкаНаОбъект.Товары Цикл
```

Хотя это тоже не правильно, лучше всего запросом получить данные табличной части и потом их выводить.
---
Да, вы правы, тут я допустил серьёзную ошибку. Но при замене "ПеремещениеТоваров" на имя табличной части этого документа, ошибка никуда не делась. Мне кажется, дело в том, что "СсылкаНаОбъект" в моём случае не определена, но я ума не приложу, как к этой ссылке подвязать нужный мне документ...
---
ну так передавать в функцию правильную ссылку на документ.
Вы же сейчас как я понял передаете какую-то лажу, почему и ругается...
---
для этого достаточно найти пример реализации внешней печатной формы, чтобы разобраться, как всё работает.
Если разработка ведется для какой-то типовой конфигурации на платформе 8.2 (обычные формы, не управляемые) , то внешняя печатная форма должна содержать реквизит обработки (не формы) с именем "СсылкаНаОбъект" и нужным типом. При вызове такой ВПФ конфигурация сама передает в неё ссылку на документ и вызывает экспортную функцию "Печать" из модуля объекта обработки. Дальше уже всё на совести разработчика.
Самый простой способ отладки - добавить в обработку свою форму, установив её в качестве основной, вывести на форму реквизит СсылкаНаОбъект и в обработчике нажатия кнопки "Выполнить" вызывать функцию "Печать".
---
Есть обработки типо такой https://infostart.ru/public/73691/ (только посвежее) через которые можно в большинстве случаев делать отладку печатных форм. Must have наряду с консолью запросов. Если стукнешься в личку могу поделиться.
---
Искать легко
---
Вот все пишут, что ошибка в коде твоей функции. НО! Вы пишите, что ошибка при попытке прицепить печатную форму. Так вот скорее всего ошибка не в этой функции, а в функции регистрации обработки. Ошибку лучше искать через отладку. Отладкой пользоваться умеете? Или помочь по отладке?

И, кстати, есть хорошая универсальная печатная форма, оттуда много полезных фишек можно перенять https://infostart.ru/public/1038757/
---
Кстати говоря, да, ошибка заключалась именно в функции регистрации. Ибо в справке самого предприятия нашёл эталонный вид функции, сделал так же и всё получилось.
---
В реквизитах обработки есть "СсылкаНаОбъект"?
---
Скорее всего
```1c
    Для Каждого ТекущаяСтрока из СсылкаНаОбъект.ПеремещениеТоваров.Товары Цикл
```