Добрый день. Помогите, пожалуйста, делаю внешнюю печатную форму по заказам поставщика. Необходимо вывести номенклатуру и рядом в одной ячейке вывести характеристики. Получилось вывести характеристики, но в разные ячейки, а в одну сделать не получается. Может кто сталкивался? Или есть где почитать?
Так думаю,что запросом не получится сделать, может надо создавать список значений или что-то такое для характеристик по каждой номенклатуре и потом его уже в ячейку выводить?
Скрин как есть и как примерно должно быть приложены.
---
Нда
Во первых чуть поправьте запрос

```1c
    |;
    |////////////////////////////////////////////////////////////­­//////////////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |ХарДопРеквизиты.Свойство КАК Свойство,
    |ХарДопРеквизиты.Значение КАК Значение,
    |Товары.Характеристика КАК Характеристика
    |ИЗ
    | Документ.ЗаказПоставщику.Товары КАК Товары
    | Внутреннее СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарДопРеквизиты
    | ПО Товары.Характеристика = ХарДопРеквизиты.Ссылка
```

Далее просто замените функцию, я там в комментариях написал

```1c
    Процедура ЗаполнитьТабличныйДокументЗаказаНаТоварыУслуги(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати)

    ШаблонОшибкиТовары = НСтр("ru = 'В документе %1 отсутствуют товары. Печать %2 не требуется'");
    ШаблонОшибкиЭтапы = НСтр("ru = 'В документе %1 отсутствуют этапы оплаты. Печать %2 не требуется'");

    ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах");
    ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах");

    ДанныеПечати = ДанныеДляПечати.РезультатПоШапке.Выбрать();
    ЭтапыОплаты = ДанныеДляПечати.РезультатПоЭтапамОплаты.Выгрузить();
    Товары = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить();
    //++bmk74 << 18.09.2018 >> Здесь выборку получаем по доп характеристикам
    ВыборкаДопХарактеристик = ДанныеДляПечати.РезультатПоДопХарактеристикам.Выбрать();
    //--bmk74

    ПервыйДокумент = Истина;
    КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
    ВыводитьКоды = Не ПустаяСтрока(КолонкаКодов);

    Пока ДанныеПечати.Следующий() Цикл

    Макет = ПолучитьМакет("ПФ_MXL_ЗаказПоставщику");

    СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);

    ТаблицаТовары = Товары.НайтиСтроки(СтруктураПоиска);

    Если ТаблицаТовары.Количество() = 0 Тогда

    ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    ШаблонОшибкиТовары,
    ДанныеПечати.Ссылка,
    ДанныеПечати.ПредставлениеВОшибке);

    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ДанныеПечати.Ссылка);
    Продолжить;

    КонецЕсли;

    ТаблицаЭтапыОплаты = ЭтапыОплаты.НайтиСтроки(СтруктураПоиска);

    Если ПервыйДокумент Тогда
    ПервыйДокумент = Ложь;
    Иначе
    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;

    НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

    ВыводитьВидЦены = Ложь;
    Для Каждого СтрокаТовары Из ТаблицаТовары Цикл

    Если ЗначениеЗаполнено(СтрокаТовары.ВидЦеныИсполнителя) Тогда
    ВыводитьВидЦены = Истина;
    Прервать;
    КонецЕсли;

    КонецЦикла;

    ЗаголовокСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ТаблицаТовары, ДанныеПечати.ИспользоватьАвтоСкидки);
    ЕстьСкидки = ЗаголовокСкидки.ЕстьСкидки;
    ПоказыватьНДС = ДанныеПечати.ПоказыватьНДСВСтроках И ДанныеПечати.УчитыватьНДС;

    #Область ОпределениеИменЗаголовковОбластей

    ЕстьДопПараметр = ЕстьСкидки Или ВыводитьВидЦены Или ПоказыватьНДС;
    ДвойнойДопПараметр = (ЕстьСкидки И ВыводитьВидЦены) Или (ЕстьСкидки И ПоказыватьНДС);

    Если ДвойнойДопПараметр Тогда
    ПостфиксКолонок = "СДвумяПараметрами";
    ИначеЕсли ЕстьДопПараметр Тогда
    ПостфиксКолонок = "СОднимПараметром";
    Иначе
    ПостфиксКолонок = ";
    КонецЕсли;

    ОбластьКолонкаТовар = Макет.Область("Товар" + ПостфиксКолонок);

    Если Не ВыводитьКоды Тогда

    Если ДвойнойДопПараметр Тогда
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.35;
    ИначеЕсли ЕстьДопПараметр Тогда
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.2;
    Иначе
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.14;
    КонецЕсли;

    КонецЕсли;

    Если ЕстьСкидки И ВыводитьВидЦены Тогда
    ПостфиксСтрок = "СУсловиемСоСкидкой";
    ИначеЕсли ЕстьСкидки И ПоказыватьНДС Тогда
    ПостфиксСтрок = "СНДССоСкидкой";
    ИначеЕсли ПоказыватьНДС Тогда
    ПостфиксСтрок = "СНДС";
    ИначеЕсли ЕстьСкидки Тогда
    ПостфиксСтрок = "СоСкидкой";
    ИначеЕсли ВыводитьВидЦены Тогда
    ПостфиксСтрок = "СУсловием";
    Иначе
    ПостфиксСтрок = ";
    КонецЕсли;

    #КонецОбласти

    #Область ОбластиМакета

    // ОБЛАСТЕЙ ТАБЛИЦЫ "ТОВАРЫ"

    ОбластьНомераШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ОбластьНомераСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ИспользоватьНаборы = Ложь;
    Если Товары.Колонки.Найти("ЭтоНабор") <> Неопределено Тогда
    ИспользоватьНаборы = Истина;
    ОбластьНомераСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|НомерСтроки");
    ОбластьНомераСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|НомерСтроки");
    ОбластьКодовСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|КолонкаКодов");
    ОбластьКодовСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|КолонкаКодов");
    ОбластьТоварСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|Товар" + ПостфиксКолонок);
    ОбластьТоварСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|Данные" + ПостфиксКолонок);
    ОбластьДанныхСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|Данные" + ПостфиксКолонок);
    КонецЕсли;

    ОбластьНомераПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ОбластьНомераНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|НомерСтроки");
    ОбластьКодовНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|КолонкаКодов");
    ОбластьТоварНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Товар" + ПостфиксКолонок);
    ОбластьДанныхНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Данные" + ПостфиксКолонок);

    ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");

    #КонецОбласти

    #Область ВыводШапки

    // ШАПКА - ЗАГОЛОВОК

    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ФормированиеПечатныхФорм.ВывестиЛоготипВТабличныйДокумент(Макет, ОбластьМакета, "Заголовок", ДанныеПечати.Организация);

    УстановитьПараметр(ОбластьМакета, "ТекстЗаголовка", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(
    ДанныеПечати,
    ДанныеПечати.ПредставлениеДокумента));

    ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(
    ТабличныйДокумент,
    Макет,
    ОбластьМакета,
    ДанныеПечати.Ссылка);

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

    // ШАПКА - ИСПОЛНИТЕЛЬ

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

    // ШАПКА - ЗАКАЗЧИК

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

    // ШАПКА - ГРУЗООТПРАВИТЕЛЬ

    Если ЗначениеЗаполнено(ДанныеПечати.Грузоотправитель) Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("Грузоотправитель");
    УстановитьПараметр(ОбластьМакета, "ПредставлениеГрузоотправителя", ОписаниеОрганизации(ДанныеПечати, "Грузоотправитель"));
    ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецЕсли;

    // ШАПКА - ГРУЗОПОЛУЧАТЕЛЬ

    Если ЗначениеЗаполнено(ДанныеПечати.Грузополучатель) Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("Грузополучатель");
    УстановитьПараметр(ОбластьМакета, "ПредставлениеГрузополучателя", ОписаниеОрганизации(ДанныеПечати, "Грузополучатель"));
    ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецЕсли;

    // ШАПКА - АДРЕС ДОСТАВКИ

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

    #КонецОбласти

    #Область ВыводТаблицыТовары

    // ТАБЛИЦА ТОВАРЫ - ШАПКА

    Если ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхШапки, "Скидка", ЗаголовокСкидки.Скидка);
    УстановитьПараметр(ОбластьДанныхШапки, "СуммаБезСкидки", ЗаголовокСкидки.СуммаСкидки);
    КонецЕсли;

    Если ВыводитьКоды Тогда
    УстановитьПараметр(ОбластьКодовШапки, "ИмяКолонкиКодов", КолонкаКодов);
    КонецЕсли;

    // ТАБЛИЦА ТОВАРЫ - СТРОКИ

    МассивПроверкиВывода = Новый Массив;
    МассивПроверкиВывода.Добавить(ОбластьНомераШапки);
    МассивПроверкиВывода.Добавить(ОбластьНомераПодвала);
    Если ПоказыватьНДС Тогда
    МассивПроверкиВывода.Добавить(ОбластьНомераНДС);
    КонецЕсли;
    МассивПроверкиВывода.Добавить(ОбластьСуммаПрописью);

    Сумма = 0;
    СуммаНДС = 0;
    ВсегоСкидок = 0;
    ВсегоБезСкидок = 0;

    НомерСтроки = 0;

    ПустыеДанные = НаборыСервер.ПустыеДанные();
    ВыводШапки = 0;

    СоответствиеСтавокНДС = Новый Соответствие;

    Для Каждого СтрокаТовары Из ТаблицаТовары Цикл
    //++bmk74 << 18.09.2018 >> Сбрасываем в ноль выборку, что бы она нашла нам нужные позиции
    ВыборкаДопХарактеристик.Сбросить();
    //--bmk74
    Если НаборыСервер.ИспользоватьОбластьНабор(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьКодовСтроки = ОбластьКодовСтрокиНабор;
    ОбластьНомераСтроки = ОбластьНомераСтрокиНабор;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиНабор;
    ОбластьТоварСтроки = ОбластьТоварСтрокиНабор;
    ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьКодовСтроки = ОбластьКодовСтрокиКомплектующие;
    ОбластьНомераСтроки = ОбластьНомераСтрокиКомплектующие;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиКомплектующие;
    ОбластьТоварСтроки = ОбластьТоварСтрокиКомплектующие;
    Иначе
    ОбластьКодовСтроки = ОбластьКодовСтрокиСтандарт;
    ОбластьНомераСтроки = ОбластьНомераСтрокиСтандарт;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиСтандарт;
    ОбластьТоварСтроки = ОбластьТоварСтрокиСтандарт;
    КонецЕсли;

    Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", Неопределено);
    Иначе
    НомерСтроки = НомерСтроки + 1;
    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", НомерСтроки);
    КонецЕсли;

    Если НомерСтроки = 0 И ВыводШапки <> 2 Тогда
    ВыводШапки = 1;
    КонецЕсли;

    МассивПроверкиВывода.Добавить(ОбластьНомераСтроки);

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

    Если (НомерСтроки = 1 И ВыводШапки = 0) ИЛИ (НомерСтроки = 0 И ВыводШапки = 1) Тогда

    ВыводШапки = 2;

    ВывестиШапку(ТабличныйДокумент, ОбластьНомераШапки, ОбластьКодовШапки, ОбластьТоварШапки, ОбластьДанныхШапки, ВыводитьКоды);
    МассивПроверкиВывода.Удалить(0);

    КонецЕслИ;

    Иначе

    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ВывестиШапку(ТабличныйДокумент, ОбластьНомераШапки, ОбластьКодовШапки, ОбластьТоварШапки, ОбластьДанныхШапки, ВыводитьКоды);

    КонецЕсли;

    МассивПроверкиВывода.Удалить(МассивПроверкиВывода.ВГраница());

    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", НомерСтроки);
    ТабличныйДокумент.Вывести(ОбластьНомераСтроки);

    Если ВыводитьКоды Тогда

    ИмяКолонки = КолонкаКодов;
    //Если ДанныеПечати.Тип = "ЗаказПоставщикуПоДаннымПоставщика" Тогда
    // ИмяКолонки = ИмяКолонки + "Исполнителя";
    //КонецЕсли;

    УстановитьПараметр(ОбластьКодовСтроки, "Артикул", СтрокаТовары[ИмяКолонки]);
    ТабличныйДокумент.Присоединить(ОбластьКодовСтроки);

    КонецЕсли;

    //Если ДанныеПечати.Тип = "ЗаказПоставщикуПоДаннымПоставщика" Тогда
    //
    // ПредставлениеНоменклатурыДляПечати = СтрокаТовары.НаименованиеНоменклатурыИсполнителя;
    //
    //Иначе

    //++bmk74 << 18.09.2018 >> Здесь выберем наши допХарактеристики НайтиСледующий
    // немного неправильно в прошлый раз написал...здесь в нашей выборке будет искаться нужная характеристика с ее свойствами

    СтрОтбора = Новый Структура("Характеристика",СтрокаТовары.Характеристика)
    ТекстХарактеристики = ";
    Пока ВыборкаДопХарактеристик.НайтиСледующий(СтрОтбора) Цикл
    ТекстХарактеристики = ТекстХарактеристики + ВыборкаДопХарактеристик.Свойство.Заголовок + ": " + ВыборкаДопХарактеристик.Значение + Символы.ПС;
    КонецЦикла;
    ТекстХарактеристики = Лев(СтрДлина(ТекстХарактеристики)-1);
    УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);

    // А вот тут вообщее все оооочень странно :)
    //ВыбДок = Документы.ЗаказПоставщику.Выбрать(НачалоДня(ТекущаяДата()),КонецДня(ТекущаяДата()));
    //Пока ВыбДок.Следующий() Цикл
    // Для Каждого СТр из ВыбДок.Товары цикл
    // Хар = Стр.Характеристика;
    // ТекстХарактеристики = ";
    // Для Каждого ДопРекв из Хар.ДополнительныеРеквизиты Цикл
    // ТекстХарактеристики = ТекстХарактеристики + ДопРекв.Свойство.Заголовок + ": " + ДопРекв.Значение + Символы.ПС;
    // //УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    // КонецЦикла;
    // УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    // Сообщить(ТекстХарактеристики);
    // КонецЦикла;
    //КонецЦикла;

    //--bmk74

    ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
    ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = СтрокаТовары.ЭтоВозвратнаяТара;
    ДополнительныеПараметрыПолученияНаименованияДляПечати.Содержание = СтрокаТовары.Содержание;

    ПредставлениеНоменклатурыДляПечати = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
    СтрокаТовары.НаименованиеПолное,
    СтрокаТовары.Характеристика,
    ,
    ,
    ДополнительныеПараметрыПолученияНаименованияДляПечати);

    ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(СтрокаТовары, ИспользоватьНаборы);
    УстановитьПараметр(ОбластьТоварСтроки, "Товар", ПрефиксИПостфикс.Префикс + ПредставлениеНоменклатурыДляПечати + ПрефиксИПостфикс.Постфикс);

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

    Если ЗаголовокСкидки.ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхСтроки, "СуммаСкидки", ?(ЗаголовокСкидки.ТолькоНаценка, - СтрокаТовары.СуммаСкидки, СтрокаТовары.СуммаСкидки));
    КонецЕсли;

    Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьДанныхСтроки.Параметры.Заполнить(ПустыеДанные);
    Иначе
    ОбластьДанныхСтроки.Параметры.Заполнить(СтрокаТовары);
    КонецЕсли;

    ТабличныйДокумент.Присоединить(ОбластьДанныхСтроки);

    Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
    Сумма = Сумма + СтрокаТовары.Сумма;
    СуммаНДС = СуммаНДС + СтрокаТовары.СуммаНДС;

    Если ЕстьСкидки Тогда
    ВсегоСкидок = ВсегоСкидок + СтрокаТовары.СуммаСкидки;
    ВсегоБезСкидок = ВсегоБезСкидок + СтрокаТовары.СуммаБезСкидки;
    КонецЕсли;

    Если ДанныеПечати.УчитыватьНДС Тогда

    СуммаНДСПоСтавке = СоответствиеСтавокНДС[СтрокаТовары.СтавкаНДС];

    Если СуммаНДСПоСтавке = Неопределено Тогда
    СуммаНДСПоСтавке = 0;
    КонецЕсли;

    СоответствиеСтавокНДС.Вставить(СтрокаТовары.СтавкаНДС, СуммаНДСПоСтавке + СтрокаТовары.СуммаНДС);

    КонецЕсли;
    КонецЕсли;

    КонецЦикла;

    // ТАБЛИЦА ТОВАРЫ - ПОДВАЛ

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

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

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

    Если ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхПодвала, "ВсегоСкидок", ?(ЗаголовокСкидки.ТолькоНаценка, -ВсегоСкидок, ВсегоСкидок));
    УстановитьПараметр(ОбластьДанныхПодвала, "ВсегоБезСкидок", ВсегоБезСкидок);
    КонецЕсли;

    УстановитьПараметр(ОбластьДанныхПодвала, "Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма));
    ТабличныйДокумент.Присоединить(ОбластьДанныхПодвала);

    // ТАБЛИЦА ТОВАРЫ - ИТОГО НДС

    Если Не ДанныеПечати.УчитыватьНДС Тогда

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

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

    ТабличныйДокумент.Присоединить(ОбластьТоварНДС);

    УстановитьПараметр(ОбластьДанныхНДС, "НДС", НСтр("ru='Без налога (НДС)'"));
    УстановитьПараметр(ОбластьДанныхНДС, "ВсегоНДС", "-");

    ТабличныйДокумент.Присоединить(ОбластьДанныхНДС);

    Иначе

    Для Каждого ТекСтавкаНДС Из СоответствиеСтавокНДС Цикл

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

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

    ТабличныйДокумент.Присоединить(ОбластьТоварНДС);

    УстановитьПараметр(ОбластьДанныхНДС, "НДС", ФормированиеПечатныхФорм.ТекстНДСПоСтавке(ТекСтавкаНДС.Ключ, ДанныеПечати.ЦенаВключаетНДС));
    УстановитьПараметр(ОбластьДанныхНДС, "ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(ТекСтавкаНДС.Значение, , "-"));

    ТабличныйДокумент.Присоединить(ОбластьДанныхНДС);

    КонецЦикла;

    КонецЕсли;

    #КонецОбласти

    #Область ВыводПодвала

    // ПОДВАЛ - СУММА ПРОПИСЬЮ

    СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС);

    ТекстИтоговойСтроки = НСтр("ru='Всего наименований %1, на сумму %2'");

    ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    ТекстИтоговойСтроки,
    НомерСтроки, // Количество
    ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта)); // Сумма

    УстановитьПараметр(ОбластьСуммаПрописью, "ИтоговаяСтрока", ИтоговаяСтрока);
    УстановитьПараметр(ОбластьСуммаПрописью, "СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(
    СуммаКПрописи,
    ДанныеПечати.Валюта));

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

    // ПОДВАЛ - ЭТАПЫ ГРАФИКА ОПЛАТЫ

    Если ТаблицаЭтапыОплаты.Количество() > 1 Тогда

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

    МассивПроверкиВывода.Очистить();
    МассивПроверкиВывода.Добавить(ОбластьШапкиТаблицы);
    МассивПроверкиВывода.Добавить(ОбластьПодвалаТаблицы);

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

    НомерЭтапа = 1;
    Для Каждого ТекЭтап Из ТаблицаЭтапыОплаты Цикл

    ПараметрыСтроки = НовыеПараметрыСтрокиЭтапа();
    ЗаполнитьЗначенияСвойств(ПараметрыСтроки, ТекЭтап);
    ПараметрыСтроки.НомерСтроки = НомерЭтапа;
    Если Не ПараметрыСтроки.ЭтоЗалогЗаТару Тогда
    ПараметрыСтроки.ТекстНДС = ФормированиеПечатныхФорм.СформироватьТекстНДСЭтапаОплаты(
    СоответствиеСтавокНДС,
    ТекЭтап.ПроцентПлатежа);
    Иначе
    ПараметрыСтроки.ВариантОплаты = Строка(ТекЭтап.ВариантОплаты) + " " + НСтр("ru='(залог за тару)'");
    ПараметрыСтроки.ПроцентПлатежа = "-";
    ПараметрыСтроки.ТекстНДС = НСтр("ru='Без налога (НДС)'");
    КонецЕсли;

    ОбластьСтрокиТаблицы.Параметры.Заполнить(ПараметрыСтроки);

    МассивПроверкиВывода.Добавить(ОбластьСтрокиТаблицы);

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

    Если НомерЭтапа=1 Тогда
    ТабличныйДокумент.Вывести(ОбластьШапкиТаблицы);
    МассивПроверкиВывода.Удалить(0);
    КонецЕслИ;

    Иначе

    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ТабличныйДокумент.Вывести(ОбластьШапкиТаблицы);

    КонецЕсли;

    МассивПроверкиВывода.Удалить(МассивПроверкиВывода.ВГраница());

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

    НомерЭтапа = НомерЭтапа + 1;

    КонецЦикла;

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

    КонецЕсли;

    // ПОДВАЛ - ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

    Если ЗначениеЗаполнено(ДанныеПечати.ДополнительнаяИнформация) Тогда

    ОбластьМакета = Макет.ПолучитьОбласть("ДополнительнаяИнформация");
    УстановитьПараметр(ОбластьМакета, "ДополнительнаяИнформация", ДанныеПечати.ДополнительнаяИнформация);
    ТабличныйДокумент.Вывести(ОбластьМакета);

    КонецЕсли;

    // ПОДВАЛ - ПОДПИСИ

    ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
    УстановитьПараметр(ОбластьМакета, "ФИОМенеджер", ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ДанныеПечати.Менеджер, ДанныеПечати.Дата));
    ТабличныйДокумент.Вывести(ОбластьМакета);

    #КонецОбласти

    ЗадатьОбластьПечатиДокумента(
    ТабличныйДокумент,
    НомерСтрокиНачало,
    ОбъектыПечати,
    ДанныеПечати.Ссылка);

    КонецЦикла;

    КонецПроцедуры
```
---
И еще так причесать код

