Прошу помощи! 8.3 БП (упр.ф), не типовой документ, модуль менеджера,
Вывожу на печать из нескольких ТЧ строки и происходит какое то… если несколько строк в тч спецодежда, то выводит только вторую строку, а из тч спецоснастка выводит как положено единственную строчку , если в тч спецодежда одна строка , то ее выводит нормально , а из тч спецоснастка выводит два раза одну и ту же единственную строку

```1c
    Функция ПечатьНакладная (МассивОбъектов, ОбъектыПечати)

    УстановитьПривилегированныйРежим(Истина);
    Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.ПФ_MXL_Накладная");

    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ПолеСверху = 10;
    ТабличныйДокумент.ПолеСнизу = 10;
    ТабличныйДокумент.ПолеСправа = 0;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_МойМакет_Макет";

    Заголовок = Макет.ПолучитьОбласть("Заголовок");
    Отправитель = Макет.ПолучитьОбласть("Отправитель");
    Получатель = Макет.ПолучитьОбласть("Получатель");
    ШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    Строка = Макет.ПолучитьОбласть("Строка");

    ЗапросЗаголовок =Новый Запрос;
    ЗапросЗаголовок.УстановитьПараметр("МассивОбъектов", МассивОбъектов);

    ЗапросЗаголовок.Текст =
    "ВЫБРАТЬ
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка КАК Ссылка,
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.ФизЛицоОтправитель КАК ФизЛицоОтправитель,
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.ФизЛицоПолучатель КАК ФизЛицоПолучатель
    |ИЗ
    | Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря КАК ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря
    |ГДЕ
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка В(&МассивОбъектов)";

    РезультатЗаголовок = ЗапросЗаголовок.Выполнить().Выбрать();
    Пока РезультатЗаголовок.Следующий() Цикл
    Дата = РезультатЗаголовок.Ссылка.Дата;
    Номер = РезультатЗаголовок.Ссылка.Номер;
    ФизЛицоОтправитель = РезультатЗаголовок.Ссылка.ФизЛицоОтправитель;
    ФизЛицоПолучатель = РезультатЗаголовок.Ссылка.ФизЛицоПолучатель;

    Заголовок.Параметры.ТекстЗаголовка = "Накладная на перемещение " + " № " + Номер + "от " + Формат(Дата, "ДФ='дд ММММ гггг'") + " г.";
    Отправитель.Параметры.ФизЛицоОтправитель= ФизЛицоОтправитель;
    Получатель.Параметры.ФизЛицоПолучатель = ФизЛицоПолучатель;

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

    КонецЦикла;

    ////Для того, что бы получит единицу измерения и представление в виде кода

    ////Спецодежда
    ЗапросСпецодежда = Новый Запрос;

    ЗапросСпецодежда.Текст =
    "ВЫБРАТЬ
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Спецодежда.(
    | Номенклатура КАК Номенклатура,
    | Количество КАК Количество,
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецодежда.НомерСтроки КАК НомерСтроки,
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецодежда.Номенклатура.Код КАК НоменклатураКод,
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецодежда.Номенклатура.ЕдиницаИзмерения КАК НоменклатураЕдиницаИзмерения
    | ) КАК Спецодежда,
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка КАК Ссылка
    |ИЗ
    | Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря КАК ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Спецодежда КАК ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецодежда
    | ПО ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка = ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецодежда.Ссылка
    |ГДЕ
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка В(&МассивОбъектов)";
    ЗапросСпецодежда.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    РезультатСпецодежда = ЗапросСпецодежда.Выполнить().Выбрать();

    /////Спецоснастка
    ЗапросСпецоснастка = Новый Запрос;

    ЗапросСпецоснастка.Текст =
    "ВЫБРАТЬ
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка КАК Ссылка,
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Спецоснастка.(
    | Номенклатура КАК Номенклатура,
    | Количество КАК Количество,
    | НомерСтроки КАК НомерСтроки,
    | Номенклатура.Код КАК НоменклатураКод,
    | Номенклатура.ЕдиницаИзмерения КАК НоменклатураЕдиницаИзмерения
    | ) КАК Спецоснастка
    |ИЗ
    | Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря КАК ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Спецоснастка КАК ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецоснастк­а
    | ПО ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка = ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецоснастк­а.Ссылка
    |ГДЕ
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка В(&МассивОбъектов)";
    ЗапросСпецоснастка.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    РезультатСпецоснастка = ЗапросСпецоснастка.Выполнить().Выбрать();

    //////Инвентарь
    ЗапросИнвентарь = Новый Запрос;

    ЗапросИнвентарь.Текст =
    "ВЫБРАТЬ
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка КАК Ссылка,
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.ИнвентарьИХозяйственныеПринадлежности.(
    | НомерСтроки КАК НомерСтроки,
    | Номенклатура КАК Номенклатура,
    | Количество КАК Количество,
    | Номенклатура.Код КАК НоменклатураКод,
    | Номенклатура.ЕдиницаИзмерения КАК НоменклатураЕдиницаИзмерения
    | ) КАК ИнвентарьИХозяйственныеПринадлежности
    |ИЗ
    | Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря КАК ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Спецоснастка КАК ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецоснастк­а
    | ПО ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка = ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаряСпецоснастк­а.Ссылка
    |ГДЕ
    | ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Ссылка В(&МассивОбъектов)";
    ЗапросИнвентарь.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    РезультатИнвентарь = ЗапросИнвентарь.Выполнить().Выбрать();

    /////Строка

    КоличествоСпецодежда = Ложь;
    КоличествоСпецоснастка = Ложь;
    КоличествоИнвентарь = Ложь;
    НомерСтроки = 0;
    СтрокиСпецодежда = Ложь;
    СтрокиСпецоснастка = Ложь;
    КоличСпецодежда = 0;
    КоличСпецоснастка = 0;
    КоличИнвентарьИХозяйственныеПринадлежности = 0;
    КоличествоИтог = 0;
    Пока РезультатСпецодежда.Следующий() Цикл
    КоличествоСпецодежда = Истина;
    Для каждого стр Из РезультатСпецодежда.ссылка.Спецодежда Цикл
    Строка.Параметры.Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.02");
    Строка.Параметры.НомерСтр = стр.НомерСтроки;
    Строка.Параметры.Номенклатура = стр.Номенклатура;
    Строка.Параметры.Код = стр.Номенклатура.Код;
    Строка.Параметры.Количество = стр.Количество;
    Строка.Параметры.ЕдиницаИзмерения = стр.Номенклатура.ЕдиницаИзмерения;

    КонецЦикла;
    ТабличныйДокумент.Вывести(Строка);
    КоличСпецодежда = КоличСпецодежда + стр.Количество;
    //Сообщить(КоличествоИтог);

    КонецЦикла;

    Пока РезультатСпецоснастка.Следующий() Цикл
    КоличествоСпецоснастка = Истина;
    Для каждого стр Из РезультатСпецоснастка.Ссылка.Спецоснастка Цикл
    Строка.Параметры.Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.03");
    Строка.Параметры.НомерСтр = стр.НомерСтроки;
    Строка.Параметры.Номенклатура = стр.Номенклатура;
    Строка.Параметры.Код = стр.Номенклатура.Код;
    Строка.Параметры.Количество = стр.Количество;
    Строка.Параметры.ЕдиницаИзмерения = стр.Номенклатура.ЕдиницаИзмерения;
    КонецЦикла;
    ТабличныйДокумент.Вывести(Строка);

    КоличСпецоснастка = КоличСпецоснастка + стр.Количество;
    КонецЦикла;
    /////Инвентарь
    Пока РезультатИнвентарь.Следующий() Цикл
    КоличествоИнвентарь = Истина;
    Для каждого стр Из РезультатИнвентарь.Ссылка.ИнвентарьИХозяйственныеПринадлежности Цикл
    Строка.Параметры.Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.04");
    Строка.Параметры.НомерСтр = стр.НомерСтроки;
    Строка.Параметры.Номенклатура = стр.Номенклатура;
    Строка.Параметры.Код = стр.Номенклатура.Код;
    Строка.Параметры.Количество = стр.Количество;
    Строка.Параметры.ЕдиницаИзмерения = стр.Номенклатура.ЕдиницаИзмерения;

    КонецЦикла;
    ТабличныйДокумент.Вывести(Строка);
    КоличИнвентарьИХозяйственныеПринадлежности = КоличИнвентарьИХозяйственныеПринадлежности + стр.Количество;
    КонецЦикла;

    /////////Вывожу количество, если задейств несколько ТЧ

    Если КоличествоСпецодежда = Истина и КоличествоСпецоснастка = Истина и КоличествоИнвентарь = Истина Тогда
    КоличествоИтог = КоличСпецодежда + КоличСпецоснастка + КоличИнвентарьИХозяйственныеПринадлежности;
    ИначеЕсли КоличествоСпецодежда = Истина и КоличествоСпецоснастка = Истина и КоличествоИнвентарь = Ложь Тогда
    КоличествоИтог = КоличСпецодежда + КоличСпецоснастка;
    ИначеЕсли КоличествоСпецодежда = Истина и КоличествоСпецоснастка = Ложь и КоличествоИнвентарь = Истина Тогда
    КоличествоИтог = КоличСпецодежда + КоличИнвентарьИХозяйственныеПринадлежности;
    ИначеЕсли КоличествоСпецодежда = Ложь и КоличествоСпецоснастка = Истина и КоличествоИнвентарь = Истина Тогда
    КоличествоИтог = КоличСпецоснастка + КоличИнвентарьИХозяйственныеПринадлежности;
    ИначеЕсли КоличествоСпецодежда = Истина и КоличествоСпецоснастка = Ложь и КоличествоИнвентарь = Ложь Тогда
    КоличествоИтог = КоличСпецодежда;
    ИначеЕсли КоличествоСпецодежда = Ложь и КоличествоСпецоснастка = Истина и КоличествоИнвентарь = Ложь Тогда
    КоличествоИтог = КоличСпецоснастка;
    ИначеЕсли КоличествоСпецодежда = Ложь и КоличествоСпецоснастка = Ложь и КоличествоИнвентарь = Истина Тогда
    КоличествоИтог = КоличИнвентарьИХозяйственныеПринадлежности;
    КонецЕсли;

    Итоги = Макет.ПолучитьОбласть("Итоги");
    Итоги.Параметры.КоличествоИтог = КоличествоИтог;
    ТабличныйДокумент.Вывести(Итоги);
    Подвал = Макет.ПолучитьОбласть("Подвал");
    ТабличныйДокумент.Вывести(Подвал);

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

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

    КонецФункции // ()
```
---
РезультатСпецоснастка.Ссылка.Спецоснастка - так не надо делать. Все данные должны быть получены в запросе
---
Если будет печать сразу нескольких документов то у тебя сразу на печать выйдет тройная шапка
---
РезультатСпецоснастка.Ссылка.Спецоснастка - так не надо делать. Все данные должны быть получены в запросе
---
У вас "ТабличныйДокумент.Вывести(Строка);" находится вне цикла по перебору строк тчСпецодежка.
---
```1c
    Если КоличествоСпецодежда = Истина и КоличествоСпецоснастка = Истина и КоличествоИнвентарь = Истина Тогда
    КоличествоИтог = КоличСпецодежда + КоличСпецоснастка + КоличИнвентарьИХозяйственныеПринадлежности;
    ИначеЕсли КоличествоСпецодежда = Истина и КоличествоСпецоснастка = Истина и КоличествоИнвентарь = Ложь Тогда
    КоличествоИтог = КоличСпецодежда + КоличСпецоснастка;
    ИначеЕсли КоличествоСпецодежда = Истина и КоличествоСпецоснастка = Ложь и КоличествоИнвентарь = Истина Тогда
    КоличествоИтог = КоличСпецодежда + КоличИнвентарьИХозяйственныеПринадлежности;
    ИначеЕсли КоличествоСпецодежда = Ложь и КоличествоСпецоснастка = Истина и КоличествоИнвентарь = Истина Тогда
    КоличествоИтог = КоличСпецоснастка + КоличИнвентарьИХозяйственныеПринадлежности;
    ИначеЕсли КоличествоСпецодежда = Истина и КоличествоСпецоснастка = Ложь и КоличествоИнвентарь = Ложь Тогда
    КоличествоИтог = КоличСпецодежда;
    ИначеЕсли КоличествоСпецодежда = Ложь и КоличествоСпецоснастка = Истина и КоличествоИнвентарь = Ложь Тогда
    КоличествоИтог = КоличСпецоснастка;
    ИначеЕсли КоличествоСпецодежда = Ложь и КоличествоСпецоснастка = Ложь и КоличествоИнвентарь = Истина Тогда
    КоличествоИтог = КоличИнвентарьИХозяйственныеПринадлежности;
    КонецЕсли;
```

достаточно

```1c
    КоличествоИтог = КоличСпецодежда + КоличСпецоснастка + КоличИнвентарьИХозяйственныеПринадлежности;
```
без всяких проверок и условий

в любом случае итог будет правильный ведь если , какая-то табчасть не будет заполнена то и количество будет равно 0 (так как ты эти переменные уже определила )
---
весь вывод строк в перебор закинь - они все вне цикла