Добавление печати в печатные формы 1С:Предприятие — задача, с которой рано или поздно сталкивается каждый разработчик или бухгалтер. Без корректно настроенной печати документы теряют юридическую силу, а компании рискуют получить штрафы за несоответствие требованиям законодательства. Но если вы никогда не работали с макетами форм или языком , процесс может показаться сложным.

На практике существует несколько способов вставить печать — от ручного редактирования макета в режиме Конфигуратор до программного управления через встроенный язык. Выбор метода зависит от версии платформы (8.3, 8.3.20+), типа документа (счет, акт, договор) и даже от формата печати (PDF, Excel, непосредственная печать на принтере). В этой статье разберём все актуальные подходы с учётом последних обновлений , а также типичные ошибки, из-за которых печать"съезжает" или не отображается вовсе.

Особое внимание уделим двум ключевым моментам: соответствию печати нормам ГОСТ Р 7.0.97-2016 (для официальных документов) и адаптивности — чтобы печать корректно отображалась как на экране, так и при выводе на бумагу разных форматов. Если вы работаете с облачной версией 1С:Фреш, часть настроек может отличаться — об этом тоже расскажем отдельно.

Прежде чем переходить к инструкциям, проверьте:

  • 🔹 Версию вашей платформы (Справка → О программе). Способы для 8.2 и 8.3 различаются кардинально.
  • 🔹 Права доступа: для редактирования макетов нужен режим Конфигуратор с правами администратора.
  • 🔹 Формат печати: если документ выводится в Excel, печать добавляется иначе, чем для PDF или прямой печати.
📊 Какую версию 1С вы используете?
1С:Предприятие 8.3 (обычная)
1С:Предприятие 8.3 (управляемые формы)
1С:Фреш (облако)
1С 7.7
Не знаю

1. Добавление печати через редактор макета (без программирования)

Самый простой способ — отредактировать макет печатной формы вручную. Он подходит для типовых конфигураций (1С:Бухгалтерия, 1С:Зарплата и Управление Персоналом), где не требуется сложная логика размещения. Алгоритм работает для управляемых и обычных форм, но с нюансами.

Шаги для управляемых форм (актуально для 8.3.10+):

  1. Откройте конфигуратор (Файл → Конфигуратор или запустите с ключом /Config).
  2. Перейдите в раздел Объекты → Документы → [ВашДокумент] → Печатные формы.
  3. Выберите нужную форму (например, ПечатнаяФормаСчетНаОплату) и откройте её макет двойным кликом.
  4. В редакторе макета добавьте графический элемент: Вставка → Рисунок.
  5. Загрузите файл печати в формате .png или .jpg (рекомендуемый размер — 150×150 пикселей, разрешение 300 dpi).
  6. Расположите рисунок в нужном месте (обычно внизу документа, справа) и зафиксируйте его положение с помощью привязок (Формат → Привязки).

Для обычных форм (8.2 или 8.3 в режиме совместимости) путь будет другим: Объекты → Документы → [ВашДокумент] → Формы → ФормаДокумента → Макет.

Здесь редактор макетов упрощён, и для точного позиционирования печати может потребоваться правка кода формы.

⚠️ Внимание: Если печать добавляется в документ, которыйlater будет выгружаться в PDF или Excel, проверьте настройку ПечатьВФоновомРежиме в параметрах макета. При значении Истина графические элементы могут не отображаться в экспортированных файлах.

Убедитесь, что файл в формате PNG с прозрачным фоном|Разрешение не менее 300 dpi для печати|Размер изображения соответствует реальному размеру печати (обычно 30–50 мм)|Цветовая схема — CMYK для профессиональной печати|Файл назван латиницей без пробелов (например, pechat_ooo.png)

-->

2. Программное добавление печати через встроенный язык

Если печать нужно вставлять динамически (например, в зависимости от организации или типа документа), придётся писать код на встроенном языке . Этот метод гибкий, но требует знаний основ программирования. Рассмотрим два сценария: для управляемых и обычных форм.

Для управляемых форм (8.3.8+) используйте обработчик события ПриКомпоновкеРезультата:

Процедура ПечатнаяФормаСчетНаОплатуПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

// Добавляем печать в нижний колонтитул

ОбластьКолонтитул = ДокументРезультат.Колонтитулы.Низ;

Картинка = Новый Картинка(ПутьКФайлуПечати); // Например,"C:\Pechati\pechat.png"

ОбластьКолонтитул.Рисунки.Добавить(Картинка, ТипРасположенияКартинки.ПоКонтуру, 10, 10, 50, 50);

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

Для обычных форм код вставляется в модуль объекта:

