К статье
Практический материал

Разработка и Конфигурация · 13 мин

Как добавить поле в таблицу 1С

Как добавить поле (реквизит) в таблицу 1С через конфигуратор: выбор типа данных, обновление конфигурации базы, расширения, проверка результата и типичные ошибки.

«Добавить поле в таблицу 1С» — задача, которая встречается в двух разных ситуациях. Первая: нужно добавить новый реквизит в объект конфигурации — справочник, документ или регистр, чтобы хранить дополнительные данные. Вторая: нужно вывести дополнительную колонку в табличную часть документа или в динамический список на форме. Оба сценария выполняются через конфигуратор, но различаются по глубине вмешательства и рискам.

Важно понимать, что в 1С нет прямого редактирования таблиц базы данных, как в SQL. Платформа сама создаёт и изменяет физические таблицы при обновлении конфигурации базы данных. Ваша задача — правильно описать новый реквизит в дереве метаданных, а платформа выполнит реструктуризацию автоматически.

Ниже разобраны все основные способы: добавление реквизита в типовую конфигурацию через расширение, прямое изменение собственной конфигурации, вывод колонки на форму и добавление поля в табличную часть. Отдельно описаны проверка результата, типичные ошибки и ограничения, при которых лучше привлечь специалиста.

Что понимать под «таблицей» в 1С

Прежде чем добавлять поле, определите, с каким именно объектом вы работаете. В 1С «таблицей» пользователи часто называют разные сущности, и способ добавления поля для каждой свой:

  • Таблица справочника или документа — основное хранилище данных объекта. Поле добавляется как реквизит объекта в конфигураторе.
  • Табличная часть — вложенная таблица внутри документа или справочника (например, «Товары» в реализации). Поле добавляется как реквизит табличной части.
  • Таблица на форме — визуальное отображение списка. Иногда поле уже существует в данных, и его нужно только вывести на форму.
  • Регистр сведений или накопления — поле добавляется как измерение, ресурс или реквизит регистра.

Если цель — хранить новую информацию (например, «Цвет» у номенклатуры), нужен реквизит объекта. Если данные уже есть, но не видны пользователю, достаточно отредактировать форму — это быстрее и не требует реструктуризации базы.

Подготовка: резервная копия и выбор способа

Любое изменение структуры метаданных требует обновления конфигурации базы данных, а эта операция при ошибке может повредить данные. Перед началом работы сделайте выгрузку информационной базы: в конфигураторе откройте «Администрирование → Выгрузить информационную базу» и сохраните файл .dt. Для клиент-серверных баз дополнительно убедитесь, что есть свежая копия средствами СУБД.

Второй шаг — выбрать способ внесения изменений. Если конфигурация типовая и находится на полной поддержке, прямое изменение объектов снимет её с поддержки и усложнит будущие обновления. В этом случае правильный инструмент — расширение конфигурации. Если конфигурация собственная или уже доработана, реквизит можно добавить напрямую.

Как добавить реквизит в справочник или документ

Базовый сценарий выглядит одинаково для большинства объектов. Порядок действий в конфигураторе:

Порядок действий
  1. 1
    Откройте конфигуратор и разблокируйте конфигурацию от изменений, если она на поддержке (Конфигурация → Поддержка → Настройка поддержки).
  2. 2
    В дереве конфигурации найдите нужный объект: Справочники → Номенклатура (или нужный документ).
  3. 3
    Раскройте объект, щёлкните правой кнопкой по ветке «Реквизиты» и выберите «Добавить».
  4. 4
    Задайте имя реквизита латиницей без пробелов (например, ЦветТовара) и синоним — он будет виден пользователям.
  5. 5
    Выберите тип данных: строка с ограничением длины, число, дата, булево или ссылка на справочник.
  6. 6
    Перетащите реквизит на форму объекта или добавьте через редактор формы.
  7. 7
    Нажмите F7 (Обновить конфигурацию базы данных) и подтвердите реструктуризацию.

Обратите внимание на тип данных — его сложно изменить после того, как в поле накоплены значения. Строку неограниченной длины не получится использовать в отборах и индексах так же свободно, как строку фиксированной длины. Для полей, по которым планируется поиск и отбор, задавайте разумную фиксированную длину, например 50 или 100 символов.

После обновления конфигурации базы данных откройте объект в режиме предприятия и убедитесь, что новое поле отображается, сохраняется и не ломает существующие данные. Если реквизит добавлен в документ, который участвует в проведении, проверьте, не требуется ли учесть его в движениях по регистрам.

Как добавить колонку в табличную часть

Табличная часть — это отдельная таблица, связанная с объектом. Например, чтобы в документе «Реализация товаров и услуг» хранить примечание к каждой строке товара, реквизит добавляется именно в табличную часть «Товары», а не в шапку документа.

