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

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

Как удалить стандартные реквизиты в справочнике 1С

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

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

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

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

Какие реквизиты считаются стандартными и почему их нельзя удалить

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

К стандартным относятся: Ссылка, Код, Наименование, ПометкаУдаления, Предопределенный, а также условно включаемые — Родитель (при иерархии), Владелец (при подчинении), ЭтоГруппа (для иерархических справочников групп и элементов). Платформа использует эти поля для уникальной идентификации элементов, построения списков и обеспечения ссылочной целостности, поэтому их удаление заблокировано на уровне платформы.

Единственное, что доступно разработчику, — изменение свойств стандартных реквизитов: длины кода и наименования, типа кода (число или строка), проверки уникальности, автонумерации, признака использования. Через эти свойства и достигается эффект «удаления» — поле фактически перестаёт использоваться.

Отключение стандартных реквизитов через свойства справочника

Часть стандартных механизмов отключается настройкой самого справочника. Это ближайший аналог «удаления» стандартных реквизитов, доступный в типовом конфигураторе.

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

Отключение кода справочника

Если код не нужен, установите в свойствах справочника «Длина кода» = 0. Поле Код перестанет отображаться в формах и списках, автонумерация прекратится. Учтите: если в коде модулей есть обращения к реквизиту Код этого справочника, они продолжат работать (поле физически существует), но будут возвращать пустое значение.

Отключение иерархии и подчинения

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

Как скрыть стандартные реквизиты в формах и списках

Если менять структуру конфигурации нельзя (типовая конфигурация на поддержке, нет доступа к конфигуратору), задача решается на уровне интерфейса. В управляемом приложении пользователь может скрыть ненужные колонки списка: кнопка «Ещё» в списке справочника — «Изменить форму», затем снять флажки с ненужных полей, например «Код».

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

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

Способы «убрать» стандартный реквизит

Изменение свойств в конфигураторе

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

Настройка формы в конфигураторе

Снятие видимости полей в форме списка и форме элемента. Безопасно для данных, действует для всех пользователей, но поле остаётся в структуре.

Настройка формы пользователем

«Ещё — Изменить форму» в режиме предприятия. Не требует прав разработчика, но действует только для конкретного пользователя и конкретного списка.

Программное управление видимостью

Установка Видимость = Ложь в коде формы по условию. Гибко, но требует доработки и сопровождения.

Очистка значений реквизита у элементов справочника

Отдельная частая задача — не удалить реквизит, а очистить его значения у всех элементов. Для стандартных реквизитов это актуально для Родителя (распределить все элементы в корень) и Владельца. В типовых конфигурациях есть обработка «Групповое изменение реквизитов» (раздел «Администрирование» — «Обслуживание»), которая позволяет массово установить пустое значение.

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

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ Родитель <> &Пустой";

Запрос.УстановитьПараметр("Пустой", Справочники.Номенклатура.ПустаяСсылка());

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Объект = Выборка.Ссылка.ПолучитьОбъект();

Объект.Родитель = Справочники.Номенклатура.ПустаяСсылка();

Объект.Записать();

КонецЦикла;

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

Ограничения и типичные риски

Главное ограничение: реквизиты Ссылка, Наименование, ПометкаУдаления не отключаются никак — ни через свойства, ни программно. Наименование можно лишь сократить по длине или переименовать синоним (например, в «ФИО» для справочника сотрудников), но поле останется обязательным для заполнения, если не включить «Автозаполнение» или не задать иное поведение в коде.

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

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

Проверка результата после изменений

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

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

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

Открытие списка справочника
Норма

Список открывается, отключённые поля не отображаются

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

Ошибка «Поле не найдено» или пустые колонки

Создание и запись нового элемента
Норма

Элемент записывается без сообщений об обязательных полях

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

Ошибка записи, требование заполнить отключённое поле

Отчёты и документы по справочнику
Норма

Отчёты формируются, отборы работают

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

Ошибки компоновки или обращения к реквизиту

Обмены данными
Норма

Синхронизация проходит без ошибок

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

Ошибки выгрузки, предупреждения о соответствии реквизитов

Если после изменений появились ошибки, самый быстрый откат — восстановление из резервной копии, сделанной до изменений. Поэтому правило «сначала копия, потом эксперимент» здесь не формальность, а единственная гарантия обратимости.

Итог

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

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

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

Можно ли удалить реквизит «Наименование» у справочника?

Нет, Наименование — обязательный стандартный реквизит, платформа не даёт его отключить. Можно уменьшить его длину, изменить синоним (например, на «ФИО») или заполнять программно в обработчике «ПриЗаписи», если вводить его вручную не требуется.

Что произойдёт с данными, если установить длину кода равной 0?

Значения кодов существующих элементов будут очищены при реструктуризации базы. Автонумерация прекратится, поле Код исчезнет из форм. Восстановить прежние коды можно только из резервной копии.

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

В режиме предприятия откройте список справочника, нажмите «Ещё» — «Изменить форму» и снимите флажок с поля «Код». Учтите, что настройка применится только для вашего пользователя; для всех пользователей видимость настраивается в конфигураторе.

Можно ли удалить стандартный реквизит «Владелец» у подчинённого справочника?

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

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

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

Ломается ли обмен данными после отключения стандартного реквизита?

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