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

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

Как добавить поля в форму 1С

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

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

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

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

Определяем, какое именно поле нужно добавить

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

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

Маршрут решения

Как выбрать способ

Поле нужно для нестандартной информации без программированияИспользуйте дополнительные реквизиты в режиме предприятия
Реквизит уже есть в объекте, но не виден на формеПеретащите его из панели реквизитов в дерево элементов формы
Нужно хранить новые данные в объектеСоздайте реквизит объекта в конфигураторе, затем выведите на форму
Поле нужно только для расчёта или временного отображенияДобавьте реквизит формы и элемент, связанный с ним
Конфигурация типовая на поддержкеДелайте доработку через расширение конфигурации

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

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

В панели реквизитов найдите нужный реквизит — объектные реквизиты обычно сгруппированы внутри основного реквизита «Объект». Перетащите его мышью в то место дерева элементов, где поле должно отображаться. Платформа автоматически создаст элемент формы типа «Поле ввода» (или другое подходящее отображение) и свяжет его с данными через свойство «ПутьКДанным».

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

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

Создаём новый реквизит объекта и добавляем его на форму

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

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

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

Добавляем реквизит формы для временных данных

Реквизит формы существует только, пока форма открыта, и не сохраняется в базе. Он подходит для полей-фильтров, промежуточных расчётов, переключателей отображения. Чтобы добавить его, в редакторе формы откройте панель «Реквизиты», перейдите на вкладку «Реквизиты» (не «Объект») и нажмите «Добавить». Укажите имя, тип и при необходимости заголовок.

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

Добавление поля через расширение конфигурации

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

В расширении добавьте нужную форму типового объекта (через контекстное меню объекта — «Добавить в расширение» или перетаскиванием). Форма откроется в редакторе расширения, где можно добавлять новые элементы, менять свойства существующих и дополнять модуль своими обработчиками через аннотации «&После», «&Перед» или «&Вместо».

Новые реквизиты объекта в расширении создавать нельзя — только реквизиты формы и элементы. Если нужно хранить данные, используйте дополнительные реквизиты (механизм БСП) или храните значения в собственном справочнике/регистре сведений, добавленном в расширение.

Сравнение способов добавления поля

Дополнительный реквизит (режим предприятия)

Без программирования, безопасно при обновлениях. Ограничение: поле попадает в стандартную группу, сложная логика недоступна

Изменение формы в конфигураторе

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

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

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

Реквизит формы

Быстрое решение для временных и вычисляемых полей. Ограничение: данные не сохраняются в базе

Настройка свойств поля

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

Для полей ссылочного типа полезны свойства «КнопкаВыбора», «КнопкаОчистки» и «БыстрыйВыбор». Для строковых полей с длинным текстом установите «МногострочныйРежим». Если поле должно заполняться автоматически и не редактироваться, установите «ТолькоПросмотр = Истина» или настройте событие «ПриИзменении» связанных полей в модуле формы.

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

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

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

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

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

Отображение поля
Норма

Поле видно на форме в нужной группе с понятным заголовком

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

Поля нет на форме или оно без подписи

Сохранение значения
Норма

После записи и повторного открытия значение на месте

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

Значение пропадает — поле не связано с реквизитом объекта

Открытие формы
Норма

Форма открывается без ошибок

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

Ошибка «Поле объекта не обнаружено» — неверный ПутьКДанным

Работа в расширении
Норма

После обновления типовой конфигурации поле остаётся

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

Доработка исчезла — изменения делались в основной конфигурации

Типичные ошибки
01
Элемент добавлен, но не заполнено свойство «ПутьКДанным» — поле отображается пустым и не сохраняет данные
02
Изменение типовой формы напрямую вместо расширения — доработка теряется при обновлении конфигурации
03
Обновление конфигурации базы данных без резервной копии — риск потери данных при сбое
04
Добавление реквизита формы вместо реквизита объекта там, где данные нужно хранить — значения исчезают после закрытия формы
05
Проверка только на своей роли — у пользователей с ограниченными правами поле может быть недоступно из-за настроек RLS или функциональных опций

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

Итог

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

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

Частые вопросы

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

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

Почему добавленное поле не сохраняет введённое значение?

Наиболее вероятная причина — элемент формы связан с реквизитом формы, а не с реквизитом объекта, либо свойство «ПутьКДанным» вообще не заполнено. Откройте свойства элемента и проверьте, что путь указывает на реквизит внутри «Объект». Также убедитесь, что после ввода значения объект записывается.

Что произойдёт с добавленным полем при обновлении типовой конфигурации?

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

Как добавить поле в табличную часть документа?

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

Почему поле видно администратору, но не видно обычному пользователю?

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

Можно ли добавить вычисляемое поле без хранения в базе?

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