Разработка и Конфигурация · 9 мин
Как изменить предопределенный элемент в 1С
Как изменить предопределенный элемент в 1С: режимы изменения, работа в конфигураторе и кодом, типичные ошибки и проверка результата.
Предопределенные элементы — это записи справочников, планов счетов, планов видов характеристик и планов видов расчета, которые создаются разработчиком в конфигураторе и автоматически появляются в базе данных. Они нужны для того, чтобы код конфигурации мог ссылаться на конкретные элементы по имени, независимо от того, как их назовет пользователь.
Изменить предопределенный элемент можно двумя путями: через режим предприятия (если разработчик разрешил это в настройках) или через конфигуратор с правками самой конфигурации. Выбор способа зависит от того, что именно требуется: переименовать наименование, изменить реквизиты или поменять состав самих предопределенных элементов.
Главный риск при работе с предопределенными элементами — нарушение логики конфигурации. Код обращается к ним по внутреннему имени, заданному в конфигураторе, поэтому неаккуратное удаление или переименование способно вызвать ошибки в отчетах, проведении документов и обменах данными.
Что такое предопределенный элемент и чем он отличается от обычного
Предопределенный элемент создается разработчиком на уровне метаданных, а обычный элемент — пользователем в режиме «Предприятие». Визуально в списке предопределенные элементы часто помечены специальной пиктограммой, а у части из них заблокировано удаление.
Ключевое отличие — наличие у предопределенного элемента имени, заданного в конфигураторе. По этому имени к элементу обращаются из кода, например: Справочники.Валюты.Рубль или через метод НайтиПоИмени. Наименование при этом может быть любым и на логику работы не влияет.
Понимать эту разницу важно перед любыми изменениями: переименование наименования — безопасная операция, а изменение внутреннего имени или удаление элемента затрагивает код всей конфигурации.
Как определить, какой режим изменения установлен
У объектов метаданных есть свойство «Режим управления предопределенными данными» (в разных версиях платформы и конфигураций оно может называться по-разному или задаваться через свойство «Обновление предопределенных данных»). От него зависит, может ли пользователь редактировать элемент в режиме «Предприятие».
Чтобы проверить режим, откройте конфигуратор, найдите нужный объект (например, справочник) в дереве конфигурации, откройте его свойства и посмотрите значения свойств, связанных с предопределенными данными. Если редактирование пользователем запрещено, попытка изменить элемент в режиме «Предприятие» будет заблокирована.
Можно менять наименование и реквизиты без конфигуратора
Потребуется правка в конфигураторе или изменение режима
Найдите все обращения к элементу через поиск по конфигурации
Изменение предопределенного элемента в режиме «Предприятие»
Когда этот способ подходит
Если конфигурация разрешает редактирование, изменить элемент можно как обычную запись справочника. Откройте список, найдите нужный элемент, откройте его форму и отредактируйте наименование или реквизиты. Сохранение происходит стандартной кнопкой «Записать и закрыть».
Такой способ подходит для корректировки наименований, заполнения дополнительных реквизитов, изменения значений, не задействованных в коде. Например, можно переименовать предопределенную валюту или статью затрат — код продолжит работать, потому что обращается к элементу по внутреннему имени.
Ограничения способа
В режиме «Предприятие» нельзя изменить внутреннее имя предопределенного элемента, нельзя добавить новый предопределенный элемент и нельзя удалить существующий, если конфигурация этого не позволяет. Все структурные изменения выполняются только в конфигураторе.
Изменение предопределенного элемента через конфигуратор
Структурные правки выполняются в конфигураторе. Порядок действий одинаков для справочников, планов счетов, планов видов характеристик и планов видов расчета.
- 1Сделайте резервную копию информационной базы
- 2Откройте конфигуратор и найдите нужный объект в дереве конфигурации
- 3Откройте форму объекта и перейдите на вкладку «Предопределенные» или откройте список предопределенных элементов через свойства
- 4Измените имя, наименование или значения реквизитов нужного элемента
- 5Обновите конфигурацию базы данных (F7 или меню «Конфигурация — Обновить конфигурацию базы данных»)
- 6Проверьте работу функций, которые используют этот элемент
На вкладке предопределенных элементов для каждой записи задается имя (идентификатор для кода), наименование и значения реквизитов. Имя должно быть уникальным и соответствовать правилам именования идентификаторов встроенного языка: без пробелов, начиная с буквы.
После сохранения конфигурации платформа при обновлении синхронизирует данные: создаст новые предопределенные элементы в базе, обновит существующие или пометит на удаление те, что убраны из конфигурации. Если в базе уже есть ссылки на удаляемый элемент, обновление может пройти с предупреждениями — их нужно внимательно прочитать.
Программное изменение предопределенных элементов
Иногда требуется изменить данные элемента из кода — например, при первоначальном заполнении базы или в обработчике обновления. Для этого используется стандартная работа со ссылкой на предопределенный элемент.
ЭлементСсылка = Справочники.СтавкиНДС.НайтиПоНаименованию("20%");
Если Не ЭлементСсылка.Пустая() Тогда
ЭлементОбъект = ЭлементСсылка.ПолучитьОбъект();
ЭлементОбъект.Наименование = "НДС 20%";
ЭлементОбъект.Записать();
КонецЕсли;Обращение по имени из конфигуратора выполняется через свойство менеджера объекта, например Справочники.Валюты.Рубль — такой синтаксис доступен, если у элемента задано имя в предопределенных данных. Программное изменение подчиняется тем же ограничениям: если режим запрещает редактирование, запись вызовет ошибку.
Типичные ошибки и как их избежать
Для доработки типовых конфигураций предпочтительнее использовать расширения конфигурации вместо прямого изменения. Расширение позволяет добавлять свои предопределенные элементы и переопределять поведение, не затрагивая основную конфигурацию, что сохраняет простоту обновлений.
Как проверить результат после изменений
После обновления конфигурации базы данных откройте базу в режиме «Предприятие» и убедитесь, что элемент отображается с новыми данными. Затем проверьте функции, которые используют этот элемент: проведите документ, сформируйте отчет, выполните обмен, если они задействованы.
Как проверить результат
Отображается с новым наименованием и реквизитами
Элемент отсутствует или продублирован
Документы проводятся, отчеты формируются без ошибок
Ошибки вида «Предопределенный элемент не найден»
В документах ссылки открываются корректно
В полях отображаются битые ссылки (объект не найден)
Если после обновления появились дубли или ошибки, не пытайтесь исправлять их массовыми обработками вслепую. Сначала выясните причину: возможно, элемент был создан пользователем вручную с похожим наименованием, и система добавила предопределенный рядом с ним.
Часто задаваемые вопросы
Можно ли удалить предопределенный элемент?
Только через конфигуратор: нужно убрать элемент из списка предопределенных данных и обновить конфигурацию базы данных. Перед удалением проверьте поиском, не используется ли он в коде, и убедитесь, что на него нет ссылок в документах.
Почему поле предопределенного элемента недоступно для редактирования?
Значит, в свойствах объекта установлен режим, запрещающий пользователям изменять предопределенные данные. Редактирование возможно только через конфигуратор или после изменения этого режима разработчиком.
Что будет, если переименовать только наименование элемента?
Ничего критичного: код обращается к элементу по внутреннему имени, заданному в конфигураторе, а не по наименованию. Пользователи просто увидят новое название в списках и отчетах.
Можно ли добавить предопределенный элемент в типовую конфигурацию без снятия с поддержки?
Да, через расширение конфигурации. Расширения позволяют добавлять собственные предопределенные элементы к объектам типовой конфигурации, не изменяя саму конфигурацию поставщика.
Как найти все места в коде, где используется предопределенный элемент?
В конфигураторе используйте глобальный поиск (Ctrl+Shift+F) по имени элемента с областью поиска «Вся конфигурация». Также проверьте обращения через методы НайтиПоИмени и ПолучитьСсылку.
Что важно запомнить
Предопределенный элемент меняется либо в режиме «Предприятие» при разрешающих настройках, либо в конфигураторе на вкладке предопределенных данных. Внутреннее имя меняют только вместе с правкой кода, перед обновлением конфигурации базы данных делают резервную копию, а для типовых решений предпочтительны расширения.