Порядок почти идентичен: в дереве конфигурации раскройте документ, найдите ветку «Табличные части», выберите нужную и добавьте в неё реквизит. Затем откройте форму документа, найдите таблицу, связанную с табличной частью, и добавьте новую колонку — либо перетаскиванием реквизита из панели «Реквизиты» в дерево элементов формы, либо через команду «Добавить» в редакторе формы.

Если колонка добавлена в данные, но не видна на форме, проверьте свойство «Видимость» элемента формы и пользовательские настройки формы в режиме предприятия («Ещё → Изменить форму»). Часто поле уже существует, но скрыто настройками конкретного пользователя.

Добавление поля через расширение конфигурации

Расширение — механизм, который позволяет дорабатывать типовую конфигурацию, не изменяя её саму. Ваши реквизиты хранятся отдельно, и при обновлении типовой конфигурации они не конфликтуют с изменениями поставщика. Это рекомендуемый способ для конфигураций на поддержке.

Порядок работы: в конфигураторе откройте «Конфигурация → Расширения конфигурации», создайте новое расширение с понятным именем и префиксом (например, «Доп»). Затем в дереве конфигурации найдите нужный объект, вызовите контекстное меню и выберите «Добавить в расширение». После этого добавьте реквизит в объект уже внутри расширения — он получит префикс, который вы указали.

Расширения имеют ограничения: не все объекты и не все изменения через них поддерживаются. Например, изменение ролей, некоторых регистров и отдельных системных свойств может быть недоступно. Если расширение не позволяет решить задачу, придётся дорабатывать конфигурацию напрямую с включением возможности изменения.

Сравнение вариантов

Расширение конфигурации

Подходит для типовых конфигураций на поддержке. Обновления поставщика не затирают доработки. Ограничение: доступны не все объекты и свойства.

Прямое изменение конфигурации

Полный доступ ко всем объектам и свойствам. Подходит для собственных и уже доработанных конфигураций. Минус: усложняет обновление типовых решений.

Дополнительные реквизиты (в режиме предприятия)

Во многих типовых конфигурациях есть механизм «Дополнительные реквизиты и сведения» — поле создаётся без конфигуратора. Подходит для простых справочных данных, но такие поля неудобны в отчётах и запросах.

Альтернатива без конфигуратора: дополнительные реквизиты

В типовых конфигурациях (например, в линейке «Управление торговлей», «ERP», «Бухгалтерия предприятия») встроен механизм дополнительных реквизитов и сведений. Он позволяет администратору добавить поле к справочнику или документу прямо в режиме предприятия, без конфигуратора и без обновления конфигурации базы данных.

Обычно механизм находится в разделе администрирования: «НСИ и администрирование → Общие настройки → Дополнительные реквизиты и сведения». После включения флажка у объектов появляется возможность добавлять поля через форму «Дополнительные реквизиты». Поле сразу становится доступно пользователям с соответствующими правами.

Минус подхода — такие поля хранятся в универсальной таблице, а не в основной таблице объекта. Это замедляет выборки по этим полям и усложняет их использование в запросах и произвольных отчётах. Для полей, участвующих в отборах, обменах и проведении документов, лучше использовать полноценный реквизит через конфигуратор или расширение.

Маршрут решения

Как выбрать действие

Поле нужно для справочной информации, редко используется в отборах, а конфигурация типоваяИспользуйте дополнительные реквизиты в режиме предприятия — это быстро и не требует конфигуратора
Поле участвует в отборах, отчётах, обменах или проведении, конфигурация типоваяДобавьте реквизит через расширение конфигурации
Конфигурация собственная или уже снята с поддержкиДобавьте реквизит напрямую в объект конфигурации
Данные уже есть, но не видны пользователюНе добавляйте новый реквизит — выведите существующее поле на форму или проверьте настройки видимости

Проверка результата и типичные ошибки

После обновления конфигурации базы данных проверьте результат в несколько шагов: откройте объект в режиме предприятия, создайте новый элемент, заполните добавленное поле, сохраните и откройте повторно — значение должно сохраниться. Затем проверьте поле в списке, отчёте или отборе, если оно для этого предназначалось.

Контрольные точки

Как проверить результат

Сохранение значения
Норма

Значение введено, объект записан, после повторного открытия значение на месте

Тревожный признак

Поле очищается после записи — проверьте связь элемента формы с реквизитом данных

Отображение на форме
Норма

Поле видно всем пользователям с нужными правами

Тревожный признак

Поле видно только части пользователей — проверьте права и функциональные опции

Обновление конфигурации БД
Норма

Реструктуризация завершилась без ошибок, база открывается

Тревожный признак

Ошибка реструктуризации — восстановите копию и ищите причину в журнале

Работа обменов и отчётов
Норма

Существующие отчёты и синхронизации работают как раньше

Тревожный признак

Отчёт или обмен упал с ошибкой — новое поле могло нарушить формат обмена

Типичные ошибки
01
Добавление реквизита без резервной копии — при сбое реструктуризации данные большой таблицы можно потерять.
02
Имя реквизита с пробелами или кириллицей в идентификаторе — усложняет обращение из кода и запросов; используйте латиницу, а русское название задайте в синониме.
03
Строка неограниченной длины для поля, по которому строятся отборы, — такие поля нельзя индексировать, поиск по ним медленный.
04
Изменение типа уже заполненного реквизита — при несовместимости типов значения будут потеряны при реструктуризации.
05
Прямая доработка типовой конфигурации вместо расширения — при очередном обновлении изменения конфликтуют или теряются.
06
Поле добавлено в данные, но не выведено на форму — пользователи не видят реквизит и считают, что доработка не сработала.

Отдельная группа проблем связана с обменами данными. Если база участвует в синхронизации (например, с сайтом или другой базой 1С), новый реквизит не передаётся автоматически — его нужно добавить в правила обмена. До настройки правил данные в новом поле будут существовать только в одной базе.

Перед добавлением реквизита проверьте, нет ли в типовой конфигурации уже готового поля с похожим смыслом. Часто нужное поле существует, но не выведено на форму или закрыто функциональной опцией. Поиск по дереву конфигурации (Ctrl+Shift+F по метаданным) экономит время и избавляет от дублирующих реквизитов.
ПЗ
Практическое замечание

Ограничения и границы самостоятельной работы

Добавление простого реквизита в справочник или документ — задача, которую может выполнить администратор с базовым знанием конфигуратора. Однако есть ситуации, где лучше привлечь разработчика: добавление полей в регистры, участвующие в проведении документов; изменение объектов, включённых в планы обмена; доработка конфигураций со сложной системой прав; работа с большими таблицами, где реструктуризация занимает часы.

Также учитывайте лицензионные ограничения: для изменения конфигурации требуется, чтобы она не была закрыта от изменений поставщиком. Некоторые отраслевые решения поставляются в закрытом виде, и единственный доступный способ доработки — расширение.

Итог

Что важно запомнить

Поле в таблицу 1С добавляется через реквизит объекта в конфигураторе с последующим обновлением конфигурации базы данных (F7). Для типовых конфигураций используйте расширение или механизм дополнительных реквизитов. Перед изменениями делайте резервную копию, тщательно выбирайте тип данных и проверяйте результат в режиме предприятия.

Частые вопросы

Можно ли добавить поле в таблицу 1С без конфигуратора?

Да, если конфигурация типовая и в ней включён механизм «Дополнительные реквизиты и сведения». Поле создаётся в режиме предприятия через раздел администрирования. Ограничение: такие поля хранятся отдельно от основной таблицы, медленнее работают в отборах и неудобны в запросах.

Что произойдёт с данными при добавлении нового реквизита?

Существующие записи не пострадают: при реструктуризации платформа добавляет новую колонку, а в старых записях поле остаётся пустым (значение по умолчанию для типа). Опасна обратная операция — удаление реквизита или смена его типа на несовместимый: тогда данные в этом поле теряются.

Почему после добавления реквизита его не видно на форме?

Реквизит в данных и элемент на форме — разные вещи. Откройте форму объекта в конфигураторе и перетащите реквизит из панели реквизитов в дерево элементов формы. Также проверьте пользовательские настройки формы в режиме предприятия («Ещё → Изменить форму») — поле может быть скрыто настройками конкретного пользователя.

Чем расширение лучше прямого изменения конфигурации?

Расширение хранит доработки отдельно от типовой конфигурации, поэтому обновления поставщика устанавливаются штатно и не затирают ваши реквизиты. При прямом изменении конфигурации каждое обновление требует ручного сопоставления изменений, а при полной загрузке конфигурации поставщика доработки теряются.

Как добавить поле в табличную часть документа?

В конфигураторе раскройте документ, найдите ветку «Табличные части», выберите нужную (например, «Товары») и добавьте реквизит в неё. Затем откройте форму документа и добавьте колонку в таблицу формы. После обновления конфигурации базы данных (F7) поле станет доступно для заполнения в каждой строке документа.

Опасно ли обновлять конфигурацию базы данных на рабочей базе?

Сама операция безопасна при наличии резервной копии, но во время реструктуризации пользователи не могут работать с базой, а на больших таблицах процесс может занять значительное время. Выполняйте обновление в нерабочее время, предварительно проверив его на копии базы.