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