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