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