Работа с печатными формами в 1С:Предприятие — одна из самых востребованных задач как для бухгалтеров, так и для программистов. Часто возникает необходимость сохранить отчёт или документ в виде внешнего файла, чтобы перенести его на другой компьютер, отправить коллеге или использовать как шаблон. Однако стандартный функционал платформы не всегда интуитивно понятен, особенно когда речь идёт о сохранении внешней печатной формы — не как макета для печати, а как самостоятельного объекта конфигурации.
В этой статье мы разберём все актуальные способы сохранения печатных форм в 1С 8.3 (включая последние релизы), рассмотрим различия между сохранением через конфигуратор и пользовательский режим, а также обсудим типовые ошибки, с которыми сталкиваются пользователи. Особое внимание уделим внешним печатным формам — тем, которые подключаются к документам или справочникам извне, а не хранятся внутри конфигурации.
Материал будет полезен как начинающим разработчикам, так и опытным пользователям, которые хотят оптимизировать работу с отчётами. Все инструкции проиллюстрированы скриншотами (описаниями интерфейса) и сопровождаются практическими советами.
Что такое внешняя печатная форма в 1С и зачем её сохранять
Внешняя печатная форма (ВПФ) — это файл с расширением .epf (для управляемых форм) или .ert (для обычных форм), который содержит логику формирования документа для печати. В отличие от встроенных печатных форм, которые являются частью конфигурации, внешние формы:
- 📁 Хранятся отдельно от базы данных (например, на диске или в сетевой папке).
- 🔄 Можно быстро подключать/отключать без изменения конфигурации.
- 🛠️ Удобны для тестирования и отладки (не требуют обновления информационной базы).
- 📤 Легко передаются между пользователями или организациями.
Основные сценарии, когда требуется сохранить печатную форму как внешнюю:
- Перенос формы с одного компьютера на другой (например, при смене рабочего места).
- Резервное копирование перед обновлением конфигурации.
- Разработка новой формы "в песочнице" без риска повредить рабочую базу.
- Обмен формами между разными организациями (например, в холдинге).
Важно понимать, что внешняя печатная форма — это не просто экспорт макета в PDF или Excel. Это сохранение самого алгоритма формирования документа, включая программный код, параметры и связи с данными.
Способы сохранения печатной формы как внешней
В 1С:Предприятие 8.3 существует несколько способов сохранить печатную форму в виде внешнего файла. Выбор метода зависит от вашей роли (пользователь или разработчик), версии платформы и типа формы (управляемая или обычная). Рассмотрим каждый из них.
1. Сохранение через Конфигуратор (для разработчиков)
Это самый надёжный способ, который даёт полный контроль над процессом. Подходит для управляемых и обычных форм.
- Откройте базу в режиме Конфигуратор (для этого при запуске 1С удерживайте клавишу
Shift). - Перейдите в дерево объектов конфигурации:
Объекты → [Тип объекта, например, Документы] → [Конкретный документ] → Печатные формы. - Выделите нужную форму и в контекстном меню выберите
Сохранить как.... - Укажите путь для сохранения (рекомендуется использовать папку с доступом для всех пользователей, если форма будет использоваться коллективно).
- Выберите формат:
- Для управляемых форм —
.epf. - Для обычных форм —
.ert.
- Для управляемых форм —
Если форма ещё не существует в конфигурации, но вы хотите сохранить её как внешнюю, сначала создайте новую печатную форму через Добавить → Печатная форма, а затем сохраните её.
Запустить 1С в режиме Конфигуратора|Найти объект (документ/справочник) в дереве конфигурации|Убедиться, что форма существует или создать новую|Проверить права доступа к папке сохранения-->
2. Сохранение через пользовательский интерфейс (без Конфигуратора)
Пользователи без прав на конфигурирование могут сохранить внешнюю печатную форму прямо из интерфейса 1С:Предприятие, если форма уже подключена к документу. Для этого:
- Откройте документ, для которого настроена внешняя печатная форма.
- Перейдите в меню
Печать → Настроить печатные формы(или аналогичный пункт, в зависимости от конфигурации). - В списке форм найдите ту, которую нужно сохранить, и нажмите
Сохранить как.... - Выберите папку и подтвердите сохранение.
- 🔑 Запустите 1С от имени администратора (правой кнопкой по ярлыку →
Запуск от имени администратора). - 👤 Попросите администратора базы выдать вам роль
АдминистраторилиКонфигуратор. - 💾 Сохраните форму через пользовательский интерфейс (если это возможно для вашей конфигурации).
- Вы пытаетесь загрузить файл неверного формата (например,
.ertвместо.epf). - Файл повреждён (например, при копировании по сети).
- Форма была сохранена в другой версии платформы (например, в 1С 8.3.20, а загружаете в 8.3.15).
- 🔍 Проверьте расширение файла.
- 📥 Попробуйте сохранить форму заново.
- 🔄 Обновите платформу 1С до актуальной версии.
- 📌 Форма сохранена не в той папке. Проверьте путь в настройках подключения внешних форм (обычно это
C:\Program Files\1cv8\Templates\или сетевая папка). - 🔗 В коде формы неверно указано имя документа. Откройте файл
.epfв текстовом редакторе и проверьте параметр<Object>. - 🔄 Перезапустите 1С — иногда кэш не обновляется сразу.
⚠️ Внимание: Этот способ работает только для форм, которые уже подключены как внешние. Если форма встроенная, её сначала нужно сделать внешней через Конфигуратор.
Некоторые конфигурации (например, 1С:Бухгалтерия 3.0) позволяют сохранять формы прямо из окна предварительного просмотра печати. Для этого в окне печати ищите кнопку Сохранить форму или Экспорт.
3. Программное сохранение через код
Разработчики могут сохранить печатную форму с помощью встроенного языка 1С. Этот метод полезен для автоматизации или когда нужно сохранить форму из обработки.
Пример кода для сохранения управляемой печатной формы:
// Получаем объект метаданных печатной формы
ПечатнаяФорма = Метаданные.Документы.ЗаказПокупателя.ПечатныеФормы.Найти("ВнешняяФормаЗаказа");
// Сохраняем в файл
ПечатнаяФорма.Записать("C:\Temp\ВнешняяФормаЗаказа.epf");
Для обычных форм используйте метод ЗаписатьФайл() с указанием пути.
⚠️ Внимание: При программном сохранении убедитесь, что у пользователя есть права на запись в указанную папку. В противном случае возникнет ошибка доступа.
Разница между форматами .epf и .ert
При сохранении внешней печатной формы важно выбрать правильный формат файла. В 1С:Предприятие 8.3 используются два основных расширения:
| Формат | Тип формы | Особенности | Когда использовать |
|---|---|---|---|
.epf |
Управляемая форма | Содержит описание формы в новом формате (начиная с 8.2). Поддерживает клиент-серверный режим. | Для современных конфигураций (8.3 и новее). |
.ert |
Обычная форма | Устаревший формат для обычных форм. Не поддерживает управляемый интерфейс. | Для старых конфигураций (8.1 и частично 8.2). |
.mxl |
Макет (в т.ч. для печатных форм) | XML-представление макета. Используется для хранения шаблонов. | Для переноса макетов между базами. |
Если вы работаете с 1С:Предприятие 8.3, в 99% случаев нужно выбирать формат .epf. Формат .ert актуален только для поддержки устаревших конфигураций или при миграции с 1С 8.1/8.2.
⚠️ Внимание: При попытке загрузить форму в формате .ert в управляемую конфигурацию (например, 1С:ERP или 1С:УТ 11) возникнет ошибка несовместимости.
Если вы не уверены в формате, откройте файл в блокноте: .epf начинается с тега <Form>, а .ert — с бинарного заголовка.
Типовые ошибки при сохранении внешних печатных форм
Даже опытные пользователи сталкиваются с проблемами при работе с внешними печатными формами. Рассмотрим наиболее распространённые ошибки и способы их решения.
1. Ошибка "Недостаточно прав для выполнения операции"
Эта ошибка возникает, когда пользователь пытается сохранить форму через Конфигуратор, но у его учётной записи нет прав на изменение конфигурации.
Решения:
2. Ошибка "Файл не является внешней печатной формой"
Такая ошибка появляется, если:
Решения:
3. Форма сохраняется, но не подключается к документу
Частая проблема: файл .epf успешно сохранён, но при попытке подключить его к документу в списке печатных форм его не видно.
Причины и решения:
Как проверить путь к внешним формам в 1С?
В Конфигураторе перейдите в Администрирование → Печатные формы → Настройки внешних печатных форм. Здесь указаны папки, откуда 1С берёт внешние формы. Если ваш файл лежит в другой папке, его не будет видно в списке.
4. Ошибка "Не найден макет" при открытии формы
Если при попытке распечатать документ с подключённой внешней формой появляется сообщение о отсутствии макета, это означает, что:
- Макет не встроен в файл формы (нужно сохранить его отдельно в формате
.mxlи положить в ту же папку). - В коде формы указан неверный путь к макету.
- Скопируйте файл
.epf(и сопутствующие файлы макетов, если они есть) на съёмный носитель или в сетевую папку. - На целевом компьютере поместите файл в папку, откуда 1С берёт внешние формы (см. настройки в Конфигураторе).
- Перезапустите 1С:Предприятие.
- Откройте документ, для которого предназначена форма, и проверьте её наличие в списке печатных форм.
⚠️ Внимание: Внешние печатные формы в формате .epf могут содержать в себе макеты, но если макет вынесен отдельно, его нужно переносить вместе с формой.
Как перенести внешнюю печатную форму на другой компьютер
Сохранённую внешнюю печатную форму можно перенести на другой компьютер или в другую базу. Для этого:
Если форма не появляется:
- 🔍 Убедитесь, что пути к внешним формам на обоих компьютерах совпадают.
- 📋 Проверьте, что имя файла не содержит кириллических символов или пробелов (иногда это вызывает проблемы).
- 🔄 Обновите кэш 1С (в Конфигураторе:
Сервис → Очистить кэш). - Откройте Конфигуратор.
- Найдите форму в дереве объектов (в разделе внешних печатных форм).
- Дважды кликните на неё — откроется редактор формы.
- Внесите изменения и сохраните (форма автоматически перезапишется в файле
.epf). - Подключите её к базе (через
Администрирование → Печатные формы → Внешние печатные формы). - Отредактируйте и сохраните.
- Отключите форму и скопируйте обновлённый файл.
- 🔍 Легко допустить синтаксическую ошибку.
- 📝 Изменения в коде требуют знания языка 1С и структуры формы.
- 🔄 После редактирования нужно перезагрузить форму в 1С.
Для корпоративного использования рекомендуется хранить внешние формы в сетевой папке, доступной всем пользователям. Это упрощает обновление форм — достаточно заменить файл в одной папке, и изменения станут доступны всем.
При переносе внешних форм между базами разных версий (например, с 8.3.18 на 8.3.22) может потребоваться доработка кода формы из-за изменений в платформе.
Как редактировать сохранённую внешнюю печатную форму
Внешние печатные формы можно редактировать как вручную (через код), так и с помощью встроенных инструментов 1С.
1. Редактирование через Конфигуратор
Если форма уже подключена к базе:
Если форма не подключена, но есть файл .epf:
2. Редактирование в текстовом редакторе
Файлы .epf и .ert — это XML-документы, которые можно открыть в любом текстовом редакторе (например, Notepad++ или VS Code). Однако этот метод рекомендуется только опытным разработчикам, так как:
Пример структуры файла .epf:
<?xml version="1.0" encoding="utf-8"?>
<Form xmlns="...">
<Object>Документ.ЗаказПокупателя</Object>
<Name>ВнешняяФормаЗаказа</Name>
<Module>
<![CDATA[
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Код формы
КонецПроцедуры
]]>
</Module>
</Form>
⚠️ Внимание: При ручном редактировании .epf обязательно делайте резервную копию файла. Ошибка в XML-структуре сделает форму неработоспособной.
3. Использование специализированных инструментов
Для упрощения работы с внешними формами можно использовать:
- 🛠️ 1С:Разработник — расширение для Visual Studio Code, которое подсвечивает синтаксис
.epf. - 📊 EDT (1С:Enterprise Development Tools) — официальный инструмент от 1С для разработки.
- 🔧 Снегопат — бесплатная утилита для анализа и редактирования форм.
Автоматизация работы с внешними печатными формами
Если в вашей организации часто обновляются печатные формы, имеет смысл автоматизировать их распределение и подключение. Рассмотрим несколько подходов.
1. Централизованное хранение форм
Создайте сетевую папку (например, \\server\1C_Forms\) и настройте в 1С путь к внешним формам на эту папку. Преимущества:
- 🔄 Обновление формы в одном месте автоматически применяется для всех пользователей.
- 📂 Легко контролировать версии форм.
- 🔒 Можно настроить права доступа к папке.
Чтобы настроить центральное хранилище:
- В Конфигураторе перейдите в
Администрирование → Печатные формы → Настройки внешних печатных форм. - Добавьте путь к сетевой папке.
- Скопируйте туда все внешние формы.
- Перезапустите 1С на всех рабочих местах.
2. Автоматическая загрузка форм при старте 1С
Можно написать обработку, которая при запуске 1С будет проверять наличие новых версий форм в сетевой папке и обновлять их локально. Пример кода:
Процедура ПриНачалеРаботыСистемы()
ПутьКФормам = "\\server\1C_Forms\";
Если НЕ КаталогСуществует(ПутьКФормам) Тогда
Возврат;
КонецЕсли;
МассивФайлов = НайтиФайлы(ПутьКФормам + "*.epf");
Для Каждого Файл Из МассивФайлов Цикл
ЛокальныйПуть = КаталогВременныхФайлов() + "ExternalForms\" + Сред(Файл.ПолноеИмя, СтрДлина(ПутьКФормам) + 1);
Если НЕ ФайлСуществует(ЛокальныйПуть) ИЛИ ДатаИзменения(Файл.ПолноеИмя) > ДатаИзменения(ЛокальныйПуть) Тогда
КопироватьФайл(Файл.ПолноеИмя, ЛокальныйПуть);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Этот код копирует формы из сетевой папки в локальный каталог только если они были изменены.
3. Версионирование форм
Для контроля версий внешних печатных форм можно:
- 📌 Использовать Git (например, хранить формы в репозитории и обновлять их через скрипты).
- 📝 Вести журнал изменений в текстовом файле рядом с формами.
- 🔖 Добавлять номер версии в имя файла (например,
ФормаЗаказа_v2.1.epf).
⚠️ Внимание: При использовании Git для .epf-файлов учитывайте, что они содержат бинарные данные (например, встроенные картинки). Настройте .gitattributes, чтобы избежать проблем с кодировкой.
FAQ: Частые вопросы по работе с внешними печатными формами
Можно ли сохранить встроенную печатную форму как внешнюю без прав администратора?
Нет, для извлечения встроенной формы из конфигурации требуются права на изменение конфигурации (роль Администратор или Конфигуратор). Однако вы можете:
- Попросить администратора сохранить форму за вас.
- Скопировать код формы в новую внешнюю форму (если у вас есть доступ к Конфигуратору в режиме предприятия).
В некоторых конфигурациях (например, 1С:Бухгалтерия) есть возможность экспорта макетов печатных форм через пользовательский интерфейс, но это не то же самое, что сохранение всей формы.
Почему при открытии внешней формы в другой базе она не работает?
Наиболее частые причины:
- 🔹 Форма привязана к конкретному документу или справочнику, которого нет в новой базе.
- 🔹 В коде формы используются объекты метаданных (реквизиты, табличные части), которые отсутствуют или имеют другие имена в новой базе.
- 🔹 Версии платформы 1С отличаются (например, форма сохранена в 8.3.20, а загружается в 8.3.15).
- 🔹 Не хватает прав у пользователя на доступ к данным, которые использует форма.
Перед переносом формы проверьте её совместимость с целевой базой. При необходимости отредактируйте код формы (например, замените имена реквизитов).
Как сделать резервную копию всех внешних печатных форм?
Чтобы создать бэкап всех внешних форм:
- Найдите папку, где хранятся формы (см. настройки в Конфигураторе).
- Скопируйте все файлы с расширениями
.epf,.ertи.mxlв резервную папку. - Для надёжности архивируйте папку (например, в
ZIP).
Рекомендуется также экспортировать список подключённых форм из 1С:
- В Конфигураторе откройте
Администрирование → Печатные формы → Внешние печатные формы. - Скопируйте список в
Excelили сделайте скриншот.
Это поможет быстро восстановить привязки форм после восстановления из бэкапа.
Можно ли подключить внешнюю печатную форму к справочнику, а не к документу?
Да, внешние печатные формы можно подключать не только к документам, но и к:
- 📋 Справочникам (например, печатная форма карточки номенклатуры).
- 📊 Отчётам (для кастомизации выводов).
- 📄 Журналам документов.
Для этого:
- Создайте форму в Конфигураторе для нужного объекта (справочника, отчёта).
- Сохраните её как внешнюю (
.epf). - Подключите через
Администрирование → Печатные формы, указав тип объекта.
В коде формы убедитесь, что правильно указан объект, к которому она подключается (параметр <Object> в .epf).
Как проверить, что внешняя печатная форма подключена правильно?
Чтобы убедиться, что форма подключена и работает:
- Откройте объект (документ, справочник), для которого предназначена форма.
- Перейдите в меню
Печать— в списке должна появиться ваша форма. - Нажмите
Предварительный просмотр— если форма открывается без ошибок, подключение успешно. - Проверьте, что все данные отображаются корректно (нет пустых полей или ошибок вывода).
Если форма не появляется в списке:
- 🔍 Проверьте путь к файлу формы в настройках 1С.
- 📌 Убедитесь, что имя файла совпадает с именем формы в коде.
- 🔄 Перезапустите 1С (иногда кэш не обновляется сразу).