Здравствуй, Инфостарт!
Осваиваю внешние печатные формы и внешние отчеты под управляемое приложение. Делаю внешнюю печатную форму с собственным макетом для документа "СчетНаОплатуПокупателю". И в отладочной обработке и "в-живую" вылетает на участке

```1c
    ВнешняяОбработка.Печать(ИдентификаторКомандыОбработки, ОбъектыНазначенияМассив);
```
 с ошибкой
```1c
    Недостаточно фактических параметров ВнешняяОбработка.Печать(ИдентификаторКомандыОбработки, ОбъектыНазначенияМассив);
```
 Тестируется на Демо БП 3.0.11.6
http://www.1c-pro.ru/topic26882.html читал.
Совершенно не могу уловить связи между параметрами команды и содержимым модуля, подскажите ЧЯДНП.
Спасибо заранее, модуль и обраба прилагаются.

```1c
    //Функция ПолучитьТАблицуКоманд():
    //Создаем ТЗ Команды
    //Добваляем Колонки:
    // Представление(Строка) - описание печатной формы для пользователя
    // Идентификатор(Строка) - имя макета, ид клманды в обработке печати(я не знаю что он имеет в виду)
    // ИСпользование(Строка) - способ вызова команды обработки
    // -ОткрытиеФормы - в колонке Идентификатор указываетс имя нужной формы(в каком формате, догадайся, мол, сама... :( )
    // -ВызовКлиентскогоМетода - вызов киентской экспортной процедуры МОДУЛЯ ФОРМЫ
    // -ВызовСерверногоМетода - вызов серверной экспортной процедуры МОДУЛЯ ОБЪЕКТА
    // ПоказыватьОповещение(Булево) - показывать ли оповещение при начале и окончании отработки
    // Модификатор(Строка) - для печатной формыдолжен содержать строку ПечатьXML (ну, не можем мы по-простому)
    Функция ПолучитьТАблицуКоманд()
    //Создаем таблицу и колонки
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ИСпользование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
    КонецФункции

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

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

    //======================== от сих предопределенное содержимое===================
    //выходные данные?
    ПараметрыРегистрации= Новый Структура;

    //еще одна нужная весчь
    МассивНАзначений = Новый Массив;

    // Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
    // Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    //Для доп отсета соотвественно - ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОТчет");

    // Теперь нам необходимо передать в виде массива имен, к чему будет подключена наша ВПФ
    // Имейте ввиду, что можно задать имя в таком виде: Документ.* - в этом случае обработка будет подключена ко всем документам в системе,
    // которые поддерживают механизм ВПФ
    МассивНАзначений.Добавить("Документы.СчетНаОплатуПокупателю");//Значение вида Документ.* дает феерический результат ))))
    ПараметрыРегистрации.Вставить("Начзначение", МассивНазначений);

    // Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("Наименование", "Печать счета ИП");//Именно наименование, так как имя реквизита справочника ДопБлаБлаБла

    // Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
    // Нахрена- не знаю, но надо
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);

    //Добавим инормацию об обработке
    ПараметрыРегистрации.Вставить("Версия", "Первая и единственная");
    ПараметрыРегистрации.Вставить("Информация", "Печать счета ИП");

    //Создадм таблицу команд см. ниже
    ТаблицаКоманд= ПолучитьТаблицуКоманд();

    //добавим команду
    ДобавитьКоманду(ТаблицаКоманд, "Печать", "Печать", "ВызовСерверногоМетода", Истина, "ПечатьXML");

    //передадим в структуру
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
    //======================== до сих предопределенное содержимое===================
    КонецФункции
    // Формирует и возвращает текст запроса для выборки данных,
    // необходимых для формирования печатной формы
    Функция ПолучитьТекстЗапросаДляФормированияПечатнойФормыСчетаНаОплат­уПокупателю()

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

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

    Возврат ТекстЗапроса;

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

    // Сформировать печатные формы объектов
    // Функция формирует печатную форму документа.
    //
    // Параметры:
    // МассивОбъектов - Массив - массив документов для печати - обязательный содержит массив ссылок на объекты аналог СсылкаНаОбъект в обычном

    // Возвращаемое значение:
    // ТабличныйДокумент
    //
    Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати)
    Перем ПодразделениеОтветственныхЛиц;

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

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

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    Запрос.УстановитьПараметр("ДополнительнаяКолонкаПечатныхФормДокументов", ДополнительнаяКолонкаПечатныхФормДокументов);
    Запрос.Текст = ПолучитьТекстЗапросаДляФормированияПечатнойФормыСчетаНаОплат­уПокупателю();

    Шапка = Запрос.Выполнить().Выбрать();

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

    Пока Шапка.СледующийПоЗначениюПоля("Ссылка") Цикл

    Макет = УправлениеПечатью.ПолучитьМакет("СчетНаОплату");

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

    ПервыйДокумент = Ложь;

    // Запомним номер строки, с которой начали выводить текущий документ.
    НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

    // Выводим шапку счета

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

    Если ПустаяСтрока(Шапка.ТекстКорреспондента) Тогда
    ТекстКорреспондента = СведенияОПолучателе.НаименованиеДляПечатныхФорм;
    Если ЗначениеЗаполнено(Шапка.БанкДляРасчетов) Тогда
    ТекстКорреспондента = ТекстКорреспондента + Шапка.БанкТекстКорресподента;
    КонецЕсли;
    Иначе
    ТекстКорреспондента = Шапка.ТекстКорреспондента;
    КонецЕсли;
    ОбластьМакета.Параметры.ПредставлениеПолучателя = ТекстКорреспондента;

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

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

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

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

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

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

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

    ОбластьКолонкаТовар = Макет.Область("Товар");
    Если Не ВыводитьКоды Тогда
    ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область("КолонкаКодов").ШиринаКолонки;
    КонецЕсли;

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

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

    Пока Шапка.Следующий() Цикл

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

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

    ОбластьДанных.Параметры.Товар = СокрЛП(Шапка.Товар);
    ОбластьДанных.Параметры.Количество = Шапка.Количество;
    ОбластьДанных.Параметры.ЕдиницаИзмерения = Шапка.ЕдиницаИзмерения;
    ОбластьДанных.Параметры.Цена = Шапка.Цена;

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

    ОбластьСуммы.Параметры.Сумма = Шапка.Сумма;

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

    КонецЦикла;

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

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

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

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

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

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

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

    // Вывести подписи
    Если ОбщегоНазначения.ПолучитьЗначениеРеквизита(Шапка.Получатель, "ЮридическоеФизическоеЛицо")
    = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");

    ПодразделениеОтветственныхЛиц = Шапка.ПодразделениеОрганизации;

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

    ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;
    ОбластьМакета.Параметры.ФИОБухгалтера = Бухгалтер;

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

    ФЛ = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Шапка.Получатель, "ИндивидуальныйПредприниматель");
    ДанныеФЛ = РегистрыСведений.ФИОФизическихЛиц.СрезПоследних(Шапка.Дата, Новый Структура("ФизическоеЛицо",ФЛ));
    Если ДанныеФЛ.Количество() > 0 Тогда
    Предприниматель = СокрЛП(ДанныеФЛ[0].Фамилия) + " " + Лев(СокрЛП(ДанныеФЛ[0].Имя),1) + ". " + Лев(СокрЛП(ДанныеФЛ[0].Отчество),1) + ".";
    Иначе
    Предприниматель = ";
    КонецЕсли;

    ОбластьМакета.Параметры.ФИОПредпринимателя = Предприниматель;

    КонецЕсли;

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

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

    КонецЦикла;

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

    //
    // ВХОДЯЩИЕ:
    // ИменаМакетов - Строка - Имена макетов, перечисленные через запятую
    // МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать
    //
    // ИСХОДЯЩИЕ:
    // КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
    // ПараметрыВывода - Структура - Параметры сформированных табличных документов
    //
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати) Экспорт
    //Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, ТО ЧТО В ПараметрыРегистрации.Наименование) Тогда
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Печать счета ИП ") Тогда
    //УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
    // ТО ЧТО В ПараметрыРегистрации.Наименование, "Заголовок(?)",
    // СформироватьПечатнуюФорму("Счет", МассивОбъектов, ОбъектыПечати)) - собсна процедура печати;
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
    "Печать счета ИП ", "Счет на оплату",
    СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;

    КонецПроцедуры // Печать()
```
---
pvl_mksv, у Вас в процедуре "Печать" объявлено 3 параметра, а при вызове этой процедуры Вы ей передаёте 2 фактических параметра. Вот и выводит сообщение

Недостаточно фактических параметров ВнешняяОбработка.Печать(ИдентификаторКомандыОбработки, ОбъектыНазначенияМассив);

Ройте в этом направлении.
---
pvl_mksv, у Вас в процедуре "Печать" объявлено 3 параметра, а при вызове этой процедуры Вы ей передаёте 2 фактических параметра. Вот и выводит сообщение

Недостаточно фактических параметров ВнешняяОбработка.Печать(ИдентификаторКомандыОбработки, ОбъектыНазначенияМассив);

Ройте в этом направлении.
---
mikr,
Спасибо, друг! Так и знал, что уже спать пора было )))
---
pvl_mksv, И тебе спасибо, Друг,
У меня такая-же проблема, с параметрами, поделись как решил проблему
или хотя-бы, структуру параметров опиши.
Спасибо.
---
,(3),(4) И, да поправит меня уважаемый mikr, во внешней печатной форме объявляется экспортная процедура Печать, это требование объясняется использованием БСП (библиотеки стандартных подсистем), следующим образом:

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

Как мы видим, объявление происходит с тремя параметрами МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, а вызов где-то в недрах модулей БСП

```1c
    ВнешняяОбработка.Печать(ИдентификаторКомандыОбработки, ОбъектыНазначенияМассив);
```

с двумя параметрами ИдентификаторКомандыОбработки, ОбъектыНазначенияМассив.
Мы не можем изменить модули БСП, соотвественно подгоняем объявление процедуры под вызов, то есть выкидываем параметр "Объекты печати" из объявления процедуры, станет

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

Я полагаю, так.
Обраба старая, возможно понадобится подгон под современные версии БСП.
---
Спасибо!
---
На сегодняшний день та же проблема.. Подскажите, как решили, если не сложно..