База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать расширение для изменения печатной формы документа в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 11 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
21 июля 2026 в 11:20 #38191
Как создать расширение чтобы внести изменения в печатную форму документа. Пример
-
21 июля 2026 в 11:20 #38192
Чтобы создать расширение и внести изменения в печатную форму документа в 1С (например, в документ «РеализацияТоваровУслуг»), можно сделать так:
1. Создаёте расширение конфигурации.
2. В расширении добавляете модуль менеджера документа, например, «Документ.РеализацияТоваровУслуг.МодульМенеджера».
3. Переопределяете процедуры, отвечающие за печать, с помощью аннотации &Вместо, чтобы добавить свою печатную форму или изменить существующую.
4. Создаёте свой макет печатной формы и добавляете его в расширение.
Пример кода из расширения для добавления новой печатной формы:
1С (Код)123456789101112131415161718192021222324252627282930&Вместо("ДобавитьКомандыПечати")Процедура Расш_ДобавитьКомандыПечати(КомандыПечати) Экспорт// Добавляем новую команду печатиКомандаПечати = КомандыПечати.Добавить();КомандаПечати.Идентификатор = "МояНоваяФорма";КомандаПечати.Представление = "Моя новая печатная форма";КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";КомандаПечати.СписокФорм = "ФормаДокументаОбщая,ФормаДокументаТовары";КомандаПечати.Порядок = 10;// Вызов типовой процедуры, если нужно// Оригинал.ДобавитьКомандыПечати(КомандыПечати);КонецПроцедуры&Вместо("Печать")Процедура Расш_Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) ЭкспортЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "МояНоваяФорма") Тогда// Формируем табличный документ для печатиТабДок = Новый ТабличныйДокумент;// Здесь формируем содержимое табличного документа по своему макетуМакет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.МояНоваяПечатнаяФорма");УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "МояНоваяФорма", "МояНоваяФорма",ТабДок, , "ОбщийМакет.МояНоваяПечатнаяФорма");ПараметрыВывода.Вставить("ФормироватьЭД", Истина);КонецЕсли;// Вызов типовой процедуры, если нужно// Оригинал.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);КонецПроцедуры5. Добавляете в расширение макет с именем «ОбщийМакет.МояНоваяПечатнаяФорма» (файл .mxl или .frx).
6. В настройках расширения отключаете «Безопасный режим» (иначе аннотация &Вместо не сработает).
7. Загружаете расширение в базу и проверяете, что в меню печати документа появилась новая форма.
Если хотите изменить существующую печатную форму (например, ТОРГ-12), то можно переопределить функцию печати этой формы, заменив макет на свой.
Рекомендую посмотреть подробный пример здесь:
https://infostart.ru/1c/articles/594348/Там подробно описан весь процесс с кодом и объяснениями.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.