Процедура Печать(ТабличныйДокумент)

// Загружаем макет

Макет = Документы.[ВашДокумент].ПечатнаяФормаСчетНаОплату.ПолучитьМакет("Макет");

// Добавляем печать

ТабличныйДокумент.ВывестиМакет(Макет);

ТабличныйДокумент.Рисунки.Добавить(Новый Картинка(ПутьКФайлуПечати), 10, 10, 50, 50);

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

Где взять ПутьКФайлуПечати? Оптимальные варианты:

  • 📁 Хранить печать в КаталогеИнформационнойБазы (путь получается через КаталогИБ).
  • 🖼 Внедрять изображение прямо в конфигурацию как ДвоичныеДанные (через ХранилищеЗначений).
  • ☁ Подгружать из облачного хранилища (для 1С:Фреш).

⚠️ Внимание: При программном добавлении печати в PDF через ЗаписьPDF координаты указываются в пунктах (1 пункт = 1/72 дюйма), а не в пикселях! Чтобы печать не"уползла", используйте формулу:

РазмерВПунктах = РазмерВМм * 72 / 25.4;
💡

Если печать отображается размыто при печати на принтере, увеличьте разрешение исходного файла до 600 dpi и сохраните его в формате TIFF с компрессией LZW.

3. Настройка печати для разных организаций

В реальных базах часто ведётся учёт по нескольким юридическим лицам, и у каждого — своя печать. Чтобы не править макет вручную при смене организации, используйте условное добавление печати через код.

Пример для управляемых форм:

Процедура ПечатнаяФормаАктВыполненныхРаботПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

Организация = ДанныеРасшифровки.Параметры.Получить("Организация");

ПутьКПечати ="";

Если Организация.Наименование ="ООО Ромашка" Тогда

ПутьКПечати = КаталогИБ +"\Pechati\romashka.png";

ИначеЕсли Организация.Наименование ="ИП Иванов" Тогда

ПутьКПечати = КаталогИБ +"\Pechati\ivanov.png";

КонецЕсли;

Если ПутьКПечати <>"" Тогда

Картинка = Новый Картинка(ПутьКПечати);

ДокументРезультат.НижнийКолонтитул.Рисунки.Добавить(Картинка, ТипРасположенияКартинки.ПоКонтуру, 10, 10, 40, 40);

КонецЕсли;

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

Для хранения путей к печатям удобно использовать справочник"Организации" с реквизитом ПутьКПечати (тип Строка). Тогда код упрощается:

ПутьКПечати = Организация.ПутьКПечати;

Альтернативный подход — хранить сами изображения печатей в справочнике как ДвоичныеДанные:

Картинка = Новый Картинка(Организация.Печать.ПолучитьДвоичныеДанные);

⚠️ Внимание: В облачной версии 1С:Фреш прямой доступ к файловой системе ограничен. Для загрузки печатей используйте механизм ХранилищеДополнительнойИнформации или подключите внешнее хранилище через 1С:Диск.

4. Печать в PDF и Excel: особенности и ошибки

При экспорте документа в PDF или Excel печать может пропадать или искажаться. Это связано с тем, что внешние форматы обрабатывают графику иначе, чем внутренний механизм . Разберём типичные проблемы и решения.

Проблема 1: Печать не отображается в PDF.

Решение: Используйте метод ЗаписьPDF с явным указанием рисунка:

ЗаписьPDF = Новый ЗаписьPDF;

ЗаписьPDF.НачатьДокумент;

ЗаписьPDF.НачатьСтраницу;

//... вывод данных документа...

ЗаписьPDF.Рисунок(Новый Картинка(ПутьКПечати), 100, 100, 200, 200); // Координаты в пунктах!

ЗаписьPDF.ЗакончитьСтраницу;

ЗаписьPDF.ЗакончитьДокумент;

Проблема 2: Печать в Excel выводится как пустой квадрат.

Решение: Для Excel используйте метод ВставитьРисунок с параметром ТипВставкиРисунка.Встроенный:

ТаблицаExcel = Новый ТабличныйДокумент;

ТаблицаExcel.Вывести(МакетДокумента);

//...

ТаблицаExcel.ВставитьРисунок(Новый Картинка(ПутьКПечати), 1, 1, ТипВставкиРисунка.Встроенный);

Проблема 3: Печать"съезжает" при изменении масштаба документа.

Решение: Зафиксируйте положение печати относительно ячейки или края страницы. В макете установите привязки:

  • 📍 По левому краю: Лево = 10 мм от края.
  • 📍 По нижнему краю: Низ = 20 мм от низа страницы.

