Обновление форм в 1С:Предприятие: печатные, экранные и через расширения
Содержание
Под словом «форма» в 1С понимают три разные вещи, и обновляются они по-разному. Внешнюю печатную форму (файл .epf или макет .mxl) заменяют в пользовательском режиме через Администрирование → Печатные формы, отчеты и обработки, без конфигуратора. Экранную форму документа или справочника правят в конфигураторе, в ветке «Формы» нужного объекта. А чтобы изменить форму в типовой конфигурации и не потерять правки при следующем обновлении, её переносят в расширение.
С какой из трёх задач вы пришли — определяет весь дальнейший порядок. Ниже разберём каждый путь: когда он подходит, что сделать перед работой и какие ошибки встречаются чаще всего. Начнём с того, чем обновление формы отличается от обновления самой конфигурации — это разные операции, и их часто путают.
Форма или конфигурация: что именно вы обновляете
Обновление конфигурации и изменение формы — не одно и то же.
Обновление конфигурации меняет версию всего прикладного решения: приходит новый релиз Бухгалтерии или ЗУП, в нём исправлены формы отчётов, добавлены реквизиты, изменена логика. Вы загружаете .cf или .cfu и применяете его целиком. Отдельные формы при этом обновляются «за компанию», автоматически.
Изменение формы — точечная правка одной конкретной формы: добавить колонку в табличную часть, скрыть лишнее поле, поправить макет печати. Остальная конфигурация не трогается.
Разница важна по двум причинам:
- 🔄 Если нужная вам форма входит в типовую конфигурацию , её чинит очередное обновление от фирмы 1С — лезть в конфигуратор не нужно.
- 🛠️ Если вы сами изменили форму в типовой конфигурации напрямую, она становится изменённой, и следующее обновление либо затрёт вашу правку, либо потребует ручного объединения.
Отсюда практический вывод: типовые формы обновляйте штатным механизмом, а свои доработки держите в расширении — тогда они переживут обновление. Подробнее о расширениях — ниже.
Чтобы не держать всё в голове, вот три способа рядом — что меняем, нужен ли конфигуратор и переживёт ли правка обновление релиза:
| Способ | Что меняем | Конфигуратор | Переживёт обновление |
|---|---|---|---|
Внешняя печатная форма (.epf) | печать документа или отчёта | не нужен | да, форма вне конфигурации |
| Расширение конфигурации | экранную или печатную форму типовой базы | нужен для создания | да, лежит отдельным слоем |
| Правка в основной конфигурации | любую форму, но снимает с поддержки | нужен | нет, затрётся или потребует объединения |
| Настройка формы пользователем | видимость и порядок полей | не нужен | да, хранится отдельно по пользователю |
Подготовка: резервная копия и монопольный доступ
Перед любой правкой структуры или форм сделайте резервную копию базы . Это дело пяти минут, которое экономит дни.
Для файловой базы есть два способа:
- Выгрузка в
.dt. Откройте конфигуратор, менюАдминистрирование → Выгрузить информационную базу, укажите имя файла. Получится один файл со всеми данными и конфигурацией. - Копия файла базы. Закройте все сеансы и скопируйте файл
1Cv8.1CDиз каталога базы в надёжное место. Быстрее, чем выгрузка, но требует, чтобы в базе никого не было.
Для клиент-серверной базы копию снимает администратор СУБД средствами самого сервера (PostgreSQL, MS SQL) — выгрузка .dt для больших баз долгая.
Правка форм в конфигураторе требует монопольного доступа к базе в момент, когда вы нажимаете «Обновить конфигурацию базы данных». Пока в базе работают пользователи, платформа не применит изменения структуры. Предупредите коллег и попросите выйти — иначе их сеансы оборвутся при принудительном завершении.
Без свежей резервной копии не начинайте правку конфигурации. Если что-то пойдёт не так, откат к копии — единственный быстрый способ вернуть рабочую базу.
Обновление внешних печатных форм и отчётов
Внешняя печатная форма — это отдельный файл .epf, который подключается к базе без изменения конфигурации. Так распространяют доработанные счета, акты, УПД, нестандартные отчёты. Обновить такую форму — значит заменить старый файл новым.
В типовых конфигурациях на базе Библиотеки стандартных подсистем (Бухгалтерия 3.0, ЗУП 3, Управление торговлей 11 и других) порядок такой:
- Откройте
Администрирование → Печатные формы, отчеты и обработки. - Убедитесь, что включён флажок
Дополнительные отчеты и обработки. Если его нет, раздел не отображается. - Перейдите в список
Дополнительные отчеты и обработки. - Найдите в списке старую версию формы, откройте её карточку.
- Нажмите
Загрузить из файлаи укажите новый.epf. Файл заменится, настройки размещения (к какому документу привязана, в каком меню печати появляется) сохранятся.
Если внешней формы в списке ещё нет, добавьте её кнопкой Создать → Из файла и в карточке укажите «Размещение» — к каким документам или справочникам форма относится.
Когда поставщик формы присылает новую версию, не создавайте вторую запись — обновляйте существующую через Загрузить из файла. Иначе в меню печати появятся два одинаковых пункта, и пользователи будут путаться.
Отдельный случай — встроенный макет печати (.mxl) у типового документа. Его правят в конфигураторе: у объекта в ветке «Макеты» открывают табличный документ и редактируют ячейки. Но такая правка делает конфигурацию изменённой, поэтому макеты тоже разумнее выносить в расширение (см. ниже).
Редактирование экранных форм в конфигураторе
Экранная форма — это то, что пользователь видит на экране: поля документа, кнопки, табличные части. В 1С:Предприятие 8.3 используются управляемые формы.
Открывается форма так:
- Запустите конфигуратор для нужной базы.
- В дереве конфигурации найдите объект — например,
Документы → РеализацияТоваровУслуг. - Раскройте ветку
Формы, двойным щелчком откройте нужную форму (ФормаДокумента, ФормаСписка и т.д.).
Редактор управляемой формы состоит из нескольких панелей:
- Элементы — дерево полей, групп и кнопок так, как они лягут на экран.
- Реквизиты — данные, с которыми связаны поля.
- Командный интерфейс — состав и расположение команд (кнопок).
- Модуль — программный код обработчиков событий формы.
Типовые правки: перетащить реквизит из списка «Реквизиты» в «Элементы», чтобы добавить поле; снять видимость у ненужного элемента в его свойствах; поменять порядок полей перетаскиванием в дереве «Элементы».
Имена элементов и реквизитов в дереве должны совпадать с именами, которые используются в модуле формы. Если вы удаляете элемент, на который ссылается обработчик события, при открытии формы выскочит ошибка — поэтому правьте дерево «Элементы» и модуль согласованно.
После правки форму нужно применить к базе:
- Меню
Конфигурация → Обновить конфигурацию базы данныхили клавишаF7. - Платформа покажет окно изменений структуры — подтвердите принятие.
- Если менялась только форма (без новых реквизитов объекта), реструктуризация данных не потребуется и обновление пройдёт быстро.
Если база типовая и находится на поддержке, перед правкой конфигуратор предупредит, что объект защищён от изменений. Снимать замок Конфигурация → Поддержка → Настройка поддержки можно, но тогда вы теряете часть автоматики обновлений. Для типовых баз это крайняя мера — сначала рассмотрите расширение.
Безопасные правки через расширения конфигурации
Расширение конфигурации — способ изменить типовую форму, не снимая конфигурацию с поддержки и не ломая будущие обновления. Правки лежат в отдельном «слое», который накладывается поверх типовой конфигурации при запуске.
Главный плюс: когда придёт новый релиз, типовая форма обновится, а ваша доработка останется в расширении и продолжит работать. Ручное объединение не нужно.
Порядок работы:
- В конфигураторе откройте
Конфигурация → Расширения конфигурации. - Создайте расширение (кнопка добавления), задайте имя, префикс и назначение.
- Откройте конфигурацию расширения. Она пустая.
- Найдите в основной конфигурации объект с нужной формой, вызовите у формы команду «Добавить в расширение» (заимствование формы).
- Форма появится в расширении. Теперь правьте её — добавляйте поля, меняйте видимость, дописывайте обработчики.
- Примените изменения через
Обновить конфигурацию базы данных(F7).
Заимствованную форму можно менять целиком, а можно взять из неё только отдельные элементы — тогда расширение затронет минимум и реже будет конфликтовать с обновлениями.
Расширение можно собрать во внешний файл .cfe и переносить между базами через Администрирование → Печатные формы, отчеты и обработки → Расширения в пользовательском режиме — конфигуратор на рабочей базе при этом не нужен.
Расширения подходят не для всего: сложные изменения логики иногда проще сделать в самой конфигурации. Но для форм, печатных макетов и небольших доработок интерфейса это основной рекомендуемый путь.
Настройка формы пользователем без конфигуратора
Часто «обновить форму» означает всего лишь вернуть привычный вид после обновления релиза — и конфигуратор для этого не нужен.
В режиме 1С:Предприятие почти у любой формы есть команда Ещё → Изменить форму. В открывшемся окне можно:
- включить и выключить видимость полей и колонок;
- поменять их порядок;
- свернуть ненужные группы.
Эти настройки хранятся для каждого пользователя отдельно и не меняют конфигурацию. Если после обновления форма выглядит непривычно, сначала загляните сюда — возможно, типовая форма просто получила новые поля, а старые достаточно скрыть.
Сбросить пользовательские настройки формы к типовым можно через Сервис и настройки → Настройки → Очистить настройки (точное название пункта зависит от конфигурации) — удобно, когда правки окончательно запутали вид.
Типичные ошибки при обновлении форм и как их устранить
Общее правило: не правьте типовые формы напрямую, если базу ещё будут обновлять. Один раз потратив время на расширение, вы избавляетесь от ручного объединения при каждом релизе.
Частые вопросы
Можно ли обновить форму без конфигуратора?
.epf) — её меняют в разделе Администрирование → Печатные формы, отчеты и обработки. Пользовательские настройки видимости полей тоже меняются без конфигуратора, через Ещё → Изменить форму. А вот структуру экранной формы объекта правят только в конфигураторе или через расширение.Чем отличается обновление формы от обновления конфигурации?
Потеряются ли мои правки формы после обновления релиза?
Нужен ли монопольный доступ, чтобы изменить форму?
Обновить конфигурацию базы данных). Пока в базе работают пользователи, платформа не применит правку. Само редактирование формы в конфигураторе монополии не требует.Как перенести доработанную форму в другую базу?
.epf и загрузить в другой базе. Доработку из расширения — собрать расширение во внешний файл .cfe и подключить его в целевой базе, в том числе в пользовательском режиме.