Загрузка формы в конфигурацию 1С — способы переноса
Содержание
Загрузить форму в 1С «из файла», как картинку, нельзя: форма — это часть объекта конфигурации (справочника, документа, обработки или отчёта). Поэтому «загрузка формы» на практике означает одно из трёх: перенести форму вместе с объектом из другой конфигурации, добавить её через расширение или подключить внешнюю обработку с нужной формой.
Чаще всего вопрос появляется у разработчика, когда коллега прислал доработанную форму, а её нужно поставить в рабочую базу. Или когда форму случайно удалили и восстанавливают из копии. Инструмент один и тот же — Конфигуратор, а вот путь зависит от того, что именно у вас на руках.
Какой способ подойдёт в вашем случае — подскажет короткий выбор ниже.
Файл → Открыть или перенесите содержимое в макет.Разбираемся, что на самом деле нужно перенести
Прежде чем что-то грузить, определите тип задачи — от этого зависит набор шагов.
- 🧩 Форма объекта (форма списка, элемента, документа, обработки). Хранится внутри объекта конфигурации. Перенос — только через метаданные: XML-выгрузку, копирование или расширение.
- 📄 Печатная форма / табличный документ (.mxl). Это не «форма» в терминах конфигурации, а табличный документ. Его открывают как файл или кладут в макет.
- 🛠 Внешняя обработка или отчёт (.epf / .erf). Самостоятельный файл с собственной формой. Его не «загружают в дерево конфигурации» — его подключают и запускают.
Частая путаница: пользователь ищет «как загрузить форму», имея в виду печатную форму в .mxl. Это разные вещи, и способ загрузки у них разный. Если у вас на руках файл с расширением .mxl — вам в раздел про табличный документ, а не про XML конфигурации.
Расширение файла подсказывает способ. .cf — полная конфигурация, .cfe — расширение, .epf/.erf — внешняя обработка и отчёт, .mxl — табличный документ, .xml — выгрузка объектов в файлы.
Чтобы не держать всё в голове, вот способы переноса рядом — что каждый умеет и когда он уместен.
| Способ | Когда подходит | Что переносит |
|---|---|---|
| Выгрузка/загрузка в файлы XML | Полный или частичный перенос метаданных между базами | Объект вместе с его формой |
| Копирование в Конфигураторе | Один-два объекта, обе базы открыты рядом | Выбранную форму или объект целиком |
| Расширение (.cfe) | Доработка типовой формы без снятия с поддержки | Добавочную или заимствованную форму |
| Внешняя обработка (.epf/.erf) | Форма нужна как отдельный инструмент | Форму внутри обработки или отчёта |
| Загрузка файла .mxl | Это печатная форма или табличный документ | Табличный документ (не форму объекта) |
Готовим базу: копия, доступ и права
Любая загрузка метаданных меняет конфигурацию, поэтому подготовка одинакова для всех способов.
- Сделайте выгрузку базы в файл
.dt(Администрирование → Выгрузить информационную базу) либо копию файловой базы целиком. Это ваш путь назад, если загрузка пройдёт неудачно. - Убедитесь, что у вашей учётной записи есть права администратора и доступ к Конфигуратору. Без них меню изменения конфигурации будет недоступно.
- Сверьте версию платформы в источнике и приёмнике. Загрузить метаданные можно только в базу, где номер версии платформы не ниже версии, в которой выгрузка сделана. Иначе платформа откажется читать файлы.
- Запланируйте время, когда в базе нет пользователей: финальный шаг — обновление структуры — потребует монопольного доступа.
Права на саму форму в 1С не настраиваются отдельно. Видимость формы у пользователя определяют роли на объект и функциональные опции. Поэтому «восстановление прав» после загрузки — это проверка ролей, а не отдельная операция над формой.
Перенос формы через выгрузку и загрузку XML
Это основной способ, когда форма нужна вместе с объектом из другой базы. В Конфигураторе конфигурация выгружается в набор XML-файлов, где каждый объект лежит в своей папке, а форма — в подпапке Ext/Form этого объекта.
В Конфигураторе источника:
- Откройте
Конфигурация → Выгрузить конфигурацию в файлы…. - Укажите пустой каталог. Платформа разложит всю конфигурацию по папкам в формате XML.
В Конфигураторе приёмника:
- Откройте
Конфигурация → Загрузить конфигурацию из файлов…. - Укажите тот же каталог. Можно загрузить всё или выбрать только нужные файлы объекта с формой.
- После загрузки обновите конфигурацию базы данных (см. раздел ниже).
Если обе базы под рукой, те же действия удобно выполнить из командной строки — например, в скрипте обновления:
1cv8 DESIGNER /F"D:\base_src" /N"Администратор" /P"пароль" /DumpConfigToFiles "D:\xml"
1cv8 DESIGNER /F"D:\base_dst" /N"Администратор" /P"пароль" /LoadConfigFromFiles "D:\xml"
1cv8 DESIGNER /F"D:\base_dst" /N"Администратор" /P"пароль" /UpdateDBCfg
Формат выгрузки в файлы удобен ещё и тем, что каждый объект лежит в отдельной папке. Можно загрузить не всю конфигурацию, а только папку нужного объекта — так в приёмник попадёт именно та форма, которую вы переносите, без лишних изменений. По той же причине этот формат кладут под систему контроля версий: видно, что именно поменялось в форме между версиями.
Не путайте выгрузку конфигурации с типовой обработкой «Выгрузка и загрузка данных XML». Эта обработка переносит данные (справочники, документы) между одинаковыми конфигурациями и форму не передаёт. Метаданные и формы живут только в выгрузке конфигурации.
Копирование формы между конфигурациями в Конфигураторе
Когда нужен один-два объекта, а обе базы можно открыть одновременно, проще обойтись без файлов.
- Откройте два окна Конфигуратора — для базы-источника и базы-приёмника.
- В дереве конфигурации источника найдите объект и раскройте его ветку
Формы. - Выделите нужную форму, нажмите
Ctrl+C(или правой кнопкой → «Копировать»). - Перейдите в приёмник, встаньте на ветку
Формынужного объекта и нажмитеCtrl+V.
Так переносится сама форма. Но форма обращается к реквизитам и командам своего объекта. Если в приёмнике таких реквизитов нет, в модуле формы появятся ошибки. Поэтому для полноценного переноса чаще копируют весь объект целиком — тогда реквизиты, макеты и модуль приедут вместе с формой.
Помните и о внешних зависимостях формы. Её модуль может вызывать общие модули, обращаться к подпискам на события или к функциональным опциям, которых в приёмнике нет. Такие связи при копировании не переносятся автоматически — их придётся создать или перенести отдельно. После вставки формы запустите синтаксический контроль модуля (Текст → Проверить модуль), чтобы сразу увидеть, чего не хватает.
Если объект типовой и база на поддержке, Конфигуратор не даст изменить заимствованный объект, пока не включена возможность редактирования (Конфигурация → Поддержка → Настройка поддержки). Снятие с поддержки усложнит дальнейшие обновления — взвесьте, не лучше ли расширение.
Добавление или замена формы через расширение конфигурации
Расширения (файлы .cfe) появились в платформе 8.3.6. Они позволяют добавить или переопределить форму, не снимая типовую конфигурацию
с поддержки, — и это самый безопасный способ для рабочих баз.
- Откройте
Конфигурация → Расширения конфигурации. - Добавьте новое расширение или выберите присланное. Если расширение пришло файлом, в окне расширений выполните
Конфигурация → Загрузить конфигурацию из файла…и укажите.cfe. - Чтобы доработать существующую форму, в расширении заимствуйте нужный объект и его форму, затем вносите изменения в копию внутри расширения.
- Закройте окно расширения и обновите конфигурацию базы данных.
Загрузка файла .cfe и обновление конфигурации
базы данных — два разных шага. Пока вы не выполнили обновление, изменения формы в базе не появятся.
Плюс расширений: обновление типовой конфигурации проходит штатно, а ваша форма сохраняется в отдельном слое. Минус: если типовая форма сильно изменится, заимствованную форму в расширении, возможно, придётся переделать.
Загрузка табличного документа и макета из файла MXL
Если «формой» вы называете печатную форму в файле .mxl, это табличный документ, и грузится он иначе.
Просто посмотреть или распечатать файл
. В режиме 1С:Предприятие откройте Файл → Открыть и выберите .mxl — документ откроется в отдельном окне.
Открыть табличный документ из кода:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("D:\pechatnaya_forma.mxl");
ТабДок.Показать("Печатная форма");
Поместить содержимое в макет объекта. Макет типа «Табличный документ» редактируется прямо в Конфигураторе. Отдельной кнопки «импортировать MXL в макет» нет, поэтому содержимое переносят копированием: откройте .mxl как файл, выделите нужные области и вставьте их в макет объекта. После этого обновите конфигурацию базы данных.
Если печатная форма оформлена как внешняя — это уже не .mxl, а внешняя обработка .epf. Такой файл подключают через Администрирование → Печатные формы, отчёты и обработки → справочник дополнительных обработок, а не загружают в дерево конфигурации.
Пару слов про внешние обработки и отчёты отдельно, раз форма часто приходит именно в них. Разовый запуск: в 1С:Предприятии откройте Файл → Открыть и выберите .epf или .erf — для этого у пользователя должно быть право на открытие внешних обработок. Для постоянного использования обработку регистрируют в справочнике дополнительных отчётов и обработок: тогда её форма открывается из интерфейса, а файл хранится в базе и не теряется при переустановке на другом компьютере.
Обновление конфигурации базы данных и проверка результата
Любой из способов выше меняет конфигурацию, которую вы редактируете. Чтобы изменения попали в рабочую базу, их нужно применить.
- Нажмите
F7или откройтеКонфигурация → Обновить конфигурацию базы данных. - Если менялась структура (добавлены реквизиты, таблицы), платформа покажет окно реорганизации — подтвердите.
- Запустите 1С:Предприятие и откройте тот объект, в который грузили форму.
Обновление структуры базы требует монопольного доступа. Если в базе есть активные сеансы, платформа попросит их завершить — пользователи будут отключены. Делайте это в окно без работы или заранее предупредите коллег.
После обновления проверьте три вещи: форма открывается без ошибок в модуле; на форме видны все нужные реквизиты и команды; форма доступна пользователю под его ролью (а не только администратору). Если форму видит админ, но не рядовой пользователь — дело в правах роли, а не в самой загрузке.
Типичные ошибки при загрузке формы
Разберём сбои, которые не очевидны из текста ошибки.
Обновить конфигурацию базы данных (F7).Частые вопросы
Можно ли загрузить форму, не снимая базу с поддержки?
Есть ли у формы отдельный файл, который можно загрузить в типовую базу?
Ext/Form), но загружается только вместе с этой выгрузкой, а не сама по себе.Чем отличается файл .cf от .cfe?
.cf — это полная конфигурация, её загружают через Загрузить конфигурацию из файла… и она заменяет основную конфигурацию. .cfe — расширение, оно подключается отдельным слоем и не трогает типовую конфигурацию.