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

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

Как изменить предопределенный элемент в 1С

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

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

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

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

Что такое предопределенный элемент и чем он отличается от обычного

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

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

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

Как определить, какой режим изменения установлен

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

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

Элемент доступен для редактирования в 1С:ПредприятиеРежим разрешает изменения

Можно менять наименование и реквизиты без конфигуратора

Поля элемента заблокированыИзменения запрещены конфигурацией

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

Элемент нужен коду по имениИмя менять нельзя без правки кода

Найдите все обращения к элементу через поиск по конфигурации

Изменение предопределенного элемента в режиме «Предприятие»

Когда этот способ подходит

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

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

Ограничения способа

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

Изменение предопределенного элемента через конфигуратор

Структурные правки выполняются в конфигураторе. Порядок действий одинаков для справочников, планов счетов, планов видов характеристик и планов видов расчета.

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

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

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

Программное изменение предопределенных элементов

Иногда требуется изменить данные элемента из кода — например, при первоначальном заполнении базы или в обработчике обновления. Для этого используется стандартная работа со ссылкой на предопределенный элемент.

bsl
ЭлементСсылка = Справочники.СтавкиНДС.НайтиПоНаименованию("20%");
Если Не ЭлементСсылка.Пустая() Тогда
    ЭлементОбъект = ЭлементСсылка.ПолучитьОбъект();
    ЭлементОбъект.Наименование = "НДС 20%";
    ЭлементОбъект.Записать();
КонецЕсли;

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

Типичные ошибки и как их избежать

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

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

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

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

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

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

Элемент в списке
Норма

Отображается с новым наименованием и реквизитами

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

Элемент отсутствует или продублирован

Работа кода
Норма

Документы проводятся, отчеты формируются без ошибок

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

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

Ссылки на элемент
Норма

В документах ссылки открываются корректно

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

В полях отображаются битые ссылки (объект не найден)

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

Часто задаваемые вопросы

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

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

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

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

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

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

Можно ли добавить предопределенный элемент в типовую конфигурацию без снятия с поддержки?

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

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

В конфигураторе используйте глобальный поиск (Ctrl+Shift+F) по имени элемента с областью поиска «Вся конфигурация». Также проверьте обращения через методы НайтиПоИмени и ПолучитьСсылку.

Итог

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

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