Печатные формы 1С под свои нужды: от правки ячейки до своей обработки печати

· 10 мин

Содержание

Редактировать печать в 1С 8.3 можно без программиста: в БП 3.0 и ЗУП 3.1 откройте Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм, найдите нужный макет и измените его в табличном редакторе. В УТ 11 тот же раздел лежит в НСИ и администрирование. Изменённый макет сохраняется в базе и сразу работает у всех пользователей.

Частое заблуждение — что для любой правки печатной формы нужно снимать конфигурацию с поддержки. Это не так. Шрифт, отступы, текст в шапке, логотип и подписи меняются в режиме пользователя. Конфигуратор, внешние обработки и расширения нужны, когда требуется новый реквизит из базы, другая логика или совсем новая форма.

Какой способ редактирования печатных форм выбрать

Сначала определите, что именно нужно поменять. От этого зависит инструмент и то, насколько правка переживёт обновление.

Что нужноСпособКто делаетРиск при обновлении
Разово поправить цифру или текст перед печатьюПравка в форме предпросмотраЛюбой пользовательНет, правка не сохраняется
Поля страницы, ориентация, масштабПараметры страницыПользовательНет
Печать и подписи на счётеКарточка организации, раздел с логотипом и печатьюБухгалтерНет
Шрифт, рамки, постоянный текст, ширина колонокИзменение макета в режиме пользователяАдминистратор базыСредний: макет не обновится сам
Новый реквизит, своя логика заполненияВнешняя печатная форма (.epf)ПрограммистНизкий
Глубокая переделка типовой формыРасширение конфигурации (.cfe)ПрограммистНизкий, но нужна проверка
Правка прямо в конфигурацииКонфигуратор, снятие с поддержкиПрограммистВысокий

💡 Правило практика: чем ближе способ к нижней строке таблицы, тем дороже каждое следующее обновление. Прямую правку типовой конфигурации делайте только тогда, когда другие способы не подходят.

Базовые настройки печати в режиме пользователя

Разовая правка перед выводом на принтер

Форма предпросмотра печати в 1С — это обычный табличный документ. В ячейках можно исправить опечатку, дописать слово, поменять сумму прописью. Правка живёт до закрытия формы: при следующей печати документ снова соберётся из данных базы.

⚠️ Если исправляете суммы или реквизиты в предпросмотре, бумажный документ разойдётся с учётом. Такие расхождения лучше исправлять в самом документе.

Параметры страницы

Поля, ориентацию и масштаб меняют через Главное меню → Файл → Параметры страницы, пока открыта форма печати. Чтобы широкая таблица не уходила на второй лист по горизонтали, выберите масштаб по ширине страницы или альбомную ориентацию.

Параметры запоминаются для конкретной печатной формы: настроили ТОРГ-12 один раз — при следующей печати 1С применит те же поля.

Факсимиле печати и подписей

В БП 3.0 изображения печати и подписей загружают в карточку организации: Главное → Организации, откройте организацию и найдите раздел с логотипом и печатью. Туда загружают:

  • 🖼️ логотип для шапки счёта;
  • 🔵 оттиск печати (PNG с прозрачным фоном);
  • ✍️ подписи руководителя и главного бухгалтера.

После загрузки в меню печати счёта появится вариант с печатью и подписями. Для чёткого оттиска сканируйте печать с разрешением 300 dpi и обрезайте поля.

Как изменить макет печатной формы без Конфигуратора

Это основной способ для бухгалтера и администратора. Типовые конфигурации построены на Библиотеке стандартных подсистем, которая хранит изменённые копии макетов прямо в информационной базе. Типовой макет при этом не трогается.

Пошагово

  1. Откройте Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм (в УТ 11 — через раздел НСИ и администрирование).
  2. Найдите макет строкой поиска. Имя обычно повторяет название формы: «Счет на оплату», «Акт об оказании услуг», «ТОРГ-12».
  3. Откройте макет и внесите правку в табличном редакторе. Двойной щелчок по ячейке — правка текста, правая кнопка — свойства ячейки: шрифт, рамка, выравнивание.
  4. Сохраните макет. В списке он отметится как изменённый.
  5. Проверьте результат: распечатайте любой документ этого вида.

