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