Критичный нюанс для PDF: если документ содержит несколько страниц, печать будет дублироваться на каждой. Чтобы добавить её только на последнюю страницу, используйте обработчик ПриОкончанииСтраницы с проверкой номера страницы.

Формат вывода Метод добавления печати Типичные ошибки Решение
Непосредственная печать ТабличныйДокумент.Рисунки.Добавить Печать обрезается по краям Установите поля страницы не менее 15 мм
PDF ЗаписьPDF.Рисунок Печать не видна Проверьте координаты (в пунктах!) и слой
Excel ВставитьРисунок Печать выводится как ссылка Используйте ТипВставкиРисунка.Встроенный
HTML (веб-клиент) Тег <img> в макете Печать растягивается Задайте фиксированные размеры в пикселях

5. Динамическая печать: изменение в зависимости от условий

Иногда печать нужно не просто вставить, а модифицировать в зависимости от данных документа. Например:

  • 🔴 Добавлять штамп"Копия" на неоригинальные экземпляры.
  • 🔵 Менять цвет печати для черновых версий.
  • 🟢 Подставлять печать контрагента в договорах.

Реализуется это через комбинацию кода и графических примитивов. Пример добавления штампа"Копия":

Процедура ПечатнаяФормаДоговорПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

Если ДанныеРасшифровки.Параметры.Получить("ЭтоКопия") Тогда

// Добавляем полупрозрачный текст"КОПИЯ"

Текст = ДокументРезультат.ДобавитьТекст;

Текст.УстановитьТекст("КОПИЯ");

Текст.Шрифт.Размер = 48;

Текст.Шрифт.Цвет = Новый Цвет(255, 0, 0, 100); // Красный, 40% прозрачности

Текст.Положение = Новая Точка(100, 100); // Координаты в пунктах

Текст.УголПоворота = 45; // Под углом

КонецЕсли;

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

Для изменения цвета печати используйте метод ИзменитьЦвет:

Картинка = Новый Картинка(ПутьКПечати);

Картинка.ИзменитьЦвет(Новый Цвет(0, 0, 255)); // Синий цвет

⚠️ Внимание: При динамическом изменении печати (например, добавлении текста поверх) итоговое изображение может потерять чёткость. Для критичных документов лучше заранее подготовить несколько вариантов печатей (например, pechat_original.png и pechat_copy.png) и подставлять нужную.

Как добавить печать контрагента автоматически?

1. В справочнике"Контрагенты" добавьте реквизит"Печать" типа"ХранилищеЗначений".

2. При загрузке договора проверяйте, заполнен ли реквизит:

Если Контрагент.Печать.Заполнено Тогда

КартинкаКонтрагента = Новый Картинка(Контрагент.Печать.ПолучитьДвоичныеДанные);

ДокументРезультат.Рисунки.Добавить(КартинкаКонтрагента, 300, 10, 50, 50);

КонецЕсли;

3. Для автоматической подгрузки печатей по ИНН интегрируйтесь с сервисами вроде"Контур.Фокус" или"СБИС".

6. Типичные ошибки и их исправление

Даже опытные разработчики сталкиваются с проблемами при работе с печатями в . Вот топ-5 ошибок и способы их устранения:

1. Печать не отображается в предварительном просмотре, но печатается на принтере.

🔧 Причина: В настройках макета отключён показ графики в режиме предварительного просмотра.

🔧 Решение: В редакторе макета перейдите в Сервис → Параметры → Показывать рисунки и включите опцию.

2. Печать выводится в виде красного крестика.

🔧 Причина: Неверный путь к файлу или отсутствие прав на чтение.

🔧 Решение: Проверьте путь через Сообщить(ПутьКПечати) и права доступа к папке.

3. Печать растягивается или сжимается.

🔧 Причина: В макете не зафиксированы размеры рисунка.

🔧 Решение: В свойствах рисунка установите СохранятьПропорции = Истина и зафиксируйте ширину/высоту.

4. Печать не видна в PDF, но есть в печатной форме.

🔧 Причина: При экспорте в PDF не указан слой для рисунка.

🔧 Решение: Используйте ЗаписьPDF.НачатьСлой("Печать") перед добавлением рисунка.

5. Печать дублируется на каждой странице многостраничного документа.

🔧 Причина: Рисунок добавлен в колонтитул, который повторяется на всех страницах.

🔧 Решение: Добавляйте печать в основной текст документа с привязкой к последней странице.

⚠️ Внимание: В последних версиях 1С:Предприятие 8.3.22+ изменился механизм работы с графикой в PDF. Если вы используете ЗаписьPDF, обновите код согласно официальной документации (требуется авторизация на сайте 1С:ИТС).