Можно править и из самой формы печати: в меню Ещё формы предпросмотра есть команда перехода к изменению макета. Это удобно, когда непонятно, какой из макетов отвечает за форму.

Что в макете трогать нельзя

Макет состоит из именованных областей (обычно «Заголовок», «Шапка», «Строка», «Подвал») и параметров — ячеек, куда программа подставляет данные. Параметр выглядит как текст в угловых скобках или как ячейка с типом заполнения «Параметр».

  • ❌ Не переименовывайте области — код печати ищет их по имени.
  • ❌ Не удаляйте ячейки-параметры: данные просто исчезнут с бумаги или печать упадёт с ошибкой.
  • ❌ Не пытайтесь вписать новое поле в угловых скобках: код его не заполнит, имя параметра должно совпадать с тем, что передаёт обработка печати.
  • ✅ Свободно меняйте шрифт, размеры, рамки, постоянный текст, ширину колонок и высоту строк.

Перед правкой выгрузите исходный макет в файл .mxl. Это занимает минуту и позволяет вернуться к рабочему варианту, если правка не удалась.

Как вернуть типовой вид

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

Внешние печатные формы: доработка печати без изменения конфигурации

Когда нужен реквизит, которого нет в типовом макете, или совсем новая форма (свой акт, бланк заказа, этикетка), делают внешнюю печатную форму. Это файл внешней обработки .epf, который подключается к базе как дополнительная обработка.

Подключение готовой формы

  1. Включите флажок дополнительных отчётов и обработок в разделе Администрирование → Печатные формы, отчеты и обработки.
  2. Откройте список Дополнительные отчеты и обработки и добавьте файл .epf из файла.
  3. Проверьте размещение: к каким видам документов привязана форма. Если документ не отмечен, команды в меню печати не будет.
  4. Запишите и откройте любой документ нужного вида — новая форма появится в меню Печать.

⚠️ Внешняя обработка выполняет код на сервере с правами пользователя. Подключайте файлы только из проверенных источников.

Как устроена внешняя печатная форма в Конфигураторе

Обработку создают в Конфигураторе: Файл → Новый → Внешняя обработка. Внутри — макет табличного документа и модуль объекта с двумя экспортными методами. Первый регистрирует обработку как печатную форму, второй формирует документ.

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

	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = "Акт (доработанный)";
	Команда.Идентификатор = "АктДоработанный";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	Команда.ПоказыватьОповещение = Ложь;
	Команда.Модификатор = "ПечатьMXL";

	Возврат ПараметрыРегистрации;
КонецФункции

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

Функция, которая собирает документ из макета:

Функция СформироватьАкт(МассивОбъектов, ОбъектыПечати)
	ТабДок = Новый ТабличныйДокумент;
	ТабДок.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктДоработанный";

	Макет = ПолучитьМакет("Макет");
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьСтрока = Макет.ПолучитьОбласть("Строка");

	Для Каждого Документ Из МассивОбъектов Цикл
		Если ТабДок.ВысотаТаблицы > 0 Тогда
			ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		НачальнаяСтрока = ТабДок.ВысотаТаблицы + 1;

		ОбластьШапка.Параметры.Заполнить(Документ);
		ТабДок.Вывести(ОбластьШапка);

		Для Каждого СтрокаТЧ Из Документ.Товары Цикл
			ОбластьСтрока.Параметры.Заполнить(СтрокаТЧ);
			ТабДок.Вывести(ОбластьСтрока);
		КонецЦикла;

		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НачальнаяСтрока, ОбъектыПечати, Документ);
	КонецЦикла;

	Возврат ТабДок;
КонецФункции

Как это работает:

  • Параметры.Заполнить() переносит в область значения реквизитов с теми же именами. Назвали параметр макета Номер и Дата — они заполнятся из документа сами.
  • КлючПараметровПечати нужен, чтобы 1С запоминала поля и ориентацию страницы для этой формы.
  • ЗадатьОбластьПечатиДокумента позволяет отправить документ по почте или сохранить каждый в отдельный файл из формы печати.

💡 Для больших документов Параметры.Заполнить() по ссылке медленный: каждое обращение читает объект из базы. Если печатаете пачку из сотни накладных, получите данные одним запросом и заполняйте области из выборки.

