8.х Не формируется макет печатной формы для документа "Отпуск" 1с ЗУП 3.1

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем JediAlex, 7 июн 2017.

  1. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    181
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Делаю внешнюю печатную форму для документа "Отпуск" 1С ЗУП 3.1. Нужен макет справки на оплату чернобыльского отпуска. Сверстал макет., описал его в модуле внешней обработки:
    Код:
    Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.Отпуск"); //Указываем документ к которому делаем внешнюю печ. форму
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Справка на оплату отпуска по ЧАЭС"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Печатная форма справки");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Справка на оплату отпуска по ЧАЭС", "СправкаНаОплатуОтпускаЧАЭС", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
       
    КонецФункции
    
    Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
    КонецФункции
    
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
    КонецПроцедуры
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СправкаНаОплатуОтпускаПоЧАЭС", "Справка на оплату отпуска по ЧАЭС", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
    
    КонецПроцедуры // Печать()
    Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СправкаНаОплатуОтпускаПоЧАЭС";
    МакетОбработки = ПолучитьМакет("СправкаНаОплатуОтпускаЧАЭС");
    ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");
    ОбластьШапка.Параметры.Номер=СсылкаНаДокумент.Номер;
    ОбластьШапка.Параметры.ДатаДокумента=СсылкаНаДокумент.Дата;
    ТабличныйДокумент.Вывести(ОбластьШапка);
    ОбластьСправка= МакетОбработки.ПолучитьОбласть("Справка");
    ОбластьСправка.Параметры.Сотрудник=СсылкаНаДокумент.Сотрудник;
    ОбластьСправка.Параметры.ДатаНачалаОсновногоОтпуска=СсылкаНаДокумент.ДатаНачалаОсновногоОтпуска;
    ОбластьСправка.Параметры.ДатаОкончанияОсновногоОтпуска=СсылкаНаДокумент.ДатаОкончанияОсновногоОтпуска;
    ОбластьСправка.Параметры.НачалоПериодаЗаКоторыйПредоставляетсяОтпуск=СсылкаНаДокумент.НачалоПериодаЗаКоторыйПредоставляетсяОтпуск;
    ОбластьСправка.Параметры.КонецПериодаЗаКоторыйПредоставляетсяОтпуск=СсылкаНаДокумент.КонецПериодаЗаКоторыйПредоставляетсяОтпуск;
    ОбластьСправка.Параметры.Основание=СсылкаНаДокумент.Основание;
    ОбластьСправка.Параметры.СреднийЗаработок=СсылкаНаДокумент.СреднийЗаработок;
    ОбластьСправка.Параметры.СреднийЗаработокРуб=Цел(СсылкаНаДокумент.СреднийЗаработок);
    ОбластьСправка.Параметры.СреднийЗаработокКоп=(СсылкаНаДокумент.СреднийЗаработок-Цел(СсылкаНаДокумент.СреднийЗаработок))*100;
    ОбластьСправка.Параметры.Начислено=СсылкаНаДокумент.Начислено;
    ОбластьСправка.Параметры.НачисленоРуб=Цел(СсылкаНаДокумент.Начислено);
    ОбластьСправка.Параметры.НачисленоКоп=(СсылкаНаДокумент.Начислено-Цел(СсылкаНаДокумент.Начислено))*100;
    ТабличныйДокумент.Вывести(ОбластьСправка);
    ОбластьПодвал=МакетОбработки.ПолучитьОбласть("Подвал");
    ОбластьПодвал.Параметры.Руководитель=СсылкаНаДокумент.Руководитель;
    ОбластьПодвал.Параметры.ГлавныйБухгалтер=СсылкаНаДокумент.ГлавныйБухгалтер;
    ОбластьПодвал.Параметры.РаботникКадровойСлужбы=СсылкаНаДокумент.РаботникКадровойСлужбы;
    ТабличныйДокумент.Вывести(ОбластьПодвал);
    ТабличныйДокумент.АвтоМасштаб = Истина;
    Возврат ТабличныйДокумент;
        КонецФункции
    В режиме предприятия обработка подключилась, но когда открываю любой проведенный документ "Отпуск" и выбираю в печати свой макет, вылетает ошибка:
    {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(247)}: В обработчике печати не был сформирован табличный документ для: СправкаНаОплатуОтпускаЧАЭС
    ВызватьИсключение(ТекстСообщенияОбОшибке);
    Что я не так сделал? помогите пожалуйста. Файл обработки прилагаю. Сама ЗУП типовая.

    Вложения:

  2. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    181
    Симпатии:
    0
    Баллы:
    26
    Разобрался сам. Ошибка была в имени макета

Поделиться этой страницей