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