Печатные формы 1С под свои нужды: от правки ячейки до своей обработки печати
Содержание
Редактировать печать в 1С 8.3 можно без программиста: в БП 3.0 и ЗУП 3.1 откройте Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм, найдите нужный макет и измените его в табличном редакторе. В УТ 11 тот же раздел лежит в НСИ и администрирование. Изменённый макет сохраняется в базе и сразу работает у всех пользователей.
Частое заблуждение — что для любой правки печатной формы нужно снимать конфигурацию с поддержки. Это не так. Шрифт, отступы, текст в шапке, логотип и подписи меняются в режиме пользователя. Конфигуратор, внешние обработки и расширения нужны, когда требуется новый реквизит из базы, другая логика или совсем новая форма.
Какой способ редактирования печатных форм выбрать
Сначала определите, что именно нужно поменять. От этого зависит инструмент и то, насколько правка переживёт обновление.
| Что нужно | Способ | Кто делает | Риск при обновлении |
|---|---|---|---|
| Разово поправить цифру или текст перед печатью | Правка в форме предпросмотра | Любой пользователь | Нет, правка не сохраняется |
| Поля страницы, ориентация, масштаб | Параметры страницы | Пользователь | Нет |
| Печать и подписи на счёте | Карточка организации, раздел с логотипом и печатью | Бухгалтер | Нет |
| Шрифт, рамки, постоянный текст, ширина колонок | Изменение макета в режиме пользователя | Администратор базы | Средний: макет не обновится сам |
| Новый реквизит, своя логика заполнения | Внешняя печатная форма (.epf) | Программист | Низкий |
| Глубокая переделка типовой формы | Расширение конфигурации (.cfe) | Программист | Низкий, но нужна проверка |
| Правка прямо в конфигурации | Конфигуратор, снятие с поддержки | Программист | Высокий |
💡 Правило практика: чем ближе способ к нижней строке таблицы, тем дороже каждое следующее обновление. Прямую правку типовой конфигурации делайте только тогда, когда другие способы не подходят.
Базовые настройки печати в режиме пользователя
Разовая правка перед выводом на принтер
Форма предпросмотра печати в 1С — это обычный табличный документ. В ячейках можно исправить опечатку, дописать слово, поменять сумму прописью. Правка живёт до закрытия формы: при следующей печати документ снова соберётся из данных базы.
⚠️ Если исправляете суммы или реквизиты в предпросмотре, бумажный документ разойдётся с учётом. Такие расхождения лучше исправлять в самом документе.
Параметры страницы
Поля, ориентацию и масштаб меняют через Главное меню → Файл → Параметры страницы, пока открыта форма печати. Чтобы широкая таблица не уходила на второй лист по горизонтали, выберите масштаб по ширине страницы или альбомную ориентацию.
Параметры запоминаются для конкретной печатной формы: настроили ТОРГ-12 один раз — при следующей печати 1С применит те же поля.
Факсимиле печати и подписей
В БП 3.0 изображения печати и подписей загружают в карточку организации: Главное → Организации, откройте организацию и найдите раздел с логотипом и печатью. Туда загружают:
- 🖼️ логотип для шапки счёта;
- 🔵 оттиск печати (PNG с прозрачным фоном);
- ✍️ подписи руководителя и главного бухгалтера.
После загрузки в меню печати счёта появится вариант с печатью и подписями. Для чёткого оттиска сканируйте печать с разрешением 300 dpi и обрезайте поля.
Как изменить макет печатной формы без Конфигуратора
Это основной способ для бухгалтера и администратора. Типовые конфигурации построены на Библиотеке стандартных подсистем, которая хранит изменённые копии макетов прямо в информационной базе. Типовой макет при этом не трогается.
Пошагово
- Откройте
Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм(в УТ 11 — через разделНСИ и администрирование). - Найдите макет строкой поиска. Имя обычно повторяет название формы: «Счет на оплату», «Акт об оказании услуг», «ТОРГ-12».
- Откройте макет и внесите правку в табличном редакторе. Двойной щелчок по ячейке — правка текста, правая кнопка — свойства ячейки: шрифт, рамка, выравнивание.
- Сохраните макет. В списке он отметится как изменённый.
- Проверьте результат: распечатайте любой документ этого вида.
Можно править и из самой формы печати: в меню Ещё формы предпросмотра есть команда перехода к изменению макета. Это удобно, когда непонятно, какой из макетов отвечает за форму.
Что в макете трогать нельзя
Макет состоит из именованных областей (обычно «Заголовок», «Шапка», «Строка», «Подвал») и параметров — ячеек, куда программа подставляет данные. Параметр выглядит как текст в угловых скобках или как ячейка с типом заполнения «Параметр».
- ❌ Не переименовывайте области — код печати ищет их по имени.
- ❌ Не удаляйте ячейки-параметры: данные просто исчезнут с бумаги или печать упадёт с ошибкой.
- ❌ Не пытайтесь вписать новое поле в угловых скобках: код его не заполнит, имя параметра должно совпадать с тем, что передаёт обработка печати.
- ✅ Свободно меняйте шрифт, размеры, рамки, постоянный текст, ширину колонок и высоту строк.
Перед правкой выгрузите исходный макет в файл .mxl. Это занимает минуту и позволяет вернуться к рабочему варианту, если правка не удалась.
Как вернуть типовой вид
В списке макетов у изменённого макета есть команды переключения между изменённым и стандартным вариантом. Выберите стандартный — и форма снова печатается по типовому макету, а ваша копия остаётся в базе на случай, если понадобится.
Внешние печатные формы: доработка печати без изменения конфигурации
Когда нужен реквизит, которого нет в типовом макете, или совсем новая форма (свой акт, бланк заказа, этикетка), делают внешнюю печатную форму. Это файл внешней обработки .epf, который подключается к базе как дополнительная обработка.
Подключение готовой формы
- Включите флажок дополнительных отчётов и обработок в разделе
Администрирование → Печатные формы, отчеты и обработки. - Откройте список
Дополнительные отчеты и обработкии добавьте файл.epfиз файла. - Проверьте размещение: к каким видам документов привязана форма. Если документ не отмечен, команды в меню печати не будет.
- Запишите и откройте любой документ нужного вида — новая форма появится в меню
Печать.
⚠️ Внешняя обработка выполняет код на сервере с правами пользователя. Подключайте файлы только из проверенных источников.
Как устроена внешняя печатная форма в Конфигураторе
Обработку создают в Конфигураторе: Файл → Новый → Внешняя обработка. Внутри — макет табличного документа и модуль объекта с двумя экспортными методами. Первый регистрирует обработку как печатную форму, второй формирует документ.
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = "Акт (доработанный)";
Команда.Идентификатор = "АктДоработанный";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Команда.ПоказыватьОповещение = Ложь;
Команда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктДоработанный") Тогда
ТабДок = СформироватьАкт(МассивОбъектов, ОбъектыПечати);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
"АктДоработанный", "Акт (доработанный)", ТабДок);
КонецЕсли;
КонецПроцедуры
Функция, которая собирает документ из макета:
Функция СформироватьАкт(МассивОбъектов, ОбъектыПечати)
ТабДок = Новый ТабличныйДокумент;
ТабДок.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктДоработанный";
Макет = ПолучитьМакет("Макет");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для Каждого Документ Из МассивОбъектов Цикл
Если ТабДок.ВысотаТаблицы > 0 Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
НачальнаяСтрока = ТабДок.ВысотаТаблицы + 1;
ОбластьШапка.Параметры.Заполнить(Документ);
ТабДок.Вывести(ОбластьШапка);
Для Каждого СтрокаТЧ Из Документ.Товары Цикл
ОбластьСтрока.Параметры.Заполнить(СтрокаТЧ);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НачальнаяСтрока, ОбъектыПечати, Документ);
КонецЦикла;
Возврат ТабДок;
КонецФункции
Как это работает:
Параметры.Заполнить()переносит в область значения реквизитов с теми же именами. Назвали параметр макетаНомериДата— они заполнятся из документа сами.КлючПараметровПечатинужен, чтобы 1С запоминала поля и ориентацию страницы для этой формы.ЗадатьОбластьПечатиДокументапозволяет отправить документ по почте или сохранить каждый в отдельный файл из формы печати.
💡 Для больших документов Параметры.Заполнить() по ссылке медленный: каждое обращение читает объект из базы. Если печатаете пачку из сотни накладных, получите данные одним запросом и заполняйте области из выборки.
Печать через Систему компоновки данных (СКД)
СКД удобна, когда печатная форма — по сути отчёт: реестр документов, сводная ведомость, прайс с группировками. Схему компоновки добавляют во внешнюю обработку как макет типа «Схема компоновки данных», а настройки и оформление задают в конструкторе схемы.
Порядок вывода в табличный документ:
- Получить схему:
Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"). - Создать
КомпоновщикМакетаКомпоновкиДанныхи выполнитьВыполнить(Схема, Схема.НастройкиПоУмолчанию). - Передать полученный макет в
ПроцессорКомпоновкиДанныхчерезИнициализировать(). - Вывести результат через
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокументметодомВывести().
| Подход | Когда подходит | Минусы |
|---|---|---|
| Табличный макет + запрос | Бланки строгой формы: акт, накладная, счёт | Группировки и итоги пишутся кодом |
| СКД | Реестры, ведомости, отчёты для печати | Сложно повторить точный бланк по клеточкам |
Отбор по выбранным документам передают параметром схемы или отбором в настройках. Для бланков с жёсткой разметкой (унифицированные формы) СКД почти не используют: точно повторить сетку бланка ей тяжело.
Программная доработка типовых макетов и модулей печати
Если нужно изменить именно типовую печатную форму, а не сделать рядом свою, программист работает в Конфигураторе. Есть два пути.
Расширение конфигурации
Расширения появились в платформе 8.3.6 и сейчас — основной способ доработки без снятия типовой конфигурации с поддержки. Порядок работы:
- В Конфигураторе:
Конфигурация → Расширения конфигурации, создайте новое расширение. - Заимствуйте нужный объект (например, документ) и его модуль менеджера.
- В модуле менеджера с аннотацией
&После("ДобавитьКомандыПечати")добавьте свою команду печати. - Добавьте в расширение свой макет и процедуру формирования табличного документа.
- Сохраните расширение в файл
.cfe, если его нужно перенести в другую базу.
Загрузка файла .cfe и обновление конфигурации
базы данных — отдельные шаги. После загрузки расширения в рабочую базу пользователям нужно перезапустить сеанс, иначе новая команда не появится.
Прямая правка конфигурации
Включение возможности изменения конфигурации на поддержке позволяет поменять макет и модуль печати прямо в типовом объекте. Работает, но каждое следующее обновление превращается в сравнение и объединение конфигураций с ручным разбором конфликтов.
Прямую правку делайте только в копии базы, затем переносите и проверяйте. Ошибка в общем модуле печати ломает вывод всех форм, а не одной.
Типовые проблемы при редактировании печати и их решение
Ещё перейдите к изменению макета — так попадёте именно в тот, который используется. Также проверьте, что в списке макетов выбран изменённый, а не стандартный вариант.Печатные формы после обновления конфигурации
Это слабое место изменённых макетов. Когда фирма-разработчик меняет форму документа (например, при переходе на новую форму УПД), она обновляет типовой макет. Ваш изменённый макет остаётся старым, и 1С продолжает печатать по нему.
В итоге после обновления бухгалтерия печатает устаревший бланк и узнаёт об этом от контрагента или налоговой.
Что делать после каждого обновления:
💡 Ведите короткий список своих правок: какой макет, что изменено и зачем. Когда через год придётся переносить правки на новый макет, этот список сэкономит полдня разбирательств.
Внешние печатные формы ломаются реже: они обращаются к данным базы, а не к типовому макету. Но если в обновлении переименовали реквизит или табличную часть документа, обработка начнёт падать — поэтому её тоже прогоняют на тестовом документе.