Сделал внешнюю печатную форму для документа Заказ поставщику, но при выводе на печать она остается пустой. т.е даже нету макета который я скопировал из документа, просто чистый лист показывает.

```1c
    Перем мВалютаРегламентированногоУчета Экспорт;

    Функция Печать () Экспорт

    ТабДокумент = Новый ТабличныйДокумент();

    Возврат ТабДокумент;

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

    // Функция формирует табличный документ с печатной формой заказа или счета,
    // разработанного методистами
    //
    // Возвращаемое значение:
    // Табличный документ - сформированная печатная форма
    //

    Функция ПечатьСчетаЗаказа(Тип)Экспорт

    ВидОперации = СсылкаНаОбъект.ВидОперации;

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

    Запрос = Новый Запрос;

    Макет = ПолучитьМакет("СчетЗаказ");

    // Определим параметры запроса и табличного документа
    // в зависимости от необходимости отображения артикула поставщика
    Если Тип = "ЗаказПоДаннымПоставщика" Тогда

    ВыводитьКоды = Истина;
    ТекстКодАртикул = "Код";
    Колонка = "Артикул" + Символы.ПС + "поставщика";
    ОбластьШапки = Макет.ПолучитьОбласть("ШапкаСКодом");
    ОбластьСтроки = Макет.ПолучитьОбласть("СтрокаСКодом");

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

    ТекстПоляТовараДляТоваров = "
    | ВЫБОР КОГДА (ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(1000)) ЕСТЬ NULL ИЛИ ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(1000)) = "") ТОГДА ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) ИНАЧЕ ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(1000)) КОНЕЦ КАК Товар,";

    ТекстПоляТовараДляУслуг = "
    | ВЫБОР КОГДА (ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(1000)) ЕСТЬ NULL ИЛИ ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(1000)) = "") ТОГДА ВЫРАЗИТЬ (ЗаказПоставщику.Номенклатура.НаименованиеПолное КАК Строка(1000)) ИНАЧЕ ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(1000)) КОНЕЦ КАК Товар,";

    ТекстПоляАртикула = ",
    | АртикулКонтрагента";

    ТекстВыборкиАртикула = ",
    | АртикулНоменклатурыКонтрагента КАК АртикулКонтрагента";

    ТекстВыборкиНоменклатуры = ",
    | ВЫРАЗИТЬ(НаименованиеНоменклатурыКонтрагента КАК Строка(1000)) КАК НаименованиеКонтрагента";

    ТекстИсточникАртикула = "
    | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
    | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура
    | И НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры
    | И НоменклатураКонтрагентов.Контрагент = &Контрагент";

    ТекстИсточникАртикулаБезХарактеристики = "
    | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
    | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура
    | И НоменклатураКонтрагентов.Контрагент = &Контрагент";

    ТекстГруппировкиАртикулаИНоменклатуры = ",
    | АртикулНоменклатурыКонтрагента,
    | ВЫРАЗИТЬ(НаименованиеНоменклатурыКонтрагента КАК Строка(1000))";

    Иначе

    ТекстПоляТовараДляТоваров = "
    | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,";

    СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("ЗаказПоставщику");

    ТекстПоляТовараДляУслуг = "
    | " + СтрокаВыборкиПоляСодержания + " КАК Товар,";

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

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

    ТекстПоляАртикула = ";
    ТекстВыборкиАртикула = ";
    ТекстИсточникАртикула = ";
    ТекстГруппировкиАртикулаИНоменклатуры = ";

    КонецЕсли;

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

    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.Текст ="
    |ВЫБРАТЬ
    | ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + "
    | ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
    | ВложенныйЗапрос.Количество,
    | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
    | ВложенныйЗапрос.Цена,
    | ВложенныйЗапрос.Сумма,
    | ВложенныйЗапрос.СуммаНДС,
    | ВложенныйЗапрос.Характеристика,
    | 1 КАК НомерТЧ,
    | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
    | NULL КАК Серия" + ТекстПоляАртикула + "
    |ИЗ
    | (
    | ВЫБРАТЬ
    | ЗаказПоставщику.Номенклатура,
    | ЗаказПоставщику.ЕдиницаИзмерения,
    | ЗаказПоставщику.Цена КАК Цена,
    | МИНИМУМ(ЗаказПоставщику.НомерСтроки) КАК НомерСтроки,
    | СУММА(ЗаказПоставщику.Количество) КАК Количество,
    | СУММА(ЗаказПоставщику.Сумма ) КАК Сумма,
    | СУММА(ЗаказПоставщику.СуммаНДС ) КАК СуммаНДС,
    | ЗаказПоставщику.ХарактеристикаНоменклатуры КАК Характеристика" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + "
    | ИЗ
    | Документ.ЗаказПоставщику.Оборудование КАК ЗаказПоставщику" + ТекстИсточникАртикула + "
    |
    | ГДЕ
    | ЗаказПоставщику.Ссылка = &ТекущийДокумент
    |
    | СГРУППИРОВАТЬ ПО
    | ЗаказПоставщику.Номенклатура,
    | ЗаказПоставщику.ЕдиницаИзмерения,
    | ЗаказПоставщику.Цена,
    | ЗаказПоставщику.ХарактеристикаНоменклатуры" + ТекстГруппировкиАртикулаИНоменклатуры + "
    | ) КАК ВложенныйЗапрос
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + "
    | ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
    | ВложенныйЗапрос.Количество,
    | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
    | ВложенныйЗапрос.Цена,
    | ВложенныйЗапрос.Сумма,
    | ВложенныйЗапрос.СуммаНДС,
    | ВложенныйЗапрос.Характеристика,
    | 2 КАК НомерТЧ,
    | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
    | NULL КАК Серия" + ТекстПоляАртикула + "
    |ИЗ
    | (
    | ВЫБРАТЬ
    | ЗаказПоставщику.Номенклатура,
    | ЗаказПоставщику.ЕдиницаИзмерения,
    | ЗаказПоставщику.Цена КАК Цена,
    | МИНИМУМ(ЗаказПоставщику.НомерСтроки) КАК НомерСтроки,
    | СУММА(ЗаказПоставщику.Количество) КАК Количество,
    | СУММА(ЗаказПоставщику.Сумма ) КАК Сумма,
    | СУММА(ЗаказПоставщику.СуммаНДС ) КАК СуммаНДС,
    | ЗаказПоставщику.ХарактеристикаНоменклатуры КАК Характеристика" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + "
    | ИЗ
    | Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщику" + ТекстИсточникАртикула + "
    |
    | ГДЕ
    | ЗаказПоставщику.Ссылка = &ТекущийДокумент
    |
    | СГРУППИРОВАТЬ ПО
    | ЗаказПоставщику.Номенклатура,
    | ЗаказПоставщику.ЕдиницаИзмерения,
    | ЗаказПоставщику.Цена,
    | ЗаказПоставщику.ХарактеристикаНоменклатуры" + ТекстГруппировкиАртикулаИНоменклатуры + "
    | ) КАК ВложенныйЗапрос
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЗаказПоставщику.Номенклатура," + ТекстПоляТовараДляУслуг + "
    | ЗаказПоставщику.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
    | ЗаказПоставщику.Количество,
    | ЗаказПоставщику.Номенклатура.ЕдиницаХраненияОстатков,
    | ЗаказПоставщику.Цена,
    | ЗаказПоставщику.Сумма,
    | ЗаказПоставщику.СуммаНДС,
    | NULL,
    | 3 КАК НомерТЧ,
    | ЗаказПоставщику.НомерСтроки КАК НомерСтроки,
    | NULL КАК Серия" + ТекстВыборкиАртикула + "
    |
    |ИЗ
    | Документ.ЗаказПоставщику.Услуги КАК ЗаказПоставщику" + ТекстИсточникАртикулаБезХарактеристики + "
    |
    |ГДЕ
    | ЗаказПоставщику.Ссылка = &ТекущийДокумент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + "
    | ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
    | ВложенныйЗапрос.Количество,
    | ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаИзмерения,
    | ВложенныйЗапрос.Цена,
    | ВложенныйЗапрос.Сумма,
    | ВложенныйЗапрос.СуммаНДС,
    | NULL,
    | 4 КАК НомерТЧ,
    | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
    | NULL КАК Серия" + ТекстПоляАртикула + "
    |ИЗ
    | (
    | ВЫБРАТЬ
    | ЗаказПоставщику.Номенклатура,
    | ЗаказПоставщику.Цена КАК Цена,
    | МИНИМУМ(ЗаказПоставщику.НомерСтроки) КАК НомерСтроки,
    | СУММА(ЗаказПоставщику.Количество) КАК Количество,
    | СУММА(ЗаказПоставщику.Сумма ) КАК Сумма,
    | 0 КАК СуммаНДС" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + "
    | ИЗ
    | Документ.ЗаказПоставщику.ВозвратнаяТара КАК ЗаказПоставщику" + ТекстИсточникАртикулаБезХарактеристики + "
    |
    | ГДЕ
    | ЗаказПоставщику.Ссылка = &ТекущийДокумент
    |
    | СГРУППИРОВАТЬ ПО
    | ЗаказПоставщику.Номенклатура,
    | ЗаказПоставщику.Цена" + ТекстГруппировкиАртикулаИНоменклатуры + "
    | ) КАК ВложенныйЗапрос
    |
    |УПОРЯДОЧИТЬ ПО НомерТЧ ВОЗР, НомерСтроки ВОЗР
    |";

    ЗапросТовары = Запрос.Выполнить().Выгрузить();

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

    Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Организация, Шапка.Дата,);
    Руководитель = Руководители.Руководитель;
    Бухгалтер = Руководители.ГлавныйБухгалтер;

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

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

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

    // Вывести табличную часть
    Если ВыводитьКоды Тогда
    ОбластьШапки.Параметры.Колонка = Колонка;
    КонецЕсли;

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

    Сумма = 0;
    СуммаНДС = 0;

    Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл

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

    ОбластьСтроки.Параметры.Заполнить(ВыборкаСтрокТовары);
    ОбластьСтроки.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
    ОбластьСтроки.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)
    + ?(ВыборкаСтрокТовары.НомерТЧ = 4, " (возвратная тара)", ");

    Если ВыводитьКоды Тогда
    Если Тип = "ЗаказПоДаннымПоставщика" Тогда
    ОбластьСтроки.Параметры.КодАртикул = ВыборкаСтрокТовары.АртикулКонтрагента;
    Иначе
    ОбластьСтроки.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
    КонецЕсли;
    КонецЕсли;

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

    Сумма = Сумма + ВыборкаСтрокТовары.Сумма;
    СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;

    КонецЦикла;

    // Вывести Итого
    ОбластьМакета = Макет.ПолучитьОбласть("Итого");
    ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ТабДокумент.Вывести(ОбластьМакета);

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

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

    // Вывести подписи
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ОбластьМакета.Параметры.Отпустил = "/"+ Руководитель + "/";
    ОбластьМакета.Параметры.Получил = "/"+ Бухгалтер + "/";
    ТабДокумент.Вывести(ОбластьМакета);

    Возврат ТабДокумент;
    КонецФункции // ПечатьСчетаЗаказа()

    мВалютаРегламентированногоУчета = глЗначениеПеременной("ВалютаРегламентированногоУчета");
```
---
смотрите:
Функция ПечатьСчетаЗаказа(Тип)Экспорт
...
Если Тип = "ЗаказПоДаннымПоставщика" Тогда
...
---
программа честно отрабатывает вот этот код:

```1c
    Функция Печать () Экспорт

    ТабДокумент = Новый ТабличныйДокумент();

    Возврат ТабДокумент;

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

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

выдает ошибку не достаточно фактических параметров
---
Логично. У функции есть параметр "Тип" надо бы его указать.
---
Функция Печать () Экспорт

 ТабДокумент = ПечатьСчетаЗаказа(Тип);

 Возврат ТабДокумент;

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

{ВнешняяОбработка.ВБ_ЗаказПоставщику.МодульОбъекта(9,34)}: Переменная не определена (Тип)
 ТабДокумент = ПечатьСчетаЗаказа(<<?>>Тип); (Проверка: Толстый клиент (обычное приложение))
---
смотрите:
Функция ПечатьСчетаЗаказа(Тип)Экспорт
...
Если Тип = "ЗаказПоДаннымПоставщика" Тогда
...
---
Спасибо, помогло
---
Можешь показать код? Заранее Спасибо.
---
Перем мВалютаРегламентированногоУчета Экспорт;

Функция Печать () Экспорт
  Тип = "ЗаказПоставщику";

 ТабДокумент = ПечатьСчетаЗаказа(Тип);

 Возврат ТабДокумент;

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

// Функция формирует табличный документ с печатной формой заказа или счета,
// разработанного методистами
//
// Возвращаемое значение:
// Табличный документ - сформированная печатная форма
//

Функция ПечатьСчетаЗаказа(Тип)Экспорт

ВидОперации = СсылкаНаОбъект.ВидОперации;

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

 Запрос = Новый Запрос;

 Макет = ПолучитьМакет("СчетЗаказ");

 // Определим параметры запроса и табличного документа
 // в зависимости от необходимости отображения артикула поставщика
 Если Тип = "ЗаказПоДаннымПоставщика" Тогда

  ВыводитьКоды = Ложь;
  ТекстКодАртикул = "Код";
  Колонка = "Артикул" + Символы.ПС + "поставщика";
  ОбластьШапки = Макет.ПолучитьОбласть("ШапкаСКодом");
  ОбластьСтроки = Макет.ПолучитьОбласть("СтрокаСКодом");

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

  ТекстПоляТовараДляТоваров = "
  | ВЫБОР КОГДА (ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(1000)) ЕСТЬ NULL ИЛИ ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(1000)) = """") ТОГДА ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) ИНАЧЕ ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(1000)) КОНЕЦ КАК Товар,";

  ТекстПоляТовараДляУслуг = "
  | ВЫБОР КОГДА (ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(1000)) ЕСТЬ NULL ИЛИ ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(1000)) = """") ТОГДА ВЫРАЗИТЬ (ЗаказПоставщику.Номенклатура.НаименованиеПолное КАК Строка(1000)) ИНАЧЕ ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(1000)) КОНЕЦ КАК Товар,";

  ТекстПоляАртикула = ",
   | АртикулКонтрагента";

  ТекстВыборкиАртикула = ",
   | АртикулНоменклатурыКонтрагента КАК АртикулКонтрагента";

  ТекстВыборкиНоменклатуры = ",
   | ВЫРАЗИТЬ(НаименованиеНоменклатурыКонтрагента КАК Строка(1000)) КАК НаименованиеКонтрагента";

  ТекстИсточникАртикула = "
   | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
   | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура
   | И НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры
   | И НоменклатураКонтрагентов.Контрагент = &Контрагент";

  ТекстИсточникАртикулаБезХарактеристики = "
   | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
   | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура
   | И НоменклатураКонтрагентов.Контрагент = &Контрагент";

  ТекстГруппировкиАртикулаИНоменклатуры = ",
   | АртикулНоменклатурыКонтрагента,
   | ВЫРАЗИТЬ(НаименованиеНоменклатурыКонтрагента КАК Строка(1000))";

 Иначе

  ТекстПоляТовараДляТоваров = "
  | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,";

  СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("ЗаказПоставщику");

  ТекстПоляТовараДляУслуг = "
  | " + СтрокаВыборкиПоляСодержания + " КАК Товар,";

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

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

  ТекстПоляАртикула = "";
  ТекстВыборкиАртикула = "";
  ТекстИсточникАртикула = "";
  ТекстГруппировкиАртикулаИНоменклатуры = "";

 КонецЕсли;

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

 Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
 Запрос.Текст ="
 |ВЫБРАТЬ
 | ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + "
 | ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
 | ВложенныйЗапрос.Количество,
 | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
 | ВложенныйЗапрос.Цена,
 | ВложенныйЗапрос.Сумма,
 | ВложенныйЗапрос.СуммаНДС,
 | ВложенныйЗапрос.Характеристика,
 | 1 КАК НомерТЧ,
 | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
 | NULL КАК Серия" + ТекстПоляАртикула + "
 |ИЗ
 | (
 | ВЫБРАТЬ
 | ЗаказПоставщику.Номенклатура,
 | ЗаказПоставщику.ЕдиницаИзмерения,
 | ЗаказПоставщику.Цена КАК Цена,
 | МИНИМУМ(ЗаказПоставщику.НомерСтроки) КАК НомерСтроки,
 | СУММА(ЗаказПоставщику.Количество) КАК Количество,
 | СУММА(ЗаказПоставщику.Сумма ) КАК Сумма,
 | СУММА(ЗаказПоставщику.СуммаНДС ) КАК СуммаНДС,
 | ЗаказПоставщику.ХарактеристикаНоменклатуры КАК Характеристика" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + "
 | ИЗ
 | Документ.ЗаказПоставщику.Оборудование КАК ЗаказПоставщику" + ТекстИсточникАртикула + "
 |
 | ГДЕ
 | ЗаказПоставщику.Ссылка = &ТекущийДокумент
 |
 | СГРУППИРОВАТЬ ПО
 | ЗаказПоставщику.Номенклатура,
 | ЗаказПоставщику.ЕдиницаИзмерения,
 | ЗаказПоставщику.Цена,
 | ЗаказПоставщику.ХарактеристикаНоменклатуры" + ТекстГруппировкиАртикулаИНоменклатуры + "
 | ) КАК ВложенныйЗапрос
 |
 |ОБЪЕДИНИТЬ ВСЕ
 |
 |ВЫБРАТЬ
 | ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + "
 | ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
 | ВложенныйЗапрос.Количество,
 | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
 | ВложенныйЗапрос.Цена,
 | ВложенныйЗапрос.Сумма,
 | ВложенныйЗапрос.СуммаНДС,
 | ВложенныйЗапрос.Характеристика,
 | 2 КАК НомерТЧ,
 | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
 | NULL КАК Серия" + ТекстПоляАртикула + "
 |ИЗ
 | (
 | ВЫБРАТЬ
 | ЗаказПоставщику.Номенклатура,
 | ЗаказПоставщику.ЕдиницаИзмерения,
 | ЗаказПоставщику.Цена КАК Цена,
 | МИНИМУМ(ЗаказПоставщику.НомерСтроки) КАК НомерСтроки,
 | СУММА(ЗаказПоставщику.Количество) КАК Количество,
 | СУММА(ЗаказПоставщику.Сумма ) КАК Сумма,
 | СУММА(ЗаказПоставщику.СуммаНДС ) КАК СуммаНДС,
 | ЗаказПоставщику.ХарактеристикаНоменклатуры КАК Характеристика" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + "
 | ИЗ
 | Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщику" + ТекстИсточникАртикула + "
 |
 | ГДЕ
 | ЗаказПоставщику.Ссылка = &ТекущийДокумент
 |
 | СГРУППИРОВАТЬ ПО
 | ЗаказПоставщику.Номенклатура,
 | ЗаказПоставщику.ЕдиницаИзмерения,
 | ЗаказПоставщику.Цена,
 | ЗаказПоставщику.ХарактеристикаНоменклатуры" + ТекстГруппировкиАртикулаИНоменклатуры + "
 | ) КАК ВложенныйЗапрос
 |
 |ОБЪЕДИНИТЬ ВСЕ
 |
 |ВЫБРАТЬ
 | ЗаказПоставщику.Номенклатура," + ТекстПоляТовараДляУслуг + "
 | ЗаказПоставщику.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
 | ЗаказПоставщику.Количество,
 | ЗаказПоставщику.Номенклатура.ЕдиницаХраненияОстатков,
 | ЗаказПоставщику.Цена,
 | ЗаказПоставщику.Сумма,
 | ЗаказПоставщику.СуммаНДС,
 | NULL,
 | 3 КАК НомерТЧ,
 | ЗаказПоставщику.НомерСтроки КАК НомерСтроки,
 | NULL КАК Серия" + ТекстВыборкиАртикула + "
 |
 |ИЗ
 | Документ.ЗаказПоставщику.Услуги КАК ЗаказПоставщику" + ТекстИсточникАртикулаБезХарактеристики + "
 |
 |ГДЕ
 | ЗаказПоставщику.Ссылка = &ТекущийДокумент
 |
 |ОБЪЕДИНИТЬ ВСЕ
 |
 |ВЫБРАТЬ
 | ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + "
 | ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
 | ВложенныйЗапрос.Количество,
 | ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаИзмерения,
 | ВложенныйЗапрос.Цена,
 | ВложенныйЗапрос.Сумма,
 | ВложенныйЗапрос.СуммаНДС,
 | NULL,
 | 4 КАК НомерТЧ,
 | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
 | NULL КАК Серия" + ТекстПоляАртикула + "
 |ИЗ
 | (
 | ВЫБРАТЬ
 | ЗаказПоставщику.Номенклатура,
 | ЗаказПоставщику.Цена КАК Цена,
 | МИНИМУМ(ЗаказПоставщику.НомерСтроки) КАК НомерСтроки,
 | СУММА(ЗаказПоставщику.Количество) КАК Количество,
 | СУММА(ЗаказПоставщику.Сумма ) КАК Сумма,
 | 0 КАК СуммаНДС" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + "
 | ИЗ
 | Документ.ЗаказПоставщику.ВозвратнаяТара КАК ЗаказПоставщику" + ТекстИсточникАртикулаБезХарактеристики + "
 |
 | ГДЕ
 | ЗаказПоставщику.Ссылка = &ТекущийДокумент
 |
 | СГРУППИРОВАТЬ ПО
 | ЗаказПоставщику.Номенклатура,
 | ЗаказПоставщику.Цена" + ТекстГруппировкиАртикулаИНоменклатуры + "
 | ) КАК ВложенныйЗапрос
 |
 |УПОРЯДОЧИТЬ ПО НомерТЧ ВОЗР, НомерСтроки ВОЗР
 |";

 ЗапросТовары = Запрос.Выполнить().Выгрузить();

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

 Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Организация, Шапка.Дата,);
 Руководитель = Руководители.Руководитель;
 Бухгалтер = Руководители.ГлавныйБухгалтер;

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

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

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

 // Вывести табличную часть
 Если ВыводитьКоды Тогда
  ОбластьШапки.Параметры.Колонка = Колонка;
 КонецЕсли;

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

 Сумма = 0;
 СуммаНДС = 0;

 Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл

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

  ОбластьСтроки.Параметры.Заполнить(ВыборкаСтрокТовары);
  ОбластьСтроки.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
  ОбластьСтроки.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)
          + ?(ВыборкаСтрокТовары.НомерТЧ = 4, " (возвратная тара)", "");

  Если ВыводитьКоды Тогда
   Если Тип = "ЗаказПоДаннымПоставщика" Тогда
    ОбластьСтроки.Параметры.КодАртикул = ВыборкаСтрокТовары.АртикулКонтрагента;
   Иначе
    ОбластьСтроки.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
   КонецЕсли;
  КонецЕсли;

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

  Сумма = Сумма + ВыборкаСтрокТовары.Сумма;
  СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;

 КонецЦикла;

 // Вывести Итого
 ОбластьМакета = Макет.ПолучитьОбласть("Итого");
 ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
 ТабДокумент.Вывести(ОбластьМакета);

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

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

 // Вывести подписи
 ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
 //ОбластьМакета.Параметры.Отпустил = "/"+ Руководитель + "/";
 //ОбластьМакета.Параметры.Получил = "/"+ Бухгалтер + "/";
 ТабДокумент.Вывести(ОбластьМакета);

 Возврат ТабДокумент;
КонецФункции // ПечатьСчетаЗаказа()

мВалютаРегламентированногоУчета = глЗначениеПеременной("ВалютаРегламентированногоУчета");