К статье
Практический материал

Разработка и Конфигурация · 11 мин

Какие формы есть в 1С: виды, назначение и настройка

Разбираем, какие формы есть в 1С: обычные и управляемые, формы объектов, списков, отчётов. Как создавать и настраивать формы, типичные ошибки разработчиков.

Форма в 1С — это визуальный интерфейс, через который пользователь взаимодействует с данными: просматривает списки документов, заполняет карточки контрагентов, подбирает товары, формирует отчёты. Практически любое действие в программе происходит в той или иной форме, поэтому понимание их видов и устройства необходимо и разработчику, и администратору, и продвинутому пользователю.

За всю историю платформы концепция форм в 1С существенно менялась. В версиях 7.7 и 8.0–8.1 использовались так называемые обычные формы, где разработчик вручную размещал элементы на экране. Начиная с платформы 8.2 появились управляемые формы — декларативный механизм, в котором разработчик описывает состав и логику, а внешний вид формирует сама платформа. Сегодня управляемые формы являются стандартом, но обычные формы до сих пор встречаются в старых конфигурациях.

Помимо деления по технологии, формы различаются по назначению: форма объекта, форма списка, форма выбора, форма констант, форма отчёта и другие. У каждого вида — свои свойства, методы и типичные сценарии использования. Ниже разберём классификацию, особенности работы и практические моменты настройки.

Обычные и управляемые формы: в чём разница

Обычная форма — это механизм, при котором разработчик сам размещает поля, кнопки и таблицы на макете, жёстко задавая координаты и размеры элементов. Такой подход давал полный контроль над внешним видом, но требовал много ручной работы и плохо масштабировался под разные разрешения экрана. Обычные формы работают только на клиенте и не поддерживают веб-клиент и мобильную платформу.

Управляемая форма строится иначе: разработчик описывает структуру формы — реквизиты, команды, элементы и их связи с данными, — а платформа сама решает, как это отрисовать, учитывая устройство, масштаб и настройки пользователя. Логика обработки данных разделена на клиентскую и серверную части, что позволяет выполнять тяжёлые операции на сервере и работать через веб-браузер.

На практике различие критично при выборе конфигурации и доработках. Если решение построено на обычных формах, оно не заработает в тонком и веб-клиенте без существенной переработки. Все современные типовые конфигурации (1С:Бухгалтерия 3.0, 1С:ERP, 1С:Управление торговлей 11) используют управляемые формы.

Обычные и управляемые формы

Обычные формы

Ручная отрисовка элементов, работают только в толстом/обычном клиенте. Встречаются в старых конфигурациях, поддержка затруднена.

Управляемые формы

Декларативное описание, поддержка веб-клиента и мобильных устройств, разделение клиентского и серверного кода. Современный стандарт платформы.

Формы по назначению: объект, список, выбор

Форма объекта — это карточка конкретного элемента данных: документа, элемента справочника, записи регистра сведений. В ней пользователь вводит и редактирует реквизиты, заполняет табличные части, проводит документ. При открытии формы объекта платформа загружает данные из базы и отображает их в привязанных полях.

Форма списка показывает набор однотипных объектов: журнал документов, список товаров, перечень сотрудников. Она поддерживает отбор, сортировку, поиск, групповые операции и настройку колонок. Для регистров сведений и накопления существуют формы списка записей, а для планов счетов и видов характеристик — свои специализированные варианты.

Форма выбора внешне похожа на форму списка, но предназначена для интерактивного подбора значения в поле ввода. Например, при заполнении реквизита «Контрагент» в документе открывается именно форма выбора справочника контрагентов. В ней можно ограничить состав данных отбором, запретить создание новых элементов и настроить режим поиска.

Формы отчётов, обработок и констант

Форма отчёта содержит настройки варианта отчёта и область результата. В современных конфигурациях отчёты чаще всего построены на системе компоновки данных (СКД), и основная форма отчёта создаётся платформой автоматически — разработчику достаточно настроить схему компоновки. Собственная форма отчёта нужна, когда требуется нестандартный интерфейс настроек или особая логика формирования.

Форма обработки — универсальный инструмент для служебных и пользовательских операций: загрузка данных из файлов, массовое изменение реквизитов, печатные формы, рабочие места специалистов. Обработки могут быть встроенными в конфигурацию или внешними (файлы с расширением epf), что удобно для временных задач без изменения конфигурации.

Форма констант предназначена для редактирования настроечных значений конфигурации: валюты учёта, префикса нумерации, параметров обмена. В типовых решениях вместо неё нередко используют специализированные панели настроек, но механизм формы констант остаётся доступным.

Общие формы и формы настроек

Общие формы не привязаны к конкретному объекту метаданных и используются повторно в разных местах конфигурации. Типичные примеры: форма ввода пароля, форма выбора файла с дополнительной логикой, универсальная форма печати, диалог подтверждения с расширенными опциями. Хранение таких форм в разделе «Общие формы» избавляет от дублирования кода.

Формы настроек отчёта и форма варианта отчёта — специфические виды, связанные с системой компоновки данных. Первая отвечает за интерфейс тонкой настройки отчёта, вторая — за выбор и сохранение пользовательских вариантов. В большинстве случаев их генерирует платформа, но при необходимости можно создать собственные.

Отдельно стоит упомянуть формы рабочих мест и начальных страниц: это составные интерфейсы, объединяющие несколько списков, отчётов и команд в одном окне. Они строятся как обычные управляемые формы, но проектируются под конкретную роль пользователя — кассира, менеджера по закупкам, бухгалтера.

Как создать и настроить форму в конфигураторе

Создание формы начинается в конфигураторе: в дереве конфигурации выбирается объект (например, документ или справочник), открывается закладка «Формы», и по кнопке добавления запускается конструктор. Конструктор предлагает выбрать вид формы — объекта, списка, выбора — и автоматически создаёт базовую структуру с реквизитами и командами.

После создания форма редактируется в визуальном редакторе: слева доступны реквизиты и команды формы, справа — дерево элементов интерфейса. Разработчик перетаскивает реквизиты в дерево элементов, настраивает группировку, видимость, доступность и свойства отображения. В модуле формы пишется код на встроенном языке с директивами компиляции &НаКлиенте и &НаСервере.

Для управляемых форм ключевой принцип — минимум кода на клиенте. Все обращения к базе данных, запросы и изменение объектов должны выполняться в серверных процедурах, а клиентская часть отвечает только за интерактивность: предупреждения, вопросы пользователю, работу с файлами.

Порядок создания формы объекта
  1. 1
    Откройте конфигуратор и найдите нужный объект метаданных в дереве конфигурации
  2. 2
    На закладке «Формы» нажмите «Добавить» и выберите в конструкторе вид «Форма объекта»
  3. 3
    Перенесите нужные реквизиты в дерево элементов и настройте группировку и порядок
  4. 4
    Добавьте обработчики событий: ПриСозданииНаСервере, ПередЗаписью, ПослеЗаписи
  5. 5
    Обновите конфигурацию базы данных и проверьте форму в режиме предприятия

Расширения форм и доработка типовых конфигураций

Прямое изменение форм типовой конфигурации усложняет обновление: при установке нового релиза изменённые формы приходится сравнивать и объединять вручную. Платформа предлагает более безопасный механизм — расширения конфигурации, в которых форма заимствуется из типового решения и дорабатывается отдельным слоем.

В расширении можно добавлять реквизиты, элементы, команды и обработчики событий, изменять свойства элементов, не затрагивая исходный код формы. При обновлении типовой конфигурации расширение продолжает работать, если структура заимствованной формы не изменилась критически. Это существенно снижает трудозатраты на сопровождение.

Ограничение механизма: нельзя удалять элементы исходной формы и полностью переопределять обработчики — только дополнять их через аннотации «Перед», «После» и «Вместо». Если требуется радикально другой интерфейс, иногда проще создать собственную форму объекта и назначить её открытие программно.

Проверка результата и типичные ошибки

После создания или изменения формы её нужно проверить в режиме, максимально близком к рабочему: под теми же ролями и правами, что у конечных пользователей, и в том клиенте, которым они пользуются. Форма, корректно работающая в толстом клиенте под полными правами, может выдавать ошибки доступа или пустые данные у рядового пользователя.

Обращайте внимание на скорость открытия: если форма списка открывается дольше нескольких секунд, вероятные причины — отсутствие индексов по полям отбора, динамический список с тяжёлым запросом, вычисляемые поля в запросе. Для форм объектов типичная проблема — загрузка больших табличных частей целиком.

Типичные ошибки при работе с формами
01
Выполнение запросов к базе в клиентских процедурах управляемой формы — приводит к ошибкам компиляции или неработоспособности в веб-клиенте
02
Изменение типовых форм напрямую вместо расширения — при обновлении конфигурации доработки теряются или требуют ручного слияния
03
Обращение к элементам формы до их создания в обработчике ПриСозданииНаСервере на клиенте — вызывает ошибку «Поле объекта не обнаружено»
04
Хранение промежуточных данных в реквизитах формы строкового типа без ограничения длины — раздувает размер формы и замедляет её передачу между клиентом и сервером

Часто задаваемые вопросы

Чем управляемая форма отличается от обычной простыми словами?

В обычной форме разработчик сам рисует интерфейс, размещая элементы по координатам. В управляемой он описывает состав и логику, а внешний вид формирует платформа с учётом устройства пользователя. Управляемые формы работают в веб-браузере и на мобильных устройствах, обычные — только в классическом клиенте.

Можно ли открыть форму с отбором программно?

Да. Для этого используется структура параметров, в которую добавляется ключ «Отбор» со структурой отбора, и метод ОткрытьФорму. Например, так открывают список документов по конкретному контрагенту. Дополнительно параметр «СформироватьПриОткрытии» управляет автоматическим выполнением отчётов.

Сколько форм может быть у одного документа?

Количество форм не ограничено платформой. На практике создают несколько форм одного вида, когда разным ролям нужны разные интерфейсы — например, упрощённая форма для менеджера и полная для бухгалтера. Одна из форм каждого вида назначается формой по умолчанию.

Почему форма открывается медленно и что делать?

Частые причины: тяжёлый запрос динамического списка, отсутствие индексов по полям отбора, большие табличные части, сложные вычисления в обработчике ПриСозданииНаСервере. Начните с замера времени открытия, анализа запроса списка и проверки индексирования полей, по которым чаще всего выполняется отбор.

Как изменить форму типовой конфигурации без снятия с поддержки?

Используйте механизм расширений конфигурации: форма заимствуется из типового решения, а доработки добавляются отдельным слоем. Можно добавлять элементы, реквизиты и обработчики, изменять свойства. При обновлении типовой конфигурации расширение, как правило, продолжает работать без ручного слияния.

Что такое внешняя обработка и чем она отличается от встроенной?

Внешняя обработка — это файл с расширением epf, который открывается через меню «Файл — Открыть» или подключается через механизм дополнительных отчётов и обработок. Её удобно использовать для разовых задач и тестирования, не изменяя конфигурацию. Встроенная обработка хранится внутри конфигурации и обновляется вместе с ней.

Итог

Что важно запомнить

Формы в 1С делятся на обычные (устаревшие) и управляемые (современный стандарт), а по назначению — на формы объекта, списка, выбора, отчёта, обработки, констант и общие формы. Создаются формы в конфигураторе через конструктор, дорабатывать типовые решения безопаснее через расширения, а проверять результат нужно под правами реальных пользователей.