Добрый день! На борту имеем: Управление торговлей, редакция 11 (11.3.4.112), 1С:Предприятие 8.3 (8.3.11.2867), Делаю внешнюю печатную форму, но постоянно делается ошибка при печати: В обработчике печати не был сформирован табличный документ для.
Вот код:

```1c
    Функция СведенияОВнешнейОбработке() Экспорт

    МассивМетоданных = Новый Массив;
    МассивМетоданных.Добавить("Документ.РеализацияТоваровУслуг");

    ТЗКоманды = Новый ТаблицаЗначений;
    ТЗКоманды.Колонки.Добавить("Представление");
    ТЗКоманды.Колонки.Добавить("Идентификатор");
    ТЗКоманды.Колонки.Добавить("Использование");
    ТЗКоманды.Колонки.Добавить("ПоказыватьОповещение");
    ТЗКоманды.Колонки.Добавить("Модификатор");

    НоваяСтрокаТЗКоманды = ТЗКоманды.Добавить();
    НоваяСтрокаТЗКоманды.Представление = "Реализация с реквизитами";
    НоваяСтрокаТЗКоманды.Идентификатор = "РеслизацияСРеквизитами";
    НоваяСтрокаТЗКоманды.Использование = "ВызовСерверногоМетода";
    НоваяСтрокаТЗКоманды.ПоказыватьОповещение = Ложь;
    НоваяСтрокаТЗКоманды.Модификатор = "ПечатьMXL";

    ДанныеОбработки = Новый Структура;
    ДанныеОбработки.Вставить("Наименование", "Реализация с реквизитами" );
    ДанныеОбработки.Вставить("Информация", "Ткачук А.С." );
    ДанныеОбработки.Вставить("Назначение", МассивМетоданных);
    ДанныеОбработки.Вставить("Вид", "ПечатнаяФорма");
    ДанныеОбработки.Вставить("Версия", "1.0" );
    ДанныеОбработки.Вставить("БезопасныйРежим", Ложь );
    ДанныеОбработки.Вставить("Команды", ТЗКоманды );
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Реализация с реквизитами", "ПФ_MXL_РеализацияТоваров", "ВызовСерверногоМетода", Истина, "ПечатьMXL");

    Возврат ДанныеОбработки;
    КонецФункции

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

    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL") Экспорт

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

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

    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

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

    Функция СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати, КомплектыПечати, ПараметрыПечати)

    УстановитьПривилегированныйРежим(Истина);

    Если ПараметрыПечати <> Неопределено И ПараметрыПечати.Свойство("ОтображатьСкидки") Тогда
    ОтображатьСкидки = ПараметрыПечати.ОтображатьСкидки;
    Иначе
    ОтображатьСкидки = (Константы.ОтображениеСкидокВПечатныхФормахДокументовПродажи.Получить()
    <> Перечисления.ВариантыВыводаСкидокВПечатныхФормах.НеВыводитьСкидки);
    КонецЕсли;

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

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

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

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

    Если ОбщегоНазначенияУТКлиентСервер.АвторизованВнешнийПользователь() Тогда
    УсловиеПоТипуНоменклатуры = "ИСТИНА";
    Иначе
    УсловиеПоТипуНоменклатуры = "РеализацияТоваровУслуг.Номенклатура.ТипНоменклатуры В
    |(ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))";
    КонецЕсли;

    Запрос.Текст = СтрЗаменить(Запрос.Текст,"&УсловиеПоТипуНоменклатуры",УсловиеПоТипуНоменклатуры);

    Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
    Запрос.УстановитьПараметр("ОтображатьСкидки", ОтображатьСкидки);

    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";

    МассивРезультатов = Запрос.ВыполнитьПакет();
    ДанныеПечати = МассивРезультатов[0].Выбрать();
    ВыборкаПоДокументам = МассивРезультатов[7].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    ПоказыватьНДС = Константы.ВыводитьДопКолонкиНДС.Получить();

    ПервыйДокумент = Истина;

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

    //Для печати комплектов
    Если КомплектыПечати <> Неопределено И КомплектыПечати.Колонки.Найти("Ссылка") <> Неопределено Тогда
    КомплектПечатиПоСсылке = КомплектыПечати.Найти(ДанныеПечати.Ссылка,"Ссылка");
    Если КомплектПечатиПоСсылке = Неопределено Тогда
    КомплектПечатиПоСсылке = КомплектыПечати[0];
    КонецЕсли;
    Если КомплектПечатиПоСсылке.Экземпляров = 0 Тогда
    Продолжить
    КонецЕсли;
    КонецЕсли;

    // Найдем в выборке товары по текущему документу
    СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
    НайденСледующий = ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);

    // Если в накладной только услуги - перейдем к следующему документу

    Если НайденСледующий Тогда
    ВыборкаПоТоварам = ВыборкаПоДокументам.Выбрать();
    ЗаголовокСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ВыборкаПоТоварам, ИспользоватьРучныеСкидки Или ИспользоватьАвтоматическиеСкидки);
    ЕстьСкидки = ЗаголовокСкидки.ЕстьСкидки;
    ЕстьНДС = ДанныеПечати.УчитыватьНДС;
    ВыборкаПоТоварам.Сбросить();
    Иначе
    Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    НСтр("ru = 'В документе %1 отсутствуют товары. Печать накладной не требуется'"),
    ДанныеПечати.Ссылка);

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

    // Макет необходимо получать для каждого документа, т.к. размеры колонок изменяются динамически
    Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_РасходнаяНакладная");

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

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

    // Выводим шапку накладной

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

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

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

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

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

    // Выводим заголовок таблицы Товары

    СуффиксОбластиСтроки = ?(ЕстьСкидки, "СоСкидкой", ") + ?(ЕстьНДС И ПоказыватьНДС, "СНДС", ");
    СуффиксОбластиКолонки = ?(ЕстьСкидки И ЕстьНДС И ПоказыватьНДС, "СоСкидкойСНДС", ?(ЕстьСкидки Или (ЕстьНДС И ПоказыватьНДС), "СоСкидкойИлиСНДС", "));

    ОбластьКолонкаТовар = Макет.Область("ПерваяКолонкаТовара");
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
    + ?(ВыводитьКоды, 0, Макет.Область("КолонкаКодов").ШиринаКолонки)
    ;

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

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

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

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

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

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

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

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

    ПустыеДанные = НаборыСервер.ПустыеДанные();

    // Выводим строки таблицы Товары

    Пока ВыборкаПоТоварам.Следующий() Цикл

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

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

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

    ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(ВыборкаПоТоварам, ИспользоватьНаборы);

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

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

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

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

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

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

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

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

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

    КонецЦикла;

    // Выводим подвал

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

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

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

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

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

    // Выводим ИтогоНДС

    Область = Макет.ПолучитьОбласть("ПодвалНДС");
    СтруктураДанныхПодвалНДС = Новый Структура;
    СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС", СуммаНДС);
    Если ЕстьНДС Тогда
    СтруктураДанныхПодвалНДС.Вставить("НДС", ?(ДанныеПечати.ЦенаВключаетНДС, НСтр("ru='В том числе НДС:'"), НСтр("ru='Сумма НДС:'")));
    Иначе
    СтруктураДанныхПодвалНДС.Вставить("НДС", НСтр("ru='Без налога (НДС)'"));
    КонецЕсли;
    Область.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
    ТабличныйДокумент.Присоединить(Область);

    // Выводим Сумму прописью

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

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

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

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

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

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

    // Выведем нужное количество экземпляров (при печати комплектов)
    Если КомплектыПечати <> Неопределено И КомплектыПечати.Колонки.Найти("Ссылка") <> Неопределено И КомплектПечатиПоСсылке.Экземпляров > 1 Тогда
    ОбластьКопирования = ТабличныйДокумент.ПолучитьОбласть(НомерСтрокиНачало,,ТабличныйДокумент.ВысотаТаблицы);
    Для Итератор = 2 По КомплектПечатиПоСсылке.Экземпляров Цикл
    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ТабличныйДокумент.Вывести(ОбластьКопирования);
    КонецЦикла;
    КонецЕсли;

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

    КонецЦикла;

    ТабличныйДокумент.АвтоМасштаб = Истина;

    Если ПривилегированныйРежим() Тогда
    УстановитьПривилегированныйРежим(Ложь);
    КонецЕсли;

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

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

    Процедура УстановитьПараметр(ОбластьМакета, ИмяПараметра, ЗначениеПараметра)
    ОбластьМакета.Параметры.Заполнить(Новый Структура(ИмяПараметра, ЗначениеПараметра));
    КонецПроцедуры
```

Закреплял макет к ВПФ, обращался к макету в документе реализации и всё равно одна и та же ошибка, уже неделю борюсь
---
Необходимо чтобы идентификатор команды и параметр в процедуре печати совпадали.

```1c
    // Параметры:
    // КоллекцияПечатныхФорм - ТаблицаЗначений - см. ПодготовитьКоллекциюПечатныхФорм();
    // ИмяМакета - Строка - имя макета; это не имя макета, а идентификатор команды для внешней печатной формы!!!
    // СинонимМакета - Строка - представление макета;
    // ТабличныйДокумент - ТабличныйДокумент - печатная форма документа;
    // Картинка - Картинка;
    // ПолныйПутьКМакету - Строка - путь к макету в дереве метаданных, например:
    // "Документ._ДемоСчетНаОплатуПокупателю.ПФ_MXL_СчетЗаказ".
    // Если не указывать этот параметр, то редактирование макета пользователем будет
    // недоступно в форме ПечатьДокументов.
    // ИмяФайлаПечатнойФормы - Строка - имя, используемое при сохранении печатной формы в файл;
    // - Соответствие:
    // * Ключ - ЛюбаяСсылка - ссылка на объект печати;
    // * Значение - Строка - имя файла.
    Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ПриемНаРаботу");
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "ПриемНаРаботу_Т1");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", ");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "ПриемНаРаботу_Т1", "ПриемНаРаботу_Т1", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
    КонецФункции

    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    МакетОбработки = ПолучитьМакет("ПФ_MXL_Т1");
    //УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    // КоллекцияПечатныхФорм,
    // "ПФ_MXL_Т1", "Приказ о приеме",
    // ПолучитьТабличныйДокументПриказаТ1(МакетОбработки, МассивОбъектов, ОбъектыПечати), ,
    // "ПФ_MXL_Т1");
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    "ПриемНаРаботу_Т1", "Приказ о приеме",
    ПолучитьТабличныйДокументПриказаТ1(МакетОбработки, МассивОбъектов, ОбъектыПечати), ,
    "ПФ_MXL_Т1");
    КонецПроцедуры // Печать()
```
---
ЭтотОбъект. наверно дело в корявом коде!
---
Я уже пробовал брать СведенияОВнешнейОбработке и другие процедуры с других обработок, которые так же пишут на этом сайте, но всё равно не работает, та же самая ошибка
---
ну так исправь корявый код и все пойдет!
---
Попробуй запустить в отладчике внешних печатных форм. Поставь точку останова в начале Функции СформироватьПечатнуюФормуНакладная и найди строку, после которой возникает ошибка.
---
Необходимо чтобы идентификатор команды и параметр в процедуре печати совпадали.

```1c
    // Параметры:
    // КоллекцияПечатныхФорм - ТаблицаЗначений - см. ПодготовитьКоллекциюПечатныхФорм();
    // ИмяМакета - Строка - имя макета; это не имя макета, а идентификатор команды для внешней печатной формы!!!
    // СинонимМакета - Строка - представление макета;
    // ТабличныйДокумент - ТабличныйДокумент - печатная форма документа;
    // Картинка - Картинка;
    // ПолныйПутьКМакету - Строка - путь к макету в дереве метаданных, например:
    // "Документ._ДемоСчетНаОплатуПокупателю.ПФ_MXL_СчетЗаказ".
    // Если не указывать этот параметр, то редактирование макета пользователем будет
    // недоступно в форме ПечатьДокументов.
    // ИмяФайлаПечатнойФормы - Строка - имя, используемое при сохранении печатной формы в файл;
    // - Соответствие:
    // * Ключ - ЛюбаяСсылка - ссылка на объект печати;
    // * Значение - Строка - имя файла.
    Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ПриемНаРаботу");
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "ПриемНаРаботу_Т1");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", ");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "ПриемНаРаботу_Т1", "ПриемНаРаботу_Т1", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
    КонецФункции

    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    МакетОбработки = ПолучитьМакет("ПФ_MXL_Т1");
    //УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    // КоллекцияПечатныхФорм,
    // "ПФ_MXL_Т1", "Приказ о приеме",
    // ПолучитьТабличныйДокументПриказаТ1(МакетОбработки, МассивОбъектов, ОбъектыПечати), ,
    // "ПФ_MXL_Т1");
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    "ПриемНаРаботу_Т1", "Приказ о приеме",
    ПолучитьТабличныйДокументПриказаТ1(МакетОбработки, МассивОбъектов, ОбъектыПечати), ,
    "ПФ_MXL_Т1");
    КонецПроцедуры // Печать()
```
---
Спасибо большое! Помог сильно! :)
---
спасибо тебе добрый человек! мне помог твой ответ!