Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 фев 2026, 04:21

Не удалось сформировать печатную форму в расширении

Автор Sanchez, 28 янв 2026, 14:51

0 Пользователей и 1 гость просматривают эту тему.

Sanchez

Добрый день!
Начал изучать печатные формы, добавил в Расширение документ Реалиация товаров и услуг. В модуле менеджера написал код для добавления печатной формы
Процедура Расш1_ДобавитьКомандыПечати(КомандыПечати)
   
        КомандаПечати = КомандыПечати.Добавить();
        КомандаПечати.Идентификатор = "ПечатнаяФормаОрдер";
        КомандаПечати.Представление = НСтр("ru = 'Ордер на отгрузку'");
        КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
        КомандаПечати.Порядок = 40;
        КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
        КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'ОрдерНаОтгрузку'");

КонецПроцедуры
Создал команду и в ней описал код

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) 
   
    ТабДок = Новый ТабличныйДокумент ;
   
    Печать(ТабДок,ПараметрКоманды);
   
    ТабДок.Показать("Ордер на отгрузку");
   
КонецПроцедуры   

&НаСервере
Процедура Печать(ТабДок,СсылкаНаДокумент)
   
    Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("ОрдерНаОтгрузку");
   
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); 
   
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

    ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы");   
   
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
   
    //ОбластьШапка.Параметры.Комментарий = Документы.РеализацияТоваровУслуг.Комментарий;
   
    ТабДок.Вывести(ОбластьШапка);
   
    ТабДок.Вывести(ОбластьШапкаТаблицы);
   
    ТабДок.Вывести(ОбластьСтрокаТаблицы);
   
    ТабДок.Вывести(ОбластьПодвалТаблицы);
   
КонецПроцедуры   
Выдает ошибку при попытке напечатать форму
Не удалось сформировать печатную форму "ПечатнаяФормаОрдер". Обратитесь к администратору.
{ОбщийМодуль.УправлениеПечатью.Модуль(4449)}:ВызватьИсключение ТекстСообщенияОбОшибке;
{ОбщаяФорма.ПечатьДокументов.Форма(792)}:ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(Параметры.ИмяМенеджераПечати, ИменаМакетов,
{ОбщаяФорма.ПечатьДокументов.Форма(61)}:КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(353)}:ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
{ОбщийМодуль.УправлениеПечатьюГлобальный.Модуль(13)}:УправлениеПечатьюСлужебныйКлиент.ПродолжитьВыполнениеКомандыПечати();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]



Sanchez


nvj84

Вы изучаете БСП(по первой вставке это явно оно)? Пользовались стандартным конструктором чтобы сгенерировать печатную форму (Конструктор печати)? Если пользовались и ни чего не меняли то он вам затер библиотечную процедуру Печать (название если не менять в конструкторе так и будет).

sali

ну во-первых, дай имя расширению и не забудь проверить изменения в приставках с "Расш1_" на то что ты задал. во-вторых поменяй имя процедуры для печати, она не должна быть одноименной с процедурой в основной конфигурации (просто вылетит ошибка , либо вообще не запуститься)
для чего Перед основной запускаешь? учти, что твои добавления могут затереться кодом из основной конфигурации, потому что выполняться будет сначала твой код , а потом основной 

Sanchez

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

Sanchez

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

sali


bsn-chita

Что делали(конструктор печати запускали?) и что хотите получить в итоге.

Sanchez

sali, у меня есть шаблон в Excel. По нему создал макет. Так же сделал обработку в модуле объекта написал следующее

Функция СведенияОВнешнейОбработке() Экспорт
   
    МассивНазначений = Новый Массив();
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");   
   
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    ПараметрыРегистрации.Назначение = МассивНазначений;
   
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Ордер на отгрузку'");
    НоваяКоманда.Идентификатор = "ОрдерНаОтгрузку";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();   
   
    Возврат ПараметрыРегистрации;
   
КонецФункции

&НаСервере

Процедура Печать()

   

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

Хочу понять алгоритм как мне все это прописать

Sanchez

bsn-chita, ответил. на выходе печатную форму по шаблону Excel. cам макет создал, параметры нужные указал

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск