Документы и Печать · 12 мин
Как редактировать внешнюю печатную форму в 1С
Как открыть, изменить и подключить обратно внешнюю печатную форму в 1С: редактирование макета, модуля, регистрация формы и проверка результата без ошибок.
Внешняя печатная форма в 1С — это файл с расширением .epf, который подключается к конфигурации без изменения самой конфигурации. Такой подход позволяет добавить или изменить счёт, акт, ТОРГ-12 или любой другой документ, не снимая базу с поддержки и не рискуя обновлениями. Редактирование внешней формы — стандартная задача, когда нужно поправить реквизиты, добавить логотип, изменить формулу итогов или подстроить макет под требования контрагента.
Правка внешней печатной формы выполняется в конфигураторе 1С: файл открывается как внешняя обработка, изменяется макет и (или) программный код, затем обновлённая версия загружается в справочник дополнительных отчётов и обработок. Главные риски — потеря работоспособной версии формы и ошибки в коде, которые проявляются только при печати конкретного документа. Поэтому перед любыми правками сохраняйте исходный файл и проверяйте результат на копии базы или на тестовом документе.
Ниже разобран полный цикл: от поиска файла формы до проверки напечатанного документа, с типичными ошибками и способами их избежать.
Где найти файл внешней печатной формы
Прежде чем редактировать форму, нужно получить её файл. Есть два типичных источника. Первый — исходный .epf-файл, который когда-то подключали к базе: он может храниться в сетевой папке, в архиве внедрения или у разработчика. Второй — сама база: откройте раздел «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки», найдите нужную форму в списке и сохраните её на диск через команду «Выгрузить в файл» (в ряде конфигураций — через меню «Ещё»).
Если форма была встроена не как внешняя, а добавлена прямо в конфигурацию, её редактирование потребует снятия конфигурации с поддержки — это другой сценарий с более серьёзными последствиями. Убедитесь, что вы работаете именно с внешней обработкой: в списке дополнительных обработок у неё указан вид «Печатная форма» и перечень объектов, к которым она привязана.
Сразу сделайте копию исходного файла и положите её в отдельную папку с понятным именем, например «Акт_исходный_до_правок.epf». Если правка пойдёт не так, вы сможете вернуть рабочую версию за пару минут, не останавливая работу пользователей.
Как открыть внешнюю форму в конфигураторе
Запустите конфигуратор той же версии платформы, на которой работает ваша база. Открывать саму информационную базу при этом не обязательно: внешняя обработка редактируется автономно. Выберите в меню «Файл → Открыть» и укажите файл .epf. Платформа покажет структуру обработки: формы, макеты, модуль объекта, модули форм.
Основные элементы, с которыми придётся работать:
- Макет — табличный документ, определяющий внешний вид печатной формы: ячейки, шрифты, рамки, параметры и области.
- Модуль объекта — код, который формирует печатную форму: запросы к данным документа, заполнение параметров макета, вывод областей.
- Сведения о внешней обработке — функция СведенияОВнешнейОбработке() в модуле объекта, где указаны вид обработки, название команды и версия. Здесь обычно ничего не меняют, кроме номера версии.
Если конфигуратор при открытии файла сообщает о несовместимости версии, проверьте релиз платформы: форма, созданная в более новой версии, может не открыться в старой. Режим совместимости обработки тоже имеет значение — он задаётся в свойствах обработки.
Редактирование макета: текст, реквизиты, оформление
Большинство правок печатных форм — это изменения макета. Откройте макет двойным щелчком: перед вами табличный документ, похожий на лист Excel. Статичный текст (заголовки, подписи, названия граф) редактируется прямо в ячейках. Ячейки с параметрами содержат имена в квадратных скобках или с префиксом — например, [НомерДокумента] или [Организация]; их заполняет код, поэтому переименовывать параметр в макете без правки кода нельзя: значение просто перестанет выводиться.
Типовые задачи по макету и способы их решения:
- Добавить статичную надпись — вставьте текст в свободную ячейку, при необходимости объедините ячейки и настройте выравнивание.
- Изменить шрифт или рамки — выделите область и настройте свойства через палитру свойств.
- Добавить логотип — вставьте картинку в макет (картинки хранятся внутри обработки) или загружайте её кодом из двоичных данных.
- Добавить новое поле с данными — создайте параметр в макете, а затем в модуле объекта добавьте заполнение этого параметра из данных документа.
Обратите внимание на области макета: форма собирается из именованных областей (шапка, строка таблицы, подвал), которые код выводит по очереди. Если вы добавляете строки в область «Строка», убедитесь, что не сместили границы соседних областей — иначе часть данных обрежется или продублируется.
Правка модуля: когда данных в макете не хватает
Если нужно вывести поле, которого нет среди текущих параметров, или изменить логику расчёта (например, выводить сумму прописью иначе или фильтровать строки табличной части), придётся править модуль объекта. Откройте его через контекстное меню обработки — «Открыть модуль объекта».
Типичная структура кода печатной формы: функция Печать() или экспортная процедура формирования, внутри — запрос к данным документа, обход результата, заполнение параметров макета и вывод областей в итоговый табличный документ. Найдите место, где заполняются параметры (обычно это строки вида Область.Параметры.ИмяПараметра = Значение), и добавьте туда своё поле.
Пример добавления параметра в код:
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.НомерДокумента = ДанныеДокумента.Номер;
// Новая строка: выводим ИНН покупателя
ОбластьМакета.Параметры.ИННПокупателя = ДанныеДокумента.Контрагент.ИНН;
ТабличныйДокумент.Вывести(ОбластьМакета);
Не забудьте, что параметр ИННПокупателя должен существовать в макете с тем же именем. Если данных может не быть (например, у контрагента не заполнен ИНН), добавьте проверку, чтобы форма не падала с ошибкой на незаполненных документах.
После правок модуля увеличьте номер версии в функции СведенияОВнешнейОбработке() — это поможет отличать итерации формы и корректно регистрировать её при замене.
Проверяйте изменённую форму минимум на трёх документах: полностью заполненном, частично заполненном и документе с длинной табличной частью. Именно граничные случаи — пустые реквизиты и перенос на вторую страницу — чаще всего ломают внешне работающую форму.
Как загрузить изменённую форму обратно в базу
Сохраните файл в конфигураторе («Файл → Сохранить»). Затем откройте базу в режиме предприятия и перейдите в «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Найдите в списке вашу форму — не создавайте новый элемент, иначе в меню печати появятся две похожие команды, и пользователи начнут путаться.
- 1Откройте карточку существующей дополнительной обработки в списке
- 2Нажмите «Загрузить из файла» (или «Заменить на внешний файл») и выберите обновлённый .epf
- 3Проверьте, что назначение (перечень документов) и название команды печати не изменились
- 4Запишите карточку и при необходимости перезапустите сеанс
- 5Откройте тестовый документ и сформируйте печатную форму через кнопку «Печать»
В некоторых конфигурациях при загрузке новой версии платформа предложит подтвердить замену и покажет сравнение версий. Если форма используется в отладочном режиме через «Файл → Открыть» напрямую, помните: такой запуск не меняет зарегистрированную в базе версию — для пользователей нужна именно загрузка в справочник дополнительных обработок.
Если после замены команда печати пропала из меню документа, проверьте назначение обработки: в карточке должна быть указана ссылка на нужный вид документа. При загрузке из файла назначение иногда сбрасывается, и его нужно указать заново вручную.
Проверка результата и откат изменений
Проверку выполняйте в том же порядке, в каком формируется документ: откройте реальный (или тестовый) документ, нажмите «Печать», выберите вашу форму и внимательно просмотрите результат. Убедитесь, что все новые поля заполнены, итоги сходятся, переносы страниц корректны, а подписи и печати стоят на своих местах. Распечатайте пробный экземпляр или сохраните в PDF — на экране и на бумаге вёрстка может отличаться.
Как проверить результат
Каждое поле макета заполнено данными документа
Пустые квадратные скобки или пустые ячейки там, где должны быть данные
Шапка и подвал корректно повторяются, строки не разрываются
Строка таблицы разрезана между страницами, подвал «уехал»
Форма печатается без ошибок, пустые поля аккуратно пусты
Ошибка «Поле объекта не обнаружено» при формировании
Форма корректно печатается для документов прошлых периодов
Ошибки на документах с устаревшими данными
Если результат неудовлетворительный, верните прежнюю версию: загрузите в карточку обработки сохранённую ранее резервную копию файла. Именно поэтому копия до правок обязательна — «отменить» загрузку штатными средствами нельзя, откат возможен только через повторную загрузку старого файла.
Границы самостоятельной работы и альтернативы
Самостоятельно разумно править статичный текст, оформление, простые параметры и несложные добавления полей, если вы умеете ориентироваться в конфигураторе и встроенном языке 1С. Сложные сценарии — изменение запросов, группировок, многоуровневых итогов, интеграцию с механизмами БСП — лучше поручить специалисту: цена ошибки здесь выше, чем стоимость доработки.
Способы изменить печатную форму
Подходит для большинства задач: не затрагивает конфигурацию, легко откатить. Ограничение — нужен конфигуратор и базовые навыки встроенного языка.
В некоторых конфигурациях пользовательские макеты правятся прямо в базе без конфигуратора. Подходит для простых текстовых правок, но возможности ограничены.
Даёт полный доступ, но требует снятия с поддержки и усложняет обновления. Оправдано только при массовых доработках.
Когда существующая форма слишком далека от нужной. Дольше, но результат чище, чем многократные заплаты на чужой код.
Учитывайте и организационную сторону: печатные формы с юридически значимыми реквизитами (счета-фактуры, УПД) должны соответствовать утверждённым форматам. Декоративные правки допустимы, но изменение состава обязательных реквизитов регламентированных форм — зона ответственности, где стоит сверяться с актуальными требованиями.
Что важно запомнить
Внешняя печатная форма редактируется в конфигураторе: правится макет и модуль объекта, затем обновлённый файл загружается в карточку существующей дополнительной обработки. Обязательный минимум безопасности — резервная копия исходного файла, проверка на нескольких тестовых документах и готовность быстро вернуть прежнюю версию.
Частые вопросы
Можно ли редактировать внешнюю печатную форму без конфигуратора?
Полноценно — нет: макет и код .epf-файла открываются только в конфигураторе. Однако в ряде конфигураций на БСП пользовательские макеты можно править прямо в режиме предприятия через раздел печатных форм, если форма подключена как пользовательский макет, а не как внешняя обработка.
Почему после загрузки новой версии печатается старая форма?
Чаще всего файл загрузили как новую обработку, а не заменили существующую, и команда печати по-прежнему ссылается на старую. Также проверьте, что вы открываете печать именно той команды, которую обновили, и при необходимости перезапустите сеанс — кэш дополнительных обработок иногда обновляется не мгновенно.
Что делать, если при печати возникает ошибка «Поле объекта не обнаружено»?
Код обращается к реквизиту, которого нет в данных документа или в выборке запроса. Проверьте, что поле включено в текст запроса в модуле объекта, и что имя реквизита написано точно так, как в конфигурации. Для необязательных данных добавьте проверку на заполненность перед обращением.
Как добавить в форму поле, которого нет среди параметров макета?
Нужны два согласованных изменения: создайте параметр в нужной ячейке макета и добавьте в модуль объекта строку, заполняющую этот параметр из данных документа. Имена параметра в макете и в коде должны совпадать посимвольно.
Можно ли вернуть прежнюю версию формы после неудачной правки?
Да, если вы заранее сохранили исходный файл: просто загрузите его в карточку обработки вместо изменённого. Автоматической истории версий у дополнительных обработок нет, поэтому без резервной копии восстановить прежнюю форму будет невозможно.
Повлияет ли редактирование внешней формы на обновление конфигурации?
Нет, в этом главное преимущество внешних обработок: они хранятся отдельно от конфигурации и не мешают обновлениям. Но после обновления конфигурации форму стоит проверить — если в новом релизе переименовали реквизиты, к которым обращается код формы, она может перестать работать.