Имя: Пароль:
1C
 
Помогите написать печатную форму к самописному документу к ерп 2.4
0 Обфускация
 
17.07.18
07:33
Был сделан документ, к нему была написана печатная форма. Код написан в форме документа, кнопка работает, форма печатается, но выводится как таблица при формировании, а не в типовой рамочке, как типовые формы. У меня требуют, чтобы форма была в этой типовой рамочке.

Я пишу такой код в модуль менеджера, пытаюсь вывести хотя бы пустую форму для начала

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт

    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "ПФ_MXP_АктДопуска";
    КомандаПечати.Представление = "Акт допуска приборов учета в эксплуатацию";
    КомандаПечати.Обработчик    = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
    КомандаПечати.СписокФорм    = "ФормаСписка,ФормаДокумента";
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
    
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_MXP_АктДопуска") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПФ_MXP_АктДопуска", "ПФ_MXP_АктДопуска",
        СформироватьПечатнуюФормуАКТАДопуска(МассивОбъектов),"Документ.ОКЭ_АктДопускаПрибораУчётаВЭксплуатацию.ПФ_MXP_АктДопуска");
    КонецЕсли;
    
    ОбъектыПечати = Новый СписокЗначений;
    ОбъектыПечати.Добавить(МассивОбъектов[0].ДокументОснование.ДокументОснование.ДокументОснование, "Документ_1");

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

Функция СформироватьПечатнуюФормуАКТАДопуска(МассивОбъектов) Экспорт
//сообщить("тест");    
ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПФ_АктДопуска";
    ТабличныйДокумент.ПолеСверху = 10;
    ТабличныйДокумент.ПолеСлева  = 10;
    ТабличныйДокумент.ПолеСправа = 10;
    ТабличныйДокумент.ПолеСнизу  = 10;
    Макет = документы.ОКЭ_АктДопускаПрибораУчётаВЭксплуатацию.ПолучитьМакет("ПФ_MXP_АктДопуска");
    Область = Макет.ПолучитьОбласть("Шапка");
        
    ТабличныйДокумент.Вывести(Область);    
    Возврат ТабличныйДокумент;

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


Но возникает ошибка
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(86)}: Команда не может быть выполнена для указанного объекта.
            ВызватьИсключение НСтр("ru = 'Команда не может быть выполнена для указанного объекта.'");

Чего может не хватать для типовой печати печатной формы?
1 famnam
 
17.07.18
07:56
Общий модуль УправлениеПечатьюПереопределяемый. Добавить свой документ нужно
2 Обфускация
 
17.07.18
08:12
(1)
это есть, вот так по аналогии написано
СписокОбъектов.Добавить(Документы.ОКЭ_АктДопускаПрибораУчётаВЭксплуатацию);
3 Обфускация
 
17.07.18
11:07
?
4 Пес Барбос
 
17.07.18
11:48
&НаКлиенте
Процедура Команда1(Команда)
    
    ИдентификаторПечатнойФормы = "ПФ_MXL_тратата";        
    НазваниеПечатнойФормы = НСтр("ru = 'Этикетка тратата'");
    
    ТабДок = СформироватьПечФормуНаСервере();
    
    Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
        ТабДок.Показать(НазваниеПечатнойФормы);
        ДокументыПечатались = Истина;
        Возврат;
    КонецЕсли;
    
    МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");    
    КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
    ПечатнаяФорма = МодульУправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
    ПечатнаяФорма.СинонимМакета         = НазваниеПечатнойФормы;
    ПечатнаяФорма.ТабличныйДокумент     = ТабДок;
    ПечатнаяФорма.ИмяФайлаПечатнойФормы = НазваниеПечатнойФормы;
    
    ОбластиОбъектов = Новый СписокЗначений;
    МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);
    
    ДокументыПечатались = Истина;

КонецПроцедуры
5 Alexandr_U1982
 
17.07.18
11:50
Программист всегда исправляет последнюю ошибку.