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