💡

Перед внедрением печати в рабочую базу протестируйте её вывод на всех типах документов (счета, акты, договора) и во всех форматах (печать, PDF, Excel).

7. Альтернативные способы: внешние обработки и расширения

Если стандартные методы не подходят (например, в сильно доработанных конфигурациях), рассмотрите альтернативные подходы:

1. Внешние обработки печати.

Многие партнёры предлагают готовые обработки для гибкой настройки печатей. Популярные решения:

  • 📄 "Универсальная печатная форма" (от Инфостарт).
  • 🖼 "Печати и подписи для 1С" (от Кодерлайн).

Преимущество: не требуется правка конфигурации. Недостаток: платная лицензия.

2. Расширения конфигурации.

С версии 8.3.15+ можно доработать печатные формы через расширения, не меняя основную конфигурацию. Пример:

  1. Создайте новое расширение (Конфигуратор → Расширения → Добавить).
  2. В расширении переопределите модуль печатной формы.
  3. Добавьте код для вставки печати (аналогично примерам выше).

3. Интеграция с внешними системами.

Для корпоративных решений печать можно подгружать из:

  • 📂 1С:Документооборот (если он используется в компании).
  • ☁ Облачных хранилищ (1С:Диск, Яндекс.Диск).
  • 🏢 Систем электронного документооборота (Диадок, Контур.Диадок).

⚠️ Внимание: При использовании внешних обработок или расширений убедитесь, что они совместимы с вашей версией платформы. Например, обработки для 8.3.18 могут не работать в 8.3.22 из-за изменений в API.

FAQ: Частые вопросы по работе с печатями в 1С

Можно ли вставить печать в 1С без доступа к конфигуратору?

Да, но с ограничениями. В пользовательском режиме (1С:Предприятие) вы можете:

  • 📑 Использовать внешние печатные формы (если они поддерживаются вашей конфигурацией).
  • 🖼 Вставить печать как подпись в документы Word/Excel, если 1С интегрирована с Microsoft Office.

Однако для полноценной вставки печати в макеты всё равно потребуется доступ к Конфигуратору или помощь администратора.

Как сделать печать полупрозрачной, чтобы текст документа был виден сквозь неё?

Для этого нужно модифицировать изображение печати до загрузки в 1С. Сделайте следующее:

  1. Откройте файл печати в графическом редакторе (Photoshop, GIMP).
  2. Добавьте альфа-канал (прозрачность) и уменьшите непрозрачность до 50–70%.
  3. Сохраните в формате PNG-24 с поддержкой прозрачности.
  4. Загрузите в макет 1С.

В коде 1С прозрачность изображений не регулируется — это делается на уровне исходного файла.

Почему печать в PDF выводится с низким качеством?

Это связано с настройками экспорта в PDF. Проверьте:

  • 📏 Разрешение изображения: печать должна быть не менее 300 dpi.
  • 🖨 Параметры ЗаписьPDF: используйте КачествоПечати.Высокое:
ЗаписьPDF.КачествоПечати = КачествоПечати.Высокое;

Если проблема сохраняется, экспортируйте документ в PDF через виртуальный принтер (например, PDF24 или doPDF).

Как вставить печать в форму документа, а не в печатную форму?

Для отображения печати на экране в форме документа (например, в карточке счета) используйте элемент управления ПолеHTMLДокумента или ПолеКартинки:

  1. Откройте форму документа в конфигураторе.
  2. Добавьте элемент ПолеКартинки на форму.
  3. В модуле формы пропишите загрузку изображения:
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    

    Картинка = Новый Картинка(ПутьКПечати);

    ЭлементыФормы.Печать.Картинка = Картинка;

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

⚠️ Учтите, что такое решение не подходит для печати на бумаге — только для отображения на экране.

Можно ли в 1С автоматически подставлять печать в зависимости от типа документа?

Да, это реализуется через условную логику в коде печатной формы. Пример для управляемых форм:

Процедура ПечатнаяФормаПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

ТипДокумента = ДанныеРасшифровки.Параметры.Получить("ТипДокумента");

Если ТипДокумента ="Счет" Тогда

ПутьКПечати = КаталогИБ +"\Pechati\schet.png";

ИначеЕсли ТипДокумента ="Договор" Тогда

ПутьКПечати = КаталогИБ +"\Pechati\dogovor.png";

КонецЕсли;

Картинка = Новый Картинка(ПутьКПечати);

ДокументРезультат.Рисунки.Добавить(Картинка, 10, 10, 50, 50);

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

Для гибкости храните соответствие типов документов и печатей в справочнике или регистре сведений.