Печать через Систему компоновки данных (СКД)

СКД удобна, когда печатная форма — по сути отчёт: реестр документов, сводная ведомость, прайс с группировками. Схему компоновки добавляют во внешнюю обработку как макет типа «Схема компоновки данных», а настройки и оформление задают в конструкторе схемы.

Порядок вывода в табличный документ:

  1. Получить схему: Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных").
  2. Создать КомпоновщикМакетаКомпоновкиДанных и выполнить Выполнить(Схема, Схема.НастройкиПоУмолчанию).
  3. Передать полученный макет в ПроцессорКомпоновкиДанных через Инициализировать().
  4. Вывести результат через ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент методом Вывести().
ПодходКогда подходитМинусы
Табличный макет + запросБланки строгой формы: акт, накладная, счётГруппировки и итоги пишутся кодом
СКДРеестры, ведомости, отчёты для печатиСложно повторить точный бланк по клеточкам

Отбор по выбранным документам передают параметром схемы или отбором в настройках. Для бланков с жёсткой разметкой (унифицированные формы) СКД почти не используют: точно повторить сетку бланка ей тяжело.

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

Если нужно изменить именно типовую печатную форму, а не сделать рядом свою, программист работает в Конфигураторе. Есть два пути.

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

Расширения появились в платформе 8.3.6 и сейчас — основной способ доработки без снятия типовой конфигурации с поддержки. Порядок работы:

  1. В Конфигураторе: Конфигурация → Расширения конфигурации, создайте новое расширение.
  2. Заимствуйте нужный объект (например, документ) и его модуль менеджера.
  3. В модуле менеджера с аннотацией &После("ДобавитьКомандыПечати") добавьте свою команду печати.
  4. Добавьте в расширение свой макет и процедуру формирования табличного документа.
  5. Сохраните расширение в файл .cfe, если его нужно перенести в другую базу.

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

Прямая правка конфигурации

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

Прямую правку делайте только в копии базы, затем переносите и проверяйте. Ошибка в общем модуле печати ломает вывод всех форм, а не одной.

Типовые проблемы при редактировании печати и их решение

Диагностика: выберите симптом

Печатные формы после обновления конфигурации

Это слабое место изменённых макетов. Когда фирма-разработчик меняет форму документа (например, при переходе на новую форму УПД), она обновляет типовой макет. Ваш изменённый макет остаётся старым, и 1С продолжает печатать по нему.

В итоге после обновления бухгалтерия печатает устаревший бланк и узнаёт об этом от контрагента или налоговой.

Что делать после каждого обновления:

Проверка печатных форм после обновления
Выполнено: 0 / 6

💡 Ведите короткий список своих правок: какой макет, что изменено и зачем. Когда через год придётся переносить правки на новый макет, этот список сэкономит полдня разбирательств.

Внешние печатные формы ломаются реже: они обращаются к данным базы, а не к типовому макету. Но если в обновлении переименовали реквизит или табличную часть документа, обработка начнёт падать — поэтому её тоже прогоняют на тестовом документе.

Частые вопросы

Правка макета применяется только у меня или у всех пользователей?
У всех. Изменённый макет хранится в информационной базе, а не в настройках пользователя, поэтому печатать по нему будут все, кто работает в этой базе.
Можно ли редактировать печатную форму в веб-клиенте?
Разовую правку в предпросмотре — да. Изменение макета удобнее делать в тонком клиенте: там полноценный табличный редактор и выгрузка макета в файл.
Почему у обычного бухгалтера нет доступа к списку макетов?
Изменение макетов меняет печать для всей базы, поэтому в типовых конфигурациях оно доступно пользователям с административными правами. Попросите администратора внести правку или выдать нужный профиль доступа.
Как перенести изменённый макет в другую базу?
Выгрузите макет из списка в файл .mxl и загрузите его в той же форме в другой базе. Обе базы должны быть на одной версии конфигурации, иначе параметры макета могут не совпасть.
Можно ли сохранить печатную форму в PDF или Excel?
Да. В форме печати есть сохранение в файл: доступны PDF, XLSX, DOCX, MXL и другие форматы. Документ можно и сразу отправить по почте из той же формы.