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

Администрирование · 10 мин

Что будет, если удалить предопределённый элемент в 1С:Предприятие

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

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

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

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

Что такое предопределённый элемент и почему он защищён

Предопределённый элемент создаётся в конфигураторе у объектов с включённым свойством «Предопределённые данные». У него есть имя (например, «ОсновнаяОрганизация» или счёт «КассаОрганизации»), по которому код обращается через конструкции вида Справочники.Валюты.РоссийскийРубль или ПланыСчетов.Хозрасчетный.КассаОрганизации. Это жёсткая связь между данными и логикой программы.

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

Что произойдёт при штатной попытке удаления

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

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

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

Что будет, если защиту обойти и удалить элемент

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

Типичные сценарии после фактического удаления:

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

Ситуация наоборот: дубли предопределённых элементов

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

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

Ошибка «элемент отсутствует в данных»Элемент удалён физически

Проверить наличие элемента в списке справочника или плана счетов и журнал регистрации на факт удаления

Пустые ссылки в документахКод получает пустую ссылку вместо элемента

Открыть проблемный документ и проверить заполнение реквизитов, связанных с элементом

Дубли в спискеДва элемента с одним предопределённым именем

Сравнить даты создания и источники: дубль обычно пришёл из обмена или загрузки

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

Первый шаг при любой проблеме с предопределёнными данными — сделать резервную копию базы (выгрузку в dt для файловой базы или средствами СУБД для клиент-серверной). Без копии любые манипуляции превращают исправимую ситуацию в потерю данных.

Далее определите масштаб: удалён ли элемент полностью, помечен на удаление или продублирован. Журнал регистрации покажет, кто и когда выполнял операцию. Если элемент просто помечен на удаление — снимите пометку, этого достаточно.

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

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

Как отличить предопределённый элемент от обычного

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

Для проверки программно используется метод ПолучитьИмяПредопределенного для менеджера объекта или чтение реквизита «ИмяПредопределенныхДанных» у объекта. Значение «Непредопределенный» означает обычный пользовательский элемент, который можно удалять стандартно.

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

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

Поле «Имя предопределённых данных» у элемента
Норма

Заполнено именем из конфигуратора

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

Пусто у элемента, который должен быть предопределённым

Открытие отчётов и форм, использующих элемент
Норма

Формы открываются, данные заполнены

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

Ошибка «элемент отсутствует в данных» или пустые строки

Проводки документов по связанному счёту
Норма

Счета заполнены корректно

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

Пустые субконто или отсутствующие счета в проводках

Частые ошибки и как их избежать

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

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

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

Типичные ошибки
01
Групповая очистка справочника без фильтра предопределённых данных — пометка связанных объектов и нарушение целостности
02
Удаление «не того» дубля: остаётся элемент без связи с конфигуратором, а предопределённый теряется
03
Обновление конфигурации до восстановления копии — автосоздание элементов с новыми ссылками
04
Работа без резервной копии — невозможность откатить удаление

FAQ

Почему команда удаления недоступна для элемента справочника?

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

Можно ли переименовать предопределённый элемент?

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

Что делать, если после обмена появились дубли предопределённых элементов?

Определите, какой из элементов связан с предопределёнными данными (поле «Имя предопределённых данных»), перенесите ссылки с дубля на правильный элемент через поиск и замену значений, затем удалите дубль. Перед операцией сделайте копию базы.

Восстановится ли элемент сам при обновлении конфигурации?

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

Как узнать, где используется предопределённый элемент?

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

Можно ли вообще отключить предопределённые элементы?

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

Итог

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

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