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

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

Как добавить поля в 1С: способы для пользователя и разработчика

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

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

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

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

Как выбрать способ добавления поля

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

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

Сравнение способов

Дополнительные реквизиты и сведения

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

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

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

Доработка в конфигураторе

Полная свобода изменений. Ограничение: частичное или полное снятие с поддержки, сложные обновления, нужен опытный разработчик.

Добавление поля через дополнительные реквизиты

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

Откройте раздел «Администрирование» → «Общие настройки» и установите флажок «Дополнительные реквизиты и сведения», если он ещё не установлен. После этого в том же разделе появятся ссылки «Дополнительные реквизиты» и «Дополнительные сведения».

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

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

Для типа «Дополнительное значение» заранее продумайте список вариантов: пользователи будут выбирать из него, и беспорядочное пополнение списка разными написаниями одного и того же («ООО», «ооо», «Общество с ограниченной ответственностью») испортит аналитику. Если значений много и они структурированы, лучше использовать тип «Ссылка на справочник».

Вывод дополнительного поля в списки, отчёты и печатные формы

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

В отчётах на СКД дополнительные реквизиты обычно доступны в настройках: откройте отчёт, перейдите в «Настройки → Расширенные» и найдите поле среди доступных в разделе дополнительных реквизитов объекта. Если поля там нет — отчёт построен на произвольном запросе, и вывести поле сможет только разработчик, доработав схему компоновки.

Для печатных форм, построенных на офисных шаблонах (макеты Word и OpenOffice), дополнительные реквизиты доступны в дереве полей шаблона: откройте «Администрирование → Печатные формы, отчеты и обработки → Шаблоны печатных форм», отредактируйте макет и перетащите поле. Для жёстко запрограммированных табличных макетов потребуется доработка модуля печати.

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

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

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

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

Добавление реквизита в конфигураторе напрямую

Прямая доработка оправдана, когда расширение не справляется: нужно изменить типовой модуль проведения, добавить измерение в регистр, изменить состав критерия отбора или роли. Для этого конфигурацию придётся частично снять с поддержки: «Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения».

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

bsl
// Пример: заполнение добавленного реквизита при записи документа
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если Не ЗначениеЗаполнено(Доп_ОтветственныйМенеджер) Тогда
        Доп_ОтветственныйМенеджер = Пользователи.ТекущийПользователь();
    КонецЕсли;
КонецПроцедуры

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

Добавление полей в табличные части и регистры

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

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

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

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

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

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

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

Поле в карточке объекта
Норма

Поле отображается, значение сохраняется после записи и переоткрытия

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

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

Отбор в списке
Норма

Поле доступно в настройке отбора, фильтрация работает

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

Поля нет в списке отборов — отчёт/список требует доработки запроса

Права пользователей
Норма

Поле видно и редактируется под целевой ролью

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

Поле видно только администратору — нужно настроить права на реквизит или расширение

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

Расширение остаётся подключённым и работоспособным после обновления

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

Расширение отключено с ошибкой совместимости — требуется адаптация разработчиком

Если поле, добавленное через расширение, не видно пользователям, проверьте три вещи: подключено ли расширение в режиме предприятия, добавлен ли элемент на форму именно в расширении (а не только реквизит в объект) и есть ли у роли пользователя права на добавленные объекты расширения. Для безопасного режима расширений также проверьте, не блокирует ли профиль безопасности его выполнение.

Итог

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

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

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

Можно ли добавить поле в 1С без прав администратора?

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

Пропадут ли дополнительные реквизиты при обновлении конфигурации?

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

Как добавить поле сразу для всех документов одного вида?

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

Почему дополнительный реквизит не виден в отчёте?

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

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

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

Можно ли удалить добавленное поле вместе с данными?

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