Работа с конфигурациями 1С часто требует тонкой настройки справочников и планов видов характеристик. Разработчики сталкиваются с необходимостью изменить свойства уже созданных объектов метаданных. Одной из самых частых задач является снятие признака предопределенного элемента. Этот флаг блокирует удаление объекта и накладывает ряд ограничений на его использование в коде.

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

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

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

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

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

⚠️ Внимание: Прямое редактирование файлов конфигурации (.cf) или базы данных без понимания структуры может привести к полной неработоспособности системы. Всегда делайте резервную копию перед экспериментами.

Подготовка окружения и проверка прав доступа

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

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

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

📊 Какой режим работы вы используете чаще всего?
Конфигуратор
Предприятие
Тонкий клиент
Веб-клиент
Сервер 1С

Способ 1: Использование режима предприятия (для новых элементов)

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

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

После снятия признака сохраните элемент. Система может потребовать перезагрузку метаданных. Выполните команду Администрирование → Обновить описание конфигурации. Это действие принудительно перечитает структуру метаданных из базы данных.

💡

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

Способ 2: Редактирование через выгрузку в XML

Универсальный метод, работающий в 99% случаев, независимо от версии платформы. Он заключается в выгрузке конфигурации или отдельного объекта в файл формата XML, ручном редактировании и обратной загрузке.

Выполните следующие шаги для корректного проведения операции:

  • 📂 Зайдите в конфигуратор и выберите меню Конфигурация → Сохранить конфигурацию в файл....
  • 📝 Откройте сохраненный файл в любом текстовом редакторе (Notepad++, VS Code).
  • 🔍 Найдите блок, описывающий ваш справочник и конкретный предопределенный элемент.
  • ✂️ Удалите тег <Предопределенный>Истина</Предопределенный> или замените значение на Ложь.
  • 💾 Сохраните файл и загрузите его обратно через меню Конфигурация → Загрузить конфигурацию из файла....

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

Этап Действие Риск ошибки
Выгрузка Сохранение в XML Низкий
Редактирование Поиск тега Предопределенный Средний (синтаксис)
Загрузка Импорт в базу Высокий (конфликты)
Обновление БД Применение изменений Средний

Способ 3: Программное удаление через консоль команд

Для опытных разработчиков существует возможность использования консоли команд 1С. Этот метод позволяет выполнить служебные процедуры, недоступные через графический интерфейс. Он требует знания внутреннего API платформы.

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

ЗагрузитьИзФайла("C:\Temp\Config.xml", , , РежимЗагрузкиКонфигурации.Обновление);

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

⚠️ Внимание: Интерфейс консоли команд и доступные функции могут меняться в новых релизах платформы 1С. Всегда сверяйтесь с синтаксис-помощником вашей версии.

☑️ Чек-лист перед изменением метаданных

Выполнено: 0 / 4

Способ 4: Обработка «Выгрузка и загрузка данных XML»

Стандартная обработка Выгрузка и загрузка данных XML, входящая в поставку большинства конфигураций, имеет скрытые возможности. Она позволяет выгружать не только данные, но и структуру объектов с определенными флагами.

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

После выгрузки откройте полученный XML-файл. Найдите атрибут IsPredefined или аналогичный тег. Измените его значение на false. Затем выполните загрузку данных обратно с опцией «Обновлять существующие элементы».

Что делать, если загрузка блокируется ссылками?

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

Анализ последствий и решение проблем со ссылками

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

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

Необходимо провести ревизию кода. Замените прямые обращения к предопределенным элементам на поиск по наименованию или коду. Например, используйте функцию НайтиПоНаименованию() вместо прямого доступа к свойству.

💡

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

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

Можно ли снять признак предопределенного элемента в облачной версии 1С?

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

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

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

Влияет ли снятие признака на производительность базы данных?

Нет, само по себе изменение флага не влияет на производительность. Однако, если вы заменяете прямые обращения к предопределенным данным на поисковые запросы, это может незначительно увеличить нагрузку на СУБД при частом вызове кода. Рекомендуется кэшировать результаты поиска.

Как узнать UUID предопределенного элемента?

UUID можно посмотреть в свойствах элемента в конфигураторе или выгрузив справочник в XML. Также можно использовать запрос к системной таблице _UserRRef или аналогичной таблице ссылок в конкретной СУБД, зная наименование элемента.