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