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