```1c
    //++bmk74 << 18.09.2018 >> Здесь выберем наши допХарактеристики НайтиСледующий
    // немного неправильно в прошлый раз написал...здесь в нашей выборке будет искаться нужная характеристика с ее свойствами

    СтрОтбора = Новый Структура("Характеристика",СтрокаТовары.Характеристика)
    ТекстХарактеристики = ";
    Пока ВыборкаДопХарактеристик.НайтиСледующий(СтрОтбора) Цикл
    ТекстХарактеристики = ТекстХарактеристики + ВыборкаДопХарактеристик.Свойство.Заголовок + ": " + ВыборкаДопХарактеристик.Значение + Символы.ПС;
    КонецЦикла;
    ТекстХарактеристики = Лев(СтрДлина(ТекстХарактеристики)-1);
    //++bmk74 << 18.09.2018 >> Не нужно здесь это, и в макете параметр можно убрать
    //УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    //--bmk74

    // А вот тут вообщее все оооочень странно :)
    //ВыбДок = Документы.ЗаказПоставщику.Выбрать(НачалоДня(ТекущаяДата()),КонецДня(ТекущаяДата()));
    //Пока ВыбДок.Следующий() Цикл
    // Для Каждого СТр из ВыбДок.Товары цикл
    // Хар = Стр.Характеристика;
    // ТекстХарактеристики = ";
    // Для Каждого ДопРекв из Хар.ДополнительныеРеквизиты Цикл
    // ТекстХарактеристики = ТекстХарактеристики + ДопРекв.Свойство.Заголовок + ": " + ДопРекв.Значение + Символы.ПС;
    // //УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    // КонецЦикла;
    // УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    // Сообщить(ТекстХарактеристики);
    // КонецЦикла;
    //КонецЦикла;

    //--bmk74

    ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
    ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = СтрокаТовары.ЭтоВозвратнаяТара;
    ДополнительныеПараметрыПолученияНаименованияДляПечати.Содержание = СтрокаТовары.Содержание;
    //++bmk74 << 18.09.2018 >> Сюда и вставляем сформированное нами наименование характеристики
    ПредставлениеНоменклатурыДляПечати = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
    СтрокаТовары.НаименованиеПолное,
    ТекстХарактеристики,
    ,
    ,
    ДополнительныеПараметрыПолученияНаименованияДляПечати);

    // ПредставлениеНоменклатурыДляПечати = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
    //СтрокаТовары.НаименованиеПолное,
    //СтрокаТовары.Характеристика,
    //,
    //,
    //ДополнительныеПараметрыПолученияНаименованияДляПечати);
    //--bmk74
```
---
(16)
В запросе по товарам

```1c
    | Товары.Характеристика.НаименованиеПолное КАК Характеристика,
```

Замените
```1c
    | Товары.Характеристика КАК Характеристика
```

Чет сразу не посмотрел что там заместо ссылки наименование выберает
---
(16)
В запросе по товарам

```1c
    | Товары.Характеристика.НаименованиеПолное КАК Характеристика,
```

Замените
```1c
    | Товары.Характеристика КАК Характеристика
```

Чет сразу не посмотрел что там заместо ссылки наименование выберает
---
Все получилось.
Спасибо вам огромное!
---
Да не за что :) Рад был помочь..
---
Кстати всю ночь не спал, что то мене мешало :)

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

Добавьте в запрос, а то там выборка слишком большая получится, что на времени и формирования Печатной формы скажется
---
Добавила. Спасибо еще раз :)
---
Я не знаю как у вас по характеристикам выборка идет, но Что мешает

```1c
    НаимХарактеристики = ";
    Пока выборкаХарактеристика.Следующий.Цикл
    НаимХарактеристики= НаимХарактеристики+" "+ВыборкаХарактеристика.Характеристики.Наименование;
    КонецЦикла;
```
---
Получается сам запрос идет в процедуре

```1c
    Функция ПолучитьДанныеДляПечатнойФормыЗаказаНаТоварыУслуги(МассивОбъектов, ПараметрыПечати) Экспорт

    Запрос = Новый Запрос();
    ТекстЗапроса =
    "ВЫБРАТЬ
    | Документы.Ссылка КАК Ссылка,
    | Документы.Номер КАК Номер,
    | Документы.Дата КАК Дата,
    | Документы.Организация КАК Организация,
    | Документы.Организация КАК Заказчик,
    | ВЫБОР
    | КОГДА Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
    | ТОГДА ИСТИНА
    | ИНАЧЕ ЛОЖЬ
    | КОНЕЦ КАК УчитыватьНДС,
    | Документы.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
    | Документы.Организация.Префикс КАК Префикс,
    | Документы.Контрагент КАК Контрагент,
    | Документы.Контрагент КАК Исполнитель,
    | Документы.БанковскийСчет КАК БанковскийСчет,
    | Документы.БанковскийСчет.ТекстКорреспондента КАК БанковскийСчетТекстКорреспондента,
    | Документы.Валюта КАК Валюта,
    | Документы.Менеджер.ФизическоеЛицо КАК Менеджер,
    | Документы.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
    | ВЫБОР Документы.СпособДоставки
    | КОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПоставщикаДоНашегоСклада)
    | ТОГДА Документы.АдресДоставкиДляПоставщика
    | КОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаДоНашегоСклада)
    | ТОГДА Документы.АдресДоставкиДляПоставщика
    | КОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаДоПунктаПередачи)
    | ТОГДА Документы.АдресДоставкиПеревозчика
    | ИНАЧЕ ""
    | КОНЕЦ КАК АдресДоставки,
    | НЕОПРЕДЕЛЕНО КАК Грузоотправитель,
    | НЕОПРЕДЕЛЕНО КАК Грузополучатель,
    | ЛОЖЬ КАК ПоказыватьНДСВСтроках,
    | ИСТИНА КАК ИспользоватьАвтоСкидки,
    | &ПредставлениеДокумента КАК ПредставлениеДокумента,
    | &ПредставлениеВОшибке КАК ПредставлениеВОшибке
    |ИЗ
    | Документ.ЗаказПоставщику КАК Документы
    |ГДЕ
    | Документы.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    | Документы.МоментВремени
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | НЕОПРЕДЕЛЕНО КАК Ссылка,
    | НЕОПРЕДЕЛЕНО КАК НомерСтроки,
    | НЕОПРЕДЕЛЕНО КАК ДатаПлатежа,
    | НЕОПРЕДЕЛЕНО КАК ВариантОплаты,
    | НЕОПРЕДЕЛЕНО КАК ПроцентПлатежа,
    | НЕОПРЕДЕЛЕНО КАК СуммаПлатежа
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Товары.Ссылка КАК Ссылка,
    | Товары.НомерСтроки КАК НомерСтроки,
    | Товары.НоменклатураПоставщика.Наименование КАК НаименованиеНоменклатурыИсполнителя,
    | Товары.НоменклатураПоставщика.Код КАК КодИсполнителя,
    | Товары.НоменклатураПоставщика.Артикул КАК АртикулИсполнителя,
    | Товары.ВидЦеныПоставщика КАК ВидЦеныИсполнителя,
    | Товары.Номенклатура КАК Номенклатура,
    | Товары.Номенклатура.Код КАК Код,
    | Товары.Номенклатура.Артикул КАК Артикул,
    | Товары.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    | Товары.ДатаПоступления КАК ДатаПоступления,
    | Товары.Характеристика.НаименованиеПолное КАК Характеристика,
    | "" КАК Содержание,
    | Товары.КоличествоУпаковок КАК Количество,
    | Товары.Цена КАК Цена,
    | Товары.СуммаРучнойСкидки КАК СуммаСкидки,
    | Товары.Сумма + Товары.СуммаРучнойСкидки КАК СуммаБезСкидки,
    | Товары.Сумма КАК Сумма,
    | Товары.СтавкаНДС КАК СтавкаНДС,
    | Товары.СуммаНДС КАК СуммаНДС,
    | ВЫБОР
    | КОГДА Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
    | ТОГДА ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура.ЕдиницаИзмерения)
    | ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Товары.Упаковка)
    | КОНЕЦ КАК ЕдиницаИзмерения,
    | ВЫБОР
    | КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
    | ТОГДА НЕОПРЕДЕЛЕНО
    | ИНАЧЕ Товары.Упаковка.Наименование
    | КОНЕЦ КАК Упаковка,
    | ВЫБОР
    | КОГДА Товары.Ссылка.ВернутьМногооборотнуюТару
    | И Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
    | ТОГДА ИСТИНА
    | ИНАЧЕ ЛОЖЬ
    | КОНЕЦ КАК ЭтоВозвратнаяТара,
    | ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение.Наименование КАК Значение,
    | ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Заголовок КАК Свойство
    |ИЗ
    | Документ.ЗаказПоставщику.Товары КАК Товары
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
    | ПО Товары.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка
    |ГДЕ
    | Товары.Ссылка В(&МассивОбъектов)
    | И Товары.Отменено = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    | НомерСтроки";

    ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
    "&ТекстЗапросаКоэффициентУпаковки",
    Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
    "Товары.Упаковка",
    "Товары.Номенклатура"));

    Запрос.Текст = ТекстЗапроса;

    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    // Запрос.УстановитьПараметр("Тип", ПараметрыПечати["Тип"]);
    Запрос.УстановитьПараметр("ПредставлениеДокумента", НСтр("ru='Заказ поставщику'"));
    Запрос.УстановитьПараметр("ПредставлениеВОшибке", НСтр("ru='заказа поставщику'"));

    ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();

    СтруктураДанныхДляПечати = Новый Структура;
    СтруктураДанныхДляПечати.Вставить("РезультатПоШапке", ПакетРезультатовЗапроса[0]);
    СтруктураДанныхДляПечати.Вставить("РезультатПоЭтапамОплаты", ПакетРезультатовЗапроса[1]);
    СтруктураДанныхДляПечати.Вставить("РезультатПоТабличнойЧасти", ПакетРезультатовЗапроса[2]);

    Возврат СтруктураДанныхДляПечати;

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

А вывод в макет идет в другой процедуре, где формируется табличный документ, вот так

```1c
    УстановитьПараметр(ОбластьТоварСтроки, "Характер", СтрокаТовары.Свойство + ":" + СтрокаТовары.Значение);
```
---
Так это у вас даже не характеристики, это доп реквизиты...
---
| Документ.ЗаказПоставщику.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты | ПО Товары.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка

Так вы вообще можете задесятерить номенклатуру, если честно,

Вам надо еще один запрос дописать на выборку этих реквизитов
после

```1c
    |;
    |////////////////////////////////////////////////////////////­//////////////////////////////
    |ВЫБРАТЬ ХарДопРеквизиты.Свойство КАК Свойство,
    |ХарДопРеквизиты.Значение КАК Значение,
    |Товары.Характеристика КАК Характеристика
    |ИЗ
    | Документ.ЗаказПоставщику.Товары КАК Товары
    | Внутреннее СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарДопРеквизиты
    | ПО Товары.Характеристика = ХарДопРеквизиты.Ссылка
```

далее

```1c
    СтруктураДанныхДляПечати.Вставить("РезультатПоДопХарактеристикам", ПакетРезультатовЗапроса[3]);
```

В процедуре где выбирается ТЧ

```1c
    ВыборкаДопХарактеристик = ДанныеПечати.РезультатПоДопХарактеристикам.Выбрать();
```

А вот там где формируете табличный документ где заполняется Номенклатура

```1c
    ВыборкаДопХарактеристик.Сбросить();
    ДопХар = "Характер ";
    Пока Выборка.СледующийПоЗначениюПоля(Характеристика) Цикл
    ДопХар = ДопХар +Выборка.Свойство + ":" + Выборка.Значение +",";
    КонецЦикла;
    ДопХар = Лев(СтрДлинна(ДопХар)-1);
```
//последнюю запятую убераем
---
Вставила код, если в последней части кода идти по Характеристике

```1c
    Выборка.СледующийПоЗначениюПоля(Характеристика)
```

то выводится все характеристики в одну ячейку.
Заменила на Номенклатуру

```1c
    Выборка.СледующийПоЗначениюПоля(Номенклатура)
```

Выводит только одну характеристику во все поля. Скрин приложен.
---
```1c
    | Документ.ЗаказПоставщику.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты | ПО Товары.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка
```

Вот это из предыдущего запроса убрали надеюсь ?
---
И если можно приведите код заполнения ТЧ сюда

```1c
    Выборка.СледующийПоЗначениюПоля(Номенклатура)
```

И Почему здесь Выборка ?
Ой это я ошибся должна быть не выборка а
```1c
    ВыборкаДопХарактеристик.СледующийПоЗначениюПоля(Характеристика)
```
---
Все лишнее убрала конечно и выборку заменяла.
Уже пошла по-другому пути, не через запрос.

```1c
    ВыбДок = Документы.ЗаказПоставщику.Выбрать(НачалоДня(ТекущаяДата()),КонецДня(ТекущаяДата()));
    Пока ВыбДок.Следующий() Цикл
    Для Каждого СТр из ВыбДок.Товары цикл
    Хар = Стр.Характеристика;
    ТекстХарактеристики = ";
    Для Каждого ДопРекв из Хар.ДополнительныеРеквизиты Цикл
    ТекстХарактеристики = ТекстХарактеристики + ДопРекв.Свойство.Заголовок + ": " + ДопРекв.Значение + Символы.ПС;
    КонецЦикла;
    УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    Сообщить(ТекстХарактеристики);
    КонецЦикла;
    КонецЦикла;
```

Выводит как должно выглядить, но только выводит во все ячейки последнюю характеристику. Бьюсь с этим моментом.
Скрин как сейчас выглядит.
---
```1c
    Процедура ЗаполнитьТабличныйДокументЗаказаНаТоварыУслуги(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати)

    ШаблонОшибкиТовары = НСтр("ru = 'В документе %1 отсутствуют товары. Печать %2 не требуется'");
    ШаблонОшибкиЭтапы = НСтр("ru = 'В документе %1 отсутствуют этапы оплаты. Печать %2 не требуется'");

    ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах");
    ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах");

    ДанныеПечати = ДанныеДляПечати.РезультатПоШапке.Выбрать();
    ЭтапыОплаты = ДанныеДляПечати.РезультатПоЭтапамОплаты.Выгрузить();
    Товары = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить();
    //ВыборкаДопХарактеристик = ДанныеДляПечати.РезультатПоДопХарактеристикам.Выбрать();

    ПервыйДокумент = Истина;
    КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
    ВыводитьКоды = Не ПустаяСтрока(КолонкаКодов);

    Пока ДанныеПечати.Следующий() Цикл

    Макет = ПолучитьМакет("ПФ_MXL_ЗаказПоставщику");

    СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);

    ТаблицаТовары = Товары.НайтиСтроки(СтруктураПоиска);

    Если ТаблицаТовары.Количество() = 0 Тогда

    ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    ШаблонОшибкиТовары,
    ДанныеПечати.Ссылка,
    ДанныеПечати.ПредставлениеВОшибке);

    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ДанныеПечати.Ссылка);
    Продолжить;

    КонецЕсли;

    ТаблицаЭтапыОплаты = ЭтапыОплаты.НайтиСтроки(СтруктураПоиска);

    Если ПервыйДокумент Тогда
    ПервыйДокумент = Ложь;
    Иначе
    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;

    НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

    ВыводитьВидЦены = Ложь;
    Для Каждого СтрокаТовары Из ТаблицаТовары Цикл

    Если ЗначениеЗаполнено(СтрокаТовары.ВидЦеныИсполнителя) Тогда
    ВыводитьВидЦены = Истина;
    Прервать;
    КонецЕсли;

    КонецЦикла;

    ЗаголовокСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ТаблицаТовары, ДанныеПечати.ИспользоватьАвтоСкидки);
    ЕстьСкидки = ЗаголовокСкидки.ЕстьСкидки;
    ПоказыватьНДС = ДанныеПечати.ПоказыватьНДСВСтроках И ДанныеПечати.УчитыватьНДС;

    #Область ОпределениеИменЗаголовковОбластей

    ЕстьДопПараметр = ЕстьСкидки Или ВыводитьВидЦены Или ПоказыватьНДС;
    ДвойнойДопПараметр = (ЕстьСкидки И ВыводитьВидЦены) Или (ЕстьСкидки И ПоказыватьНДС);

    Если ДвойнойДопПараметр Тогда
    ПостфиксКолонок = "СДвумяПараметрами";
    ИначеЕсли ЕстьДопПараметр Тогда
    ПостфиксКолонок = "СОднимПараметром";
    Иначе
    ПостфиксКолонок = ";
    КонецЕсли;

    ОбластьКолонкаТовар = Макет.Область("Товар" + ПостфиксКолонок);

    Если Не ВыводитьКоды Тогда

    Если ДвойнойДопПараметр Тогда
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.35;
    ИначеЕсли ЕстьДопПараметр Тогда
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.2;
    Иначе
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.14;
    КонецЕсли;

    КонецЕсли;

    Если ЕстьСкидки И ВыводитьВидЦены Тогда
    ПостфиксСтрок = "СУсловиемСоСкидкой";
    ИначеЕсли ЕстьСкидки И ПоказыватьНДС Тогда
    ПостфиксСтрок = "СНДССоСкидкой";
    ИначеЕсли ПоказыватьНДС Тогда
    ПостфиксСтрок = "СНДС";
    ИначеЕсли ЕстьСкидки Тогда
    ПостфиксСтрок = "СоСкидкой";
    ИначеЕсли ВыводитьВидЦены Тогда
    ПостфиксСтрок = "СУсловием";
    Иначе
    ПостфиксСтрок = ";
    КонецЕсли;

    #КонецОбласти

    #Область ОбластиМакета

    // ОБЛАСТЕЙ ТАБЛИЦЫ "ТОВАРЫ"

    ОбластьНомераШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ОбластьНомераСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ИспользоватьНаборы = Ложь;
    Если Товары.Колонки.Найти("ЭтоНабор") <> Неопределено Тогда
    ИспользоватьНаборы = Истина;
    ОбластьНомераСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|НомерСтроки");
    ОбластьНомераСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|НомерСтроки");
    ОбластьКодовСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|КолонкаКодов");
    ОбластьКодовСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|КолонкаКодов");
    ОбластьТоварСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|Товар" + ПостфиксКолонок);
    ОбластьТоварСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|Данные" + ПостфиксКолонок);
    ОбластьДанныхСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|Данные" + ПостфиксКолонок);
    КонецЕсли;

    ОбластьНомераПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ОбластьНомераНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|НомерСтроки");
    ОбластьКодовНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|КолонкаКодов");
    ОбластьТоварНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Товар" + ПостфиксКолонок);
    ОбластьДанныхНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Данные" + ПостфиксКолонок);

    ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");

    #КонецОбласти

    #Область ВыводШапки

    // ШАПКА - ЗАГОЛОВОК

    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ФормированиеПечатныхФорм.ВывестиЛоготипВТабличныйДокумент(Макет, ОбластьМакета, "Заголовок", ДанныеПечати.Организация);

    УстановитьПараметр(ОбластьМакета, "ТекстЗаголовка", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(
    ДанныеПечати,
    ДанныеПечати.ПредставлениеДокумента));

    ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(
    ТабличныйДокумент,
    Макет,
    ОбластьМакета,
    ДанныеПечати.Ссылка);

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

    // ШАПКА - ИСПОЛНИТЕЛЬ

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

    // ШАПКА - ЗАКАЗЧИК

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

    // ШАПКА - ГРУЗООТПРАВИТЕЛЬ

    Если ЗначениеЗаполнено(ДанныеПечати.Грузоотправитель) Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("Грузоотправитель");
    УстановитьПараметр(ОбластьМакета, "ПредставлениеГрузоотправителя", ОписаниеОрганизации(ДанныеПечати, "Грузоотправитель"));
    ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецЕсли;

    // ШАПКА - ГРУЗОПОЛУЧАТЕЛЬ

    Если ЗначениеЗаполнено(ДанныеПечати.Грузополучатель) Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("Грузополучатель");
    УстановитьПараметр(ОбластьМакета, "ПредставлениеГрузополучателя", ОписаниеОрганизации(ДанныеПечати, "Грузополучатель"));
    ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецЕсли;

    // ШАПКА - АДРЕС ДОСТАВКИ

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

    #КонецОбласти

    #Область ВыводТаблицыТовары

    // ТАБЛИЦА ТОВАРЫ - ШАПКА

    Если ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхШапки, "Скидка", ЗаголовокСкидки.Скидка);
    УстановитьПараметр(ОбластьДанныхШапки, "СуммаБезСкидки", ЗаголовокСкидки.СуммаСкидки);
    КонецЕсли;

    Если ВыводитьКоды Тогда
    УстановитьПараметр(ОбластьКодовШапки, "ИмяКолонкиКодов", КолонкаКодов);
    КонецЕсли;

    // ТАБЛИЦА ТОВАРЫ - СТРОКИ

    МассивПроверкиВывода = Новый Массив;
    МассивПроверкиВывода.Добавить(ОбластьНомераШапки);
    МассивПроверкиВывода.Добавить(ОбластьНомераПодвала);
    Если ПоказыватьНДС Тогда
    МассивПроверкиВывода.Добавить(ОбластьНомераНДС);
    КонецЕсли;
    МассивПроверкиВывода.Добавить(ОбластьСуммаПрописью);

    Сумма = 0;
    СуммаНДС = 0;
    ВсегоСкидок = 0;
    ВсегоБезСкидок = 0;

    НомерСтроки = 0;

    ПустыеДанные = НаборыСервер.ПустыеДанные();
    ВыводШапки = 0;

    СоответствиеСтавокНДС = Новый Соответствие;

    Для Каждого СтрокаТовары Из ТаблицаТовары Цикл

    Если НаборыСервер.ИспользоватьОбластьНабор(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьКодовСтроки = ОбластьКодовСтрокиНабор;
    ОбластьНомераСтроки = ОбластьНомераСтрокиНабор;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиНабор;
    ОбластьТоварСтроки = ОбластьТоварСтрокиНабор;
    ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьКодовСтроки = ОбластьКодовСтрокиКомплектующие;
    ОбластьНомераСтроки = ОбластьНомераСтрокиКомплектующие;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиКомплектующие;
    ОбластьТоварСтроки = ОбластьТоварСтрокиКомплектующие;
    Иначе
    ОбластьКодовСтроки = ОбластьКодовСтрокиСтандарт;
    ОбластьНомераСтроки = ОбластьНомераСтрокиСтандарт;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиСтандарт;
    ОбластьТоварСтроки = ОбластьТоварСтрокиСтандарт;
    КонецЕсли;

    Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", Неопределено);
    Иначе
    НомерСтроки = НомерСтроки + 1;
    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", НомерСтроки);
    КонецЕсли;

    Если НомерСтроки = 0 И ВыводШапки <> 2 Тогда
    ВыводШапки = 1;
    КонецЕсли;

    МассивПроверкиВывода.Добавить(ОбластьНомераСтроки);

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

    Если (НомерСтроки = 1 И ВыводШапки = 0) ИЛИ (НомерСтроки = 0 И ВыводШапки = 1) Тогда

    ВыводШапки = 2;

    ВывестиШапку(ТабличныйДокумент, ОбластьНомераШапки, ОбластьКодовШапки, ОбластьТоварШапки, ОбластьДанныхШапки, ВыводитьКоды);
    МассивПроверкиВывода.Удалить(0);

    КонецЕслИ;

    Иначе

    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ВывестиШапку(ТабличныйДокумент, ОбластьНомераШапки, ОбластьКодовШапки, ОбластьТоварШапки, ОбластьДанныхШапки, ВыводитьКоды);

    КонецЕсли;

    МассивПроверкиВывода.Удалить(МассивПроверкиВывода.ВГраница());

    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", НомерСтроки);
    ТабличныйДокумент.Вывести(ОбластьНомераСтроки);

    Если ВыводитьКоды Тогда

    ИмяКолонки = КолонкаКодов;
    //Если ДанныеПечати.Тип = "ЗаказПоставщикуПоДаннымПоставщика" Тогда
    // ИмяКолонки = ИмяКолонки + "Исполнителя";
    //КонецЕсли;

    УстановитьПараметр(ОбластьКодовСтроки, "Артикул", СтрокаТовары[ИмяКолонки]);
    ТабличныйДокумент.Присоединить(ОбластьКодовСтроки);

    КонецЕсли;

    //Если ДанныеПечати.Тип = "ЗаказПоставщикуПоДаннымПоставщика" Тогда
    //
    // ПредставлениеНоменклатурыДляПечати = СтрокаТовары.НаименованиеНоменклатурыИсполнителя;
    //
    //Иначе

    ВыбДок = Документы.ЗаказПоставщику.Выбрать(НачалоДня(ТекущаяДата()),КонецДня(ТекущаяДата()));
    Пока ВыбДок.Следующий() Цикл
    Для Каждого СТр из ВыбДок.Товары цикл
    Хар = Стр.Характеристика;
    ТекстХарактеристики = ";
    Для Каждого ДопРекв из Хар.ДополнительныеРеквизиты Цикл
    ТекстХарактеристики = ТекстХарактеристики + ДопРекв.Свойство.Заголовок + ": " + ДопРекв.Значение + Символы.ПС;
    //УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    КонецЦикла;
    УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    Сообщить(ТекстХарактеристики);
    КонецЦикла;
    КонецЦикла;

    ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
    ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = СтрокаТовары.ЭтоВозвратнаяТара;
    ДополнительныеПараметрыПолученияНаименованияДляПечати.Содержание = СтрокаТовары.Содержание;

    ПредставлениеНоменклатурыДляПечати = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
    СтрокаТовары.НаименованиеПолное,
    СтрокаТовары.Характеристика,
    ,
    ,
    ДополнительныеПараметрыПолученияНаименованияДляПечати);

    ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(СтрокаТовары, ИспользоватьНаборы);
    УстановитьПараметр(ОбластьТоварСтроки, "Товар", ПрефиксИПостфикс.Префикс + ПредставлениеНоменклатурыДляПечати + ПрефиксИПостфикс.Постфикс);

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

    Если ЗаголовокСкидки.ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхСтроки, "СуммаСкидки", ?(ЗаголовокСкидки.ТолькоНаценка, - СтрокаТовары.СуммаСкидки, СтрокаТовары.СуммаСкидки));
    КонецЕсли;

    Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьДанныхСтроки.Параметры.Заполнить(ПустыеДанные);
    Иначе
    ОбластьДанныхСтроки.Параметры.Заполнить(СтрокаТовары);
    КонецЕсли;

    ТабличныйДокумент.Присоединить(ОбластьДанныхСтроки);

    Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
    Сумма = Сумма + СтрокаТовары.Сумма;
    СуммаНДС = СуммаНДС + СтрокаТовары.СуммаНДС;

    Если ЕстьСкидки Тогда
    ВсегоСкидок = ВсегоСкидок + СтрокаТовары.СуммаСкидки;
    ВсегоБезСкидок = ВсегоБезСкидок + СтрокаТовары.СуммаБезСкидки;
    КонецЕсли;

    Если ДанныеПечати.УчитыватьНДС Тогда

    СуммаНДСПоСтавке = СоответствиеСтавокНДС[СтрокаТовары.СтавкаНДС];

    Если СуммаНДСПоСтавке = Неопределено Тогда
    СуммаНДСПоСтавке = 0;
    КонецЕсли;

    СоответствиеСтавокНДС.Вставить(СтрокаТовары.СтавкаНДС, СуммаНДСПоСтавке + СтрокаТовары.СуммаНДС);

    КонецЕсли;
    КонецЕсли;

    КонецЦикла;

    // ТАБЛИЦА ТОВАРЫ - ПОДВАЛ

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

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

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

    Если ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхПодвала, "ВсегоСкидок", ?(ЗаголовокСкидки.ТолькоНаценка, -ВсегоСкидок, ВсегоСкидок));
    УстановитьПараметр(ОбластьДанныхПодвала, "ВсегоБезСкидок", ВсегоБезСкидок);
    КонецЕсли;

    УстановитьПараметр(ОбластьДанныхПодвала, "Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма));
    ТабличныйДокумент.Присоединить(ОбластьДанныхПодвала);

    // ТАБЛИЦА ТОВАРЫ - ИТОГО НДС

    Если Не ДанныеПечати.УчитыватьНДС Тогда

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

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

    ТабличныйДокумент.Присоединить(ОбластьТоварНДС);

    УстановитьПараметр(ОбластьДанныхНДС, "НДС", НСтр("ru='Без налога (НДС)'"));
    УстановитьПараметр(ОбластьДанныхНДС, "ВсегоНДС", "-");

    ТабличныйДокумент.Присоединить(ОбластьДанныхНДС);

    Иначе

    Для Каждого ТекСтавкаНДС Из СоответствиеСтавокНДС Цикл

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

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

    ТабличныйДокумент.Присоединить(ОбластьТоварНДС);

    УстановитьПараметр(ОбластьДанныхНДС, "НДС", ФормированиеПечатныхФорм.ТекстНДСПоСтавке(ТекСтавкаНДС.Ключ, ДанныеПечати.ЦенаВключаетНДС));
    УстановитьПараметр(ОбластьДанныхНДС, "ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(ТекСтавкаНДС.Значение, , "-"));

    ТабличныйДокумент.Присоединить(ОбластьДанныхНДС);

    КонецЦикла;

    КонецЕсли;

    #КонецОбласти

    #Область ВыводПодвала

    // ПОДВАЛ - СУММА ПРОПИСЬЮ

    СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС);

    ТекстИтоговойСтроки = НСтр("ru='Всего наименований %1, на сумму %2'");

    ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    ТекстИтоговойСтроки,
    НомерСтроки, // Количество
    ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта)); // Сумма

    УстановитьПараметр(ОбластьСуммаПрописью, "ИтоговаяСтрока", ИтоговаяСтрока);
    УстановитьПараметр(ОбластьСуммаПрописью, "СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(
    СуммаКПрописи,
    ДанныеПечати.Валюта));

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

    // ПОДВАЛ - ЭТАПЫ ГРАФИКА ОПЛАТЫ

    Если ТаблицаЭтапыОплаты.Количество() > 1 Тогда

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

    МассивПроверкиВывода.Очистить();
    МассивПроверкиВывода.Добавить(ОбластьШапкиТаблицы);
    МассивПроверкиВывода.Добавить(ОбластьПодвалаТаблицы);

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

    НомерЭтапа = 1;
    Для Каждого ТекЭтап Из ТаблицаЭтапыОплаты Цикл

    ПараметрыСтроки = НовыеПараметрыСтрокиЭтапа();
    ЗаполнитьЗначенияСвойств(ПараметрыСтроки, ТекЭтап);
    ПараметрыСтроки.НомерСтроки = НомерЭтапа;
    Если Не ПараметрыСтроки.ЭтоЗалогЗаТару Тогда
    ПараметрыСтроки.ТекстНДС = ФормированиеПечатныхФорм.СформироватьТекстНДСЭтапаОплаты(
    СоответствиеСтавокНДС,
    ТекЭтап.ПроцентПлатежа);
    Иначе
    ПараметрыСтроки.ВариантОплаты = Строка(ТекЭтап.ВариантОплаты) + " " + НСтр("ru='(залог за тару)'");
    ПараметрыСтроки.ПроцентПлатежа = "-";
    ПараметрыСтроки.ТекстНДС = НСтр("ru='Без налога (НДС)'");
    КонецЕсли;

    ОбластьСтрокиТаблицы.Параметры.Заполнить(ПараметрыСтроки);

    МассивПроверкиВывода.Добавить(ОбластьСтрокиТаблицы);

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

    Если НомерЭтапа=1 Тогда
    ТабличныйДокумент.Вывести(ОбластьШапкиТаблицы);
    МассивПроверкиВывода.Удалить(0);
    КонецЕслИ;

    Иначе

    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ТабличныйДокумент.Вывести(ОбластьШапкиТаблицы);

    КонецЕсли;

    МассивПроверкиВывода.Удалить(МассивПроверкиВывода.ВГраница());

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

    НомерЭтапа = НомерЭтапа + 1;

    КонецЦикла;

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

    КонецЕсли;

    // ПОДВАЛ - ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

    Если ЗначениеЗаполнено(ДанныеПечати.ДополнительнаяИнформация) Тогда

    ОбластьМакета = Макет.ПолучитьОбласть("ДополнительнаяИнформация");
    УстановитьПараметр(ОбластьМакета, "ДополнительнаяИнформация", ДанныеПечати.ДополнительнаяИнформация);
    ТабличныйДокумент.Вывести(ОбластьМакета);

    КонецЕсли;

    // ПОДВАЛ - ПОДПИСИ

    ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
    УстановитьПараметр(ОбластьМакета, "ФИОМенеджер", ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ДанныеПечати.Менеджер, ДанныеПечати.Дата));
    ТабличныйДокумент.Вывести(ОбластьМакета);

    #КонецОбласти

    ЗадатьОбластьПечатиДокумента(
    ТабличныйДокумент,
    НомерСтрокиНачало,
    ОбъектыПечати,
    ДанныеПечати.Ссылка);

    КонецЦикла;

    КонецПроцедуры
```

(11)
---
Нда
Во первых чуть поправьте запрос

```1c
    |;
    |////////////////////////////////////////////////////////////­­//////////////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |ХарДопРеквизиты.Свойство КАК Свойство,
    |ХарДопРеквизиты.Значение КАК Значение,
    |Товары.Характеристика КАК Характеристика
    |ИЗ
    | Документ.ЗаказПоставщику.Товары КАК Товары
    | Внутреннее СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарДопРеквизиты
    | ПО Товары.Характеристика = ХарДопРеквизиты.Ссылка
```

Далее просто замените функцию, я там в комментариях написал

```1c
    Процедура ЗаполнитьТабличныйДокументЗаказаНаТоварыУслуги(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати)

    ШаблонОшибкиТовары = НСтр("ru = 'В документе %1 отсутствуют товары. Печать %2 не требуется'");
    ШаблонОшибкиЭтапы = НСтр("ru = 'В документе %1 отсутствуют этапы оплаты. Печать %2 не требуется'");

    ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах");
    ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах");

    ДанныеПечати = ДанныеДляПечати.РезультатПоШапке.Выбрать();
    ЭтапыОплаты = ДанныеДляПечати.РезультатПоЭтапамОплаты.Выгрузить();
    Товары = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить();
    //++bmk74 << 18.09.2018 >> Здесь выборку получаем по доп характеристикам
    ВыборкаДопХарактеристик = ДанныеДляПечати.РезультатПоДопХарактеристикам.Выбрать();
    //--bmk74

    ПервыйДокумент = Истина;
    КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
    ВыводитьКоды = Не ПустаяСтрока(КолонкаКодов);

    Пока ДанныеПечати.Следующий() Цикл

    Макет = ПолучитьМакет("ПФ_MXL_ЗаказПоставщику");

    СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);

    ТаблицаТовары = Товары.НайтиСтроки(СтруктураПоиска);

    Если ТаблицаТовары.Количество() = 0 Тогда

    ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    ШаблонОшибкиТовары,
    ДанныеПечати.Ссылка,
    ДанныеПечати.ПредставлениеВОшибке);

    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ДанныеПечати.Ссылка);
    Продолжить;

    КонецЕсли;

    ТаблицаЭтапыОплаты = ЭтапыОплаты.НайтиСтроки(СтруктураПоиска);

    Если ПервыйДокумент Тогда
    ПервыйДокумент = Ложь;
    Иначе
    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;

    НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

    ВыводитьВидЦены = Ложь;
    Для Каждого СтрокаТовары Из ТаблицаТовары Цикл

    Если ЗначениеЗаполнено(СтрокаТовары.ВидЦеныИсполнителя) Тогда
    ВыводитьВидЦены = Истина;
    Прервать;
    КонецЕсли;

    КонецЦикла;

    ЗаголовокСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ТаблицаТовары, ДанныеПечати.ИспользоватьАвтоСкидки);
    ЕстьСкидки = ЗаголовокСкидки.ЕстьСкидки;
    ПоказыватьНДС = ДанныеПечати.ПоказыватьНДСВСтроках И ДанныеПечати.УчитыватьНДС;

    #Область ОпределениеИменЗаголовковОбластей

    ЕстьДопПараметр = ЕстьСкидки Или ВыводитьВидЦены Или ПоказыватьНДС;
    ДвойнойДопПараметр = (ЕстьСкидки И ВыводитьВидЦены) Или (ЕстьСкидки И ПоказыватьНДС);

    Если ДвойнойДопПараметр Тогда
    ПостфиксКолонок = "СДвумяПараметрами";
    ИначеЕсли ЕстьДопПараметр Тогда
    ПостфиксКолонок = "СОднимПараметром";
    Иначе
    ПостфиксКолонок = ";
    КонецЕсли;

    ОбластьКолонкаТовар = Макет.Область("Товар" + ПостфиксКолонок);

    Если Не ВыводитьКоды Тогда

    Если ДвойнойДопПараметр Тогда
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.35;
    ИначеЕсли ЕстьДопПараметр Тогда
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.2;
    Иначе
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.14;
    КонецЕсли;

    КонецЕсли;

    Если ЕстьСкидки И ВыводитьВидЦены Тогда
    ПостфиксСтрок = "СУсловиемСоСкидкой";
    ИначеЕсли ЕстьСкидки И ПоказыватьНДС Тогда
    ПостфиксСтрок = "СНДССоСкидкой";
    ИначеЕсли ПоказыватьНДС Тогда
    ПостфиксСтрок = "СНДС";
    ИначеЕсли ЕстьСкидки Тогда
    ПостфиксСтрок = "СоСкидкой";
    ИначеЕсли ВыводитьВидЦены Тогда
    ПостфиксСтрок = "СУсловием";
    Иначе
    ПостфиксСтрок = ";
    КонецЕсли;

    #КонецОбласти

    #Область ОбластиМакета

    // ОБЛАСТЕЙ ТАБЛИЦЫ "ТОВАРЫ"

    ОбластьНомераШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхШапки = Макет.ПолучитьОбласть("ШапкаТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ОбластьНомераСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ИспользоватьНаборы = Ложь;
    Если Товары.Колонки.Найти("ЭтоНабор") <> Неопределено Тогда
    ИспользоватьНаборы = Истина;
    ОбластьНомераСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|НомерСтроки");
    ОбластьНомераСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|НомерСтроки");
    ОбластьКодовСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|КолонкаКодов");
    ОбластьКодовСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|КолонкаКодов");
    ОбластьТоварСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|Товар" + ПостфиксКолонок);
    ОбластьТоварСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Набор" + "|Данные" + ПостфиксКолонок);
    ОбластьДанныхСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + ПостфиксСтрок + "Комплектующие" + "|Данные" + ПостфиксКолонок);
    КонецЕсли;

    ОбластьНомераПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|НомерСтроки");
    ОбластьКодовПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|КолонкаКодов");
    ОбластьТоварПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|Товар" + ПостфиксКолонок);
    ОбластьДанныхПодвала = Макет.ПолучитьОбласть("ПодвалТаблицы" + ПостфиксСтрок + "|Данные" + ПостфиксКолонок);

    ОбластьНомераНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|НомерСтроки");
    ОбластьКодовНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|КолонкаКодов");
    ОбластьТоварНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Товар" + ПостфиксКолонок);
    ОбластьДанныхНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Данные" + ПостфиксКолонок);

    ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");

    #КонецОбласти

    #Область ВыводШапки

    // ШАПКА - ЗАГОЛОВОК

    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ФормированиеПечатныхФорм.ВывестиЛоготипВТабличныйДокумент(Макет, ОбластьМакета, "Заголовок", ДанныеПечати.Организация);

    УстановитьПараметр(ОбластьМакета, "ТекстЗаголовка", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(
    ДанныеПечати,
    ДанныеПечати.ПредставлениеДокумента));

    ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(
    ТабличныйДокумент,
    Макет,
    ОбластьМакета,
    ДанныеПечати.Ссылка);

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

    // ШАПКА - ИСПОЛНИТЕЛЬ

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

    // ШАПКА - ЗАКАЗЧИК

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

    // ШАПКА - ГРУЗООТПРАВИТЕЛЬ

    Если ЗначениеЗаполнено(ДанныеПечати.Грузоотправитель) Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("Грузоотправитель");
    УстановитьПараметр(ОбластьМакета, "ПредставлениеГрузоотправителя", ОписаниеОрганизации(ДанныеПечати, "Грузоотправитель"));
    ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецЕсли;

    // ШАПКА - ГРУЗОПОЛУЧАТЕЛЬ

    Если ЗначениеЗаполнено(ДанныеПечати.Грузополучатель) Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("Грузополучатель");
    УстановитьПараметр(ОбластьМакета, "ПредставлениеГрузополучателя", ОписаниеОрганизации(ДанныеПечати, "Грузополучатель"));
    ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецЕсли;

    // ШАПКА - АДРЕС ДОСТАВКИ

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

    #КонецОбласти

    #Область ВыводТаблицыТовары

    // ТАБЛИЦА ТОВАРЫ - ШАПКА

    Если ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхШапки, "Скидка", ЗаголовокСкидки.Скидка);
    УстановитьПараметр(ОбластьДанныхШапки, "СуммаБезСкидки", ЗаголовокСкидки.СуммаСкидки);
    КонецЕсли;

    Если ВыводитьКоды Тогда
    УстановитьПараметр(ОбластьКодовШапки, "ИмяКолонкиКодов", КолонкаКодов);
    КонецЕсли;

    // ТАБЛИЦА ТОВАРЫ - СТРОКИ

    МассивПроверкиВывода = Новый Массив;
    МассивПроверкиВывода.Добавить(ОбластьНомераШапки);
    МассивПроверкиВывода.Добавить(ОбластьНомераПодвала);
    Если ПоказыватьНДС Тогда
    МассивПроверкиВывода.Добавить(ОбластьНомераНДС);
    КонецЕсли;
    МассивПроверкиВывода.Добавить(ОбластьСуммаПрописью);

    Сумма = 0;
    СуммаНДС = 0;
    ВсегоСкидок = 0;
    ВсегоБезСкидок = 0;

    НомерСтроки = 0;

    ПустыеДанные = НаборыСервер.ПустыеДанные();
    ВыводШапки = 0;

    СоответствиеСтавокНДС = Новый Соответствие;

    Для Каждого СтрокаТовары Из ТаблицаТовары Цикл
    //++bmk74 << 18.09.2018 >> Сбрасываем в ноль выборку, что бы она нашла нам нужные позиции
    ВыборкаДопХарактеристик.Сбросить();
    //--bmk74
    Если НаборыСервер.ИспользоватьОбластьНабор(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьКодовСтроки = ОбластьКодовСтрокиНабор;
    ОбластьНомераСтроки = ОбластьНомераСтрокиНабор;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиНабор;
    ОбластьТоварСтроки = ОбластьТоварСтрокиНабор;
    ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьКодовСтроки = ОбластьКодовСтрокиКомплектующие;
    ОбластьНомераСтроки = ОбластьНомераСтрокиКомплектующие;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиКомплектующие;
    ОбластьТоварСтроки = ОбластьТоварСтрокиКомплектующие;
    Иначе
    ОбластьКодовСтроки = ОбластьКодовСтрокиСтандарт;
    ОбластьНомераСтроки = ОбластьНомераСтрокиСтандарт;
    ОбластьДанныхСтроки = ОбластьДанныхСтрокиСтандарт;
    ОбластьТоварСтроки = ОбластьТоварСтрокиСтандарт;
    КонецЕсли;

    Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", Неопределено);
    Иначе
    НомерСтроки = НомерСтроки + 1;
    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", НомерСтроки);
    КонецЕсли;

    Если НомерСтроки = 0 И ВыводШапки <> 2 Тогда
    ВыводШапки = 1;
    КонецЕсли;

    МассивПроверкиВывода.Добавить(ОбластьНомераСтроки);

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

    Если (НомерСтроки = 1 И ВыводШапки = 0) ИЛИ (НомерСтроки = 0 И ВыводШапки = 1) Тогда

    ВыводШапки = 2;

    ВывестиШапку(ТабличныйДокумент, ОбластьНомераШапки, ОбластьКодовШапки, ОбластьТоварШапки, ОбластьДанныхШапки, ВыводитьКоды);
    МассивПроверкиВывода.Удалить(0);

    КонецЕслИ;

    Иначе

    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ВывестиШапку(ТабличныйДокумент, ОбластьНомераШапки, ОбластьКодовШапки, ОбластьТоварШапки, ОбластьДанныхШапки, ВыводитьКоды);

    КонецЕсли;

    МассивПроверкиВывода.Удалить(МассивПроверкиВывода.ВГраница());

    УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", НомерСтроки);
    ТабличныйДокумент.Вывести(ОбластьНомераСтроки);

    Если ВыводитьКоды Тогда

    ИмяКолонки = КолонкаКодов;
    //Если ДанныеПечати.Тип = "ЗаказПоставщикуПоДаннымПоставщика" Тогда
    // ИмяКолонки = ИмяКолонки + "Исполнителя";
    //КонецЕсли;

    УстановитьПараметр(ОбластьКодовСтроки, "Артикул", СтрокаТовары[ИмяКолонки]);
    ТабличныйДокумент.Присоединить(ОбластьКодовСтроки);

    КонецЕсли;

    //Если ДанныеПечати.Тип = "ЗаказПоставщикуПоДаннымПоставщика" Тогда
    //
    // ПредставлениеНоменклатурыДляПечати = СтрокаТовары.НаименованиеНоменклатурыИсполнителя;
    //
    //Иначе

    //++bmk74 << 18.09.2018 >> Здесь выберем наши допХарактеристики НайтиСледующий
    // немного неправильно в прошлый раз написал...здесь в нашей выборке будет искаться нужная характеристика с ее свойствами

    СтрОтбора = Новый Структура("Характеристика",СтрокаТовары.Характеристика)
    ТекстХарактеристики = ";
    Пока ВыборкаДопХарактеристик.НайтиСледующий(СтрОтбора) Цикл
    ТекстХарактеристики = ТекстХарактеристики + ВыборкаДопХарактеристик.Свойство.Заголовок + ": " + ВыборкаДопХарактеристик.Значение + Символы.ПС;
    КонецЦикла;
    ТекстХарактеристики = Лев(СтрДлина(ТекстХарактеристики)-1);
    УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);

    // А вот тут вообщее все оооочень странно :)
    //ВыбДок = Документы.ЗаказПоставщику.Выбрать(НачалоДня(ТекущаяДата()),КонецДня(ТекущаяДата()));
    //Пока ВыбДок.Следующий() Цикл
    // Для Каждого СТр из ВыбДок.Товары цикл
    // Хар = Стр.Характеристика;
    // ТекстХарактеристики = ";
    // Для Каждого ДопРекв из Хар.ДополнительныеРеквизиты Цикл
    // ТекстХарактеристики = ТекстХарактеристики + ДопРекв.Свойство.Заголовок + ": " + ДопРекв.Значение + Символы.ПС;
    // //УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    // КонецЦикла;
    // УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    // Сообщить(ТекстХарактеристики);
    // КонецЦикла;
    //КонецЦикла;

    //--bmk74

    ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
    ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = СтрокаТовары.ЭтоВозвратнаяТара;
    ДополнительныеПараметрыПолученияНаименованияДляПечати.Содержание = СтрокаТовары.Содержание;

    ПредставлениеНоменклатурыДляПечати = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
    СтрокаТовары.НаименованиеПолное,
    СтрокаТовары.Характеристика,
    ,
    ,
    ДополнительныеПараметрыПолученияНаименованияДляПечати);

    ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(СтрокаТовары, ИспользоватьНаборы);
    УстановитьПараметр(ОбластьТоварСтроки, "Товар", ПрефиксИПостфикс.Префикс + ПредставлениеНоменклатурыДляПечати + ПрефиксИПостфикс.Постфикс);

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

    Если ЗаголовокСкидки.ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхСтроки, "СуммаСкидки", ?(ЗаголовокСкидки.ТолькоНаценка, - СтрокаТовары.СуммаСкидки, СтрокаТовары.СуммаСкидки));
    КонецЕсли;

    Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
    ОбластьДанныхСтроки.Параметры.Заполнить(ПустыеДанные);
    Иначе
    ОбластьДанныхСтроки.Параметры.Заполнить(СтрокаТовары);
    КонецЕсли;

    ТабличныйДокумент.Присоединить(ОбластьДанныхСтроки);

    Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
    Сумма = Сумма + СтрокаТовары.Сумма;
    СуммаНДС = СуммаНДС + СтрокаТовары.СуммаНДС;

    Если ЕстьСкидки Тогда
    ВсегоСкидок = ВсегоСкидок + СтрокаТовары.СуммаСкидки;
    ВсегоБезСкидок = ВсегоБезСкидок + СтрокаТовары.СуммаБезСкидки;
    КонецЕсли;

    Если ДанныеПечати.УчитыватьНДС Тогда

    СуммаНДСПоСтавке = СоответствиеСтавокНДС[СтрокаТовары.СтавкаНДС];

    Если СуммаНДСПоСтавке = Неопределено Тогда
    СуммаНДСПоСтавке = 0;
    КонецЕсли;

    СоответствиеСтавокНДС.Вставить(СтрокаТовары.СтавкаНДС, СуммаНДСПоСтавке + СтрокаТовары.СуммаНДС);

    КонецЕсли;
    КонецЕсли;

    КонецЦикла;

    // ТАБЛИЦА ТОВАРЫ - ПОДВАЛ

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

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

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

    Если ЕстьСкидки Тогда
    УстановитьПараметр(ОбластьДанныхПодвала, "ВсегоСкидок", ?(ЗаголовокСкидки.ТолькоНаценка, -ВсегоСкидок, ВсегоСкидок));
    УстановитьПараметр(ОбластьДанныхПодвала, "ВсегоБезСкидок", ВсегоБезСкидок);
    КонецЕсли;

    УстановитьПараметр(ОбластьДанныхПодвала, "Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма));
    ТабличныйДокумент.Присоединить(ОбластьДанныхПодвала);

    // ТАБЛИЦА ТОВАРЫ - ИТОГО НДС

    Если Не ДанныеПечати.УчитыватьНДС Тогда

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

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

    ТабличныйДокумент.Присоединить(ОбластьТоварНДС);

    УстановитьПараметр(ОбластьДанныхНДС, "НДС", НСтр("ru='Без налога (НДС)'"));
    УстановитьПараметр(ОбластьДанныхНДС, "ВсегоНДС", "-");

    ТабличныйДокумент.Присоединить(ОбластьДанныхНДС);

    Иначе

    Для Каждого ТекСтавкаНДС Из СоответствиеСтавокНДС Цикл

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

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

    ТабличныйДокумент.Присоединить(ОбластьТоварНДС);

    УстановитьПараметр(ОбластьДанныхНДС, "НДС", ФормированиеПечатныхФорм.ТекстНДСПоСтавке(ТекСтавкаНДС.Ключ, ДанныеПечати.ЦенаВключаетНДС));
    УстановитьПараметр(ОбластьДанныхНДС, "ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(ТекСтавкаНДС.Значение, , "-"));

    ТабличныйДокумент.Присоединить(ОбластьДанныхНДС);

    КонецЦикла;

    КонецЕсли;

    #КонецОбласти

    #Область ВыводПодвала

    // ПОДВАЛ - СУММА ПРОПИСЬЮ

    СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС);

    ТекстИтоговойСтроки = НСтр("ru='Всего наименований %1, на сумму %2'");

    ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    ТекстИтоговойСтроки,
    НомерСтроки, // Количество
    ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта)); // Сумма

    УстановитьПараметр(ОбластьСуммаПрописью, "ИтоговаяСтрока", ИтоговаяСтрока);
    УстановитьПараметр(ОбластьСуммаПрописью, "СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(
    СуммаКПрописи,
    ДанныеПечати.Валюта));

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

    // ПОДВАЛ - ЭТАПЫ ГРАФИКА ОПЛАТЫ

    Если ТаблицаЭтапыОплаты.Количество() > 1 Тогда

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

    МассивПроверкиВывода.Очистить();
    МассивПроверкиВывода.Добавить(ОбластьШапкиТаблицы);
    МассивПроверкиВывода.Добавить(ОбластьПодвалаТаблицы);

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

    НомерЭтапа = 1;
    Для Каждого ТекЭтап Из ТаблицаЭтапыОплаты Цикл

    ПараметрыСтроки = НовыеПараметрыСтрокиЭтапа();
    ЗаполнитьЗначенияСвойств(ПараметрыСтроки, ТекЭтап);
    ПараметрыСтроки.НомерСтроки = НомерЭтапа;
    Если Не ПараметрыСтроки.ЭтоЗалогЗаТару Тогда
    ПараметрыСтроки.ТекстНДС = ФормированиеПечатныхФорм.СформироватьТекстНДСЭтапаОплаты(
    СоответствиеСтавокНДС,
    ТекЭтап.ПроцентПлатежа);
    Иначе
    ПараметрыСтроки.ВариантОплаты = Строка(ТекЭтап.ВариантОплаты) + " " + НСтр("ru='(залог за тару)'");
    ПараметрыСтроки.ПроцентПлатежа = "-";
    ПараметрыСтроки.ТекстНДС = НСтр("ru='Без налога (НДС)'");
    КонецЕсли;

    ОбластьСтрокиТаблицы.Параметры.Заполнить(ПараметрыСтроки);

    МассивПроверкиВывода.Добавить(ОбластьСтрокиТаблицы);

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

    Если НомерЭтапа=1 Тогда
    ТабличныйДокумент.Вывести(ОбластьШапкиТаблицы);
    МассивПроверкиВывода.Удалить(0);
    КонецЕслИ;

    Иначе

    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ТабличныйДокумент.Вывести(ОбластьШапкиТаблицы);

    КонецЕсли;

    МассивПроверкиВывода.Удалить(МассивПроверкиВывода.ВГраница());

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

    НомерЭтапа = НомерЭтапа + 1;

    КонецЦикла;

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

    КонецЕсли;

    // ПОДВАЛ - ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

    Если ЗначениеЗаполнено(ДанныеПечати.ДополнительнаяИнформация) Тогда

    ОбластьМакета = Макет.ПолучитьОбласть("ДополнительнаяИнформация");
    УстановитьПараметр(ОбластьМакета, "ДополнительнаяИнформация", ДанныеПечати.ДополнительнаяИнформация);
    ТабличныйДокумент.Вывести(ОбластьМакета);

    КонецЕсли;

    // ПОДВАЛ - ПОДПИСИ

    ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
    УстановитьПараметр(ОбластьМакета, "ФИОМенеджер", ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ДанныеПечати.Менеджер, ДанныеПечати.Дата));
    ТабличныйДокумент.Вывести(ОбластьМакета);

    #КонецОбласти

    ЗадатьОбластьПечатиДокумента(
    ТабличныйДокумент,
    НомерСтрокиНачало,
    ОбъектыПечати,
    ДанныеПечати.Ссылка);

    КонецЦикла;

    КонецПроцедуры
```
---
И еще так причесать код

```1c
    //++bmk74 << 18.09.2018 >> Здесь выберем наши допХарактеристики НайтиСледующий
    // немного неправильно в прошлый раз написал...здесь в нашей выборке будет искаться нужная характеристика с ее свойствами

    СтрОтбора = Новый Структура("Характеристика",СтрокаТовары.Характеристика)
    ТекстХарактеристики = ";
    Пока ВыборкаДопХарактеристик.НайтиСледующий(СтрОтбора) Цикл
    ТекстХарактеристики = ТекстХарактеристики + ВыборкаДопХарактеристик.Свойство.Заголовок + ": " + ВыборкаДопХарактеристик.Значение + Символы.ПС;
    КонецЦикла;
    ТекстХарактеристики = Лев(СтрДлина(ТекстХарактеристики)-1);
    //++bmk74 << 18.09.2018 >> Не нужно здесь это, и в макете параметр можно убрать
    //УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    //--bmk74

    // А вот тут вообщее все оооочень странно :)
    //ВыбДок = Документы.ЗаказПоставщику.Выбрать(НачалоДня(ТекущаяДата()),КонецДня(ТекущаяДата()));
    //Пока ВыбДок.Следующий() Цикл
    // Для Каждого СТр из ВыбДок.Товары цикл
    // Хар = Стр.Характеристика;
    // ТекстХарактеристики = ";
    // Для Каждого ДопРекв из Хар.ДополнительныеРеквизиты Цикл
    // ТекстХарактеристики = ТекстХарактеристики + ДопРекв.Свойство.Заголовок + ": " + ДопРекв.Значение + Символы.ПС;
    // //УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    // КонецЦикла;
    // УстановитьПараметр(ОбластьТоварСтроки, "Характеристика", ТекстХарактеристики);
    // Сообщить(ТекстХарактеристики);
    // КонецЦикла;
    //КонецЦикла;

    //--bmk74

    ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
    ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = СтрокаТовары.ЭтоВозвратнаяТара;
    ДополнительныеПараметрыПолученияНаименованияДляПечати.Содержание = СтрокаТовары.Содержание;
    //++bmk74 << 18.09.2018 >> Сюда и вставляем сформированное нами наименование характеристики
    ПредставлениеНоменклатурыДляПечати = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
    СтрокаТовары.НаименованиеПолное,
    ТекстХарактеристики,
    ,
    ,
    ДополнительныеПараметрыПолученияНаименованияДляПечати);

    // ПредставлениеНоменклатурыДляПечати = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
    //СтрокаТовары.НаименованиеПолное,
    //СтрокаТовары.Характеристика,
    //,
    //,
    //ДополнительныеПараметрыПолученияНаименованияДляПечати);
    //--bmk74
```
---
Вставила все,как написали. В ТекстХарактеристики попадают чистые строки. Он просто вместо найденных характеристик выводит чистые строки по количеству строк документа.
---
Я правильно понимаю, у вас может быть несколько характеристик к одной номенклатуре ?
---
Это табличная часть справочника Характеристики. Да, как на картинке у обуви характеристики - размер, цвет и тд
---
я до перебора строк тч делал свертку

```1c
    Материалы.Свернуть("Наименование, Хар, Номер, Единица","Количество");

    //ВыборкаСтрокТовары.Группировка();
    // Пока ВыборкаСтрокТовары.Следующий() Цикл
    Для каждого мат1 из Материалы Цикл
```