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

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

Как добавить справочник в расширение 1С

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

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

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

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

Подготовка: создание расширения и проверка условий

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

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

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

Как заимствовать существующий справочник в расширение

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

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

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

Порядок заимствования справочника
  1. 1
    Откройте дерево основной конфигурации и найдите нужный справочник
  2. 2
    Щёлкните правой кнопкой и выберите «Добавить в расширение»
  3. 3
    Добавьте в заимствованный объект реквизиты или табличные части расширения
  4. 4
    Заимствуйте нужные формы и переопределите их элементы
  5. 5
    Заимствуйте модули при необходимости расширить логику
  6. 6
    Выполните проверку расширения и обновите конфигурацию базы данных

Как создать собственный справочник внутри расширения

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

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

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

Именуйте собственные объекты с префиксом расширения, например «Расш1_ВидыСертификации». Это страхует от коллизий имён при обновлении типовой конфигурации и сразу показывает в коде, что объект не типовой.
ПЗ
Практическое замечание

Настройка форм, команд и подсистем

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

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

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

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

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

Справочник виден в разделе
Норма

Команда открытия списка присутствует в панели навигации подсистемы

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

Объект есть в конфигураторе, но в интерфейсе пользователя его нет — проверьте включение в подсистему

Создание элемента
Норма

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

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

Ошибка при записи или пустая форма — проверьте права и обязательность реквизитов

Роли и права
Норма

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

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

Ошибка «Нарушение прав доступа» — добавьте роль расширения или расширьте типовую

Права доступа и публикация расширения

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

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

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

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

Ограничения расширений и альтернативные подходы

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

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

Сравнение вариантов

Заимствование справочника

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

Собственный справочник расширения

Подходит для новой сущности, которой нет в типовой. Требует настройки прав, подсистем и продуманной структуры до ввода данных.

Дополнительные реквизиты БСП

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

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

Можно ли добавить справочник в расширение без конфигуратора?

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

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

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

Почему пользователи не видят новый справочник после публикации?

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

Можно ли в расширении изменить длину наименования типового справочника?

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

Как перенести расширение со справочником в другую базу?

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

Конфликтует ли собственный справочник расширения с обновлением типовой конфигурации?

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

Итог

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

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