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