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

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

Как создать собственную форму документа в 1С

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

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

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

Материал ориентирован на управляемые формы, которые используются в современных конфигурациях (Бухгалтерия 3.0, Управление торговлей 11, ERP и другие на платформе 8.3). Если у вас обычное приложение на платформе 8.2, общая логика похожа, но редактор формы выглядит иначе.

Что понадобится перед началом работы

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

Перед любыми изменениями сделайте выгрузку базы через меню «Администрирование → Выгрузить информационную базу» или сохраните конфигурацию в файл через «Конфигурация → Сохранить конфигурацию в файл». Это позволит откатиться, если форма получится неработоспособной.

Если конфигурация типовая и стоит на поддержке, решите заранее, как вы будете обновляться. Изменение типовой формы потребует ручного сравнения при каждом обновлении. Альтернатива — расширение конфигурации, которое не затрагивает типовой код и обновляется проще.

Открываем документ в конфигураторе

Запустите конфигуратор и откройте конфигурацию: «Конфигурация → Открыть конфигурацию». В дереве объектов найдите ветку «Документы» и раскройте нужный документ — например, «РеализацияТоваровУслуг» или ваш собственный документ.

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

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

Создаём новую форму через конструктор

На закладке «Формы» нажмите кнопку добавления (зелёный плюс). Запустится конструктор формы. Выберите тип «Форма документа», задайте имя формы, например «ФормаДокументаУпрощенная». Конструктор предложит отметить реквизиты, которые нужно разместить на форме: шапку, табличные части, итоговые поля.

Отметьте только необходимые реквизиты — форма получится компактнее и быстрее. После нажатия «Готово» откроется редактор управляемой формы с тремя рабочими областями: дерево элементов формы слева вверху, список реквизитов формы справа вверху и визуальный предпросмотр внизу.

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

Настраиваем элементы и реквизиты формы

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

У каждого элемента есть свойства, доступные через правый клик → «Свойства». Полезные настройки: «Заголовок» (текст подписи поля), «ПодсказкаВвода», «КнопкаВыпадающегоСписка», «АвтоотметкаНезаполненного» (подсветка обязательного поля), «ТолькоПросмотр» для полей, которые нельзя редактировать.

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

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

Как добавить вычисляемое поле

Для полей, которых нет в объекте (например, сумма скидки в процентах), создайте реквизит формы: в панели реквизитов нажмите «Добавить», задайте имя и тип, снимите флажок сохраняемых данных, если значение хранить не нужно. Затем заполните его программно в модуле формы, например в обработчике «ПриОткрытии» или «ПриИзменении» связанного поля.

Назначаем форму основной и обновляем конфигурацию

Чтобы новая форма открывалась по умолчанию, вернитесь в окно редактирования документа, закладка «Формы». В поле «Основная форма документа» выберите созданную форму из списка. Если оставить поле пустым, платформа продолжит генерировать форму автоматически.

Сохраните изменения и обновите конфигурацию базы данных: клавиша F7 или «Конфигурация → Обновить конфигурацию базы данных». Без этого шага изменения видны только в конфигураторе, но не в пользовательском режиме.

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

Контрольные точки

Как проверить результат

Открытие документа
Норма

Форма открывается без сообщений об ошибках, все поля доступны

Тревожный признак

Ошибка «Поле объекта не обнаружено» или пустое окно

Запись документа
Норма

Документ записывается и проводится, данные сохраняются

Тревожный признак

Ошибка при записи, теряются введённые значения

Новый и существующий документ
Норма

Оба сценария работают одинаково корректно

Тревожный признак

Форма работает только для новых или только для старых документов

Альтернатива: форма через расширение конфигурации

Если конфигурация типовая и регулярно обновляется, предпочтительный способ — расширение. В конфигураторе откройте «Конфигурация → Расширения конфигурации», создайте новое расширение, добавьте в него нужный документ и создайте для него форму. Заимствованная форма дополняется собственными элементами, а типовая остаётся нетронутой.

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

Сравнение вариантов

Изменение типовой формы

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

Расширение конфигурации

Лучший вариант для типовых решений на поддержке. Ограничения в изменении логики типовых обработчиков

Внешняя обработка с формой

Подходит для разовых задач ввода данных, но не заменяет основную форму документа

Типичные ошибки при создании формы

Самая частая проблема — ошибка «Поле объекта не обнаружено» при открытии формы. Она возникает, когда элемент формы ссылается на реквизит, который был переименован или удалён из объекта. Лечится удалением элемента или исправлением пути к данным в его свойствах.

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

Типичные ошибки
01
Забыли обновить конфигурацию базы данных (F7) — пользователи не видят новую форму
02
Не назначили форму основной — открывается автоматически сгенерированная, а не созданная
03
Удалили реквизит из документа, но оставили его на форме — ошибка при открытии
04
Изменили типовую форму без резервной копии — при ошибке нечего восстановить
05
Разместили на форме слишком много полей — форма медленно открывается и неудобна

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

Можно ли создать свою форму без конфигуратора, прямо в режиме Предприятия?

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

Что делать, если после обновления типовой конфигурации моя форма перестала работать?

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

Как сделать поле обязательным для заполнения на форме?

В свойствах поля ввода установите «АвтоотметкаНезаполненного» — поле подсветится, если пустое. Для строгой проверки добавьте в модуль формы обработчик «ОбработкаПроверкиЗаполнения» и вызывайте отказ при пустом значении. Проверка на уровне формы не заменяет проверку в модуле объекта, если документ может записываться программно.

Можно ли иметь несколько форм для одного документа?

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

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

Частые причины: большое количество элементов, обращения к базе в обработчике «ПриОткрытии», динамические списки с тяжёлыми запросами на закладках формы. Уберите лишние элементы, перенесите тяжёлые операции на серверные вызовы и отложите загрузку данных неактивных вкладок.

Итог

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

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