Имя: Пароль:
1C
1С v8
Внешняя печатная форма, ошибка
0 lg2marvel
 
25.04.19
14:52
Добрый день,
делаю внешнюю печатную форму:
Функция  СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    
    Наименование = УказатьНаименованиеВнешнейПечатнойФормы();
    
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.Увольнение"); //Указываем документ к которому делаем внешнюю печ. форму
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", Наименование); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.194.25");
    ПараметрыРегистрации.Вставить("Информация", "Справка средняя зарплата за 3 месяца");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Справка для пособия по безработице (внешняя)", "ПФ_MXL_СправкаОСреднемЗаработке2019", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
КонецФункции

Функция УказатьНаименованиеВнешнейПечатнойФормы()

    Наименование = ЭтотОбъект.Метаданные().Представление();
    Возврат Наименование;

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

Функция ПолучитьМетаданныеДокументаПечати()

    ПолноеИмя = Документ.Метаданные().ПолноеИмя();
    Возврат ПолноеИмя;

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

Функция УказатьНаименованиеКомандыПечати()

    Наименование = ЭтотОбъект.Метаданные().ПолноеИмя();
    Возврат Наименование;

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

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

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

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

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


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

    //    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВРТУ", "Счет на оплату (шаблон)", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        УказатьНаименованиеКомандыПечати(),
        УказатьНаименованиеВнешнейПечатнойФормы(),
        ПечатьФормы(МассивОбъектов));

КонецПроцедуры // Печать()

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

    МакетОбработки = ПолучитьМакет("ПФ_MXL_СправкаОСреднемЗаработке2019");
        
    ОбластьЛого = МакетОбработки.ПолучитьОбласть("Лого");
    ТабличныйДокумент.Вывести(ОбластьЛого);
            
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ТабличныйДокумент.АвтоМасштаб = Истина;

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

Выдает ошибку:
{ОбщийМодуль.УправлениеПечатью.Модуль(1522)}: В обработчике печати не был сформирован табличный документ для: ПФ_MXL_СправкаОСреднемЗаработке2019
            ВызватьИсключение(ТекстСообщенияОбОшибке);

Что я упустил?
1 Simod
 
25.04.19
14:57
Макет неправильно получаешь. Попробуй так:

    ОтчетОбъект    = РеквизитФормыВЗначение("Отчет");
    Макет        = ОтчетОбъект.ПолучитьМакет("Макет");
2 lg2marvel
 
25.04.19
15:01
(1) спасибо. Нашел, проблема немного не тут
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    //    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВРТУ", "Счет на оплату (шаблон)", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
    //    УказатьНаименованиеКомандыПечати(),
        "ПФ_MXL_СправкаОСреднемЗаработке2019",
        УказатьНаименованиеВнешнейПечатнойФормы(),
        ПечатьФормы(МассивОбъектов));

КонецПроцедуры // Печать()