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

Создание собственного справочника Пользователи требует четкого понимания архитектурных особенностей метаданных и разграничения понятий "учетная запись" и "объект базы данных". Это критически важно для корректной работы механизма RIB (Right Information Base) и предотвращения дублирования сущностей. В данной статье мы детально разберем процесс проектирования объекта, настройки его структуры и интеграции с интерфейсом.

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

Проектирование структуры справочника в Конфигураторе

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

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

⚠️ Внимание: Не создавайте справочник с именем "Пользователи", если в вашей конфигурации уже используется стандартная подсистема с таким же именем объекта. Это вызовет конфликт имен при компиляции. Используйте префиксы, например, СпрПользователи или НашиПользователи.

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

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

💡

Используйте тип данных "Хранилище значения" для полей, где нужно хранить сложные структуры данных, например, индивидуальные настройки интерфейса для конкретного пользователя.

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

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

Для поля "Логин" или "Имя пользователя" критически важно установить галочку "Уникальность". Это предотвратит создание дублей, которые могут привести к ошибкам при авторизации или формировании отчетов. Платформа 1С:Предприятие автоматически проверит уникальность значения при записи элемента справочника.

Наименование реквизита Тип данных Длина/Точность Обязательное заполнение
ФИО Строка 150 Да
Логин Строка 50 Да (Уникально)
Email Строка 100 Нет
Дата создания Дата Дата Да

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

Также стоит рассмотреть возможность использования предопределенных элементов. Если в системе есть роли, которые должны существовать всегда (например, "Главный бухгалтер" или "Администратор"), их можно создать прямо в конфигураторе. Это гарантирует их наличие даже после очистки базы данных от пользовательских записей.

☑️ Проверка реквизитов справочника

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

Реализация форм списка и элемента

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

Разместите элементы управления логически сгруппированными. Личные данные (ФИО, контакты) лучше вынести в одну группу, а служебную информацию (права, настройки) — в другую. Используйте декорации "Группа" с оформлением "Обычная группа" или "Страницы" для разделения вкладок, если полей много.

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

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

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

Интеграция со стандартной подсистемой прав доступа

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

При создании нового элемента вашего справочника можно автоматически создавать соответствующего пользователя в системе. Это реализуется через модуль объекта справочника в процедуре ПриЗаписи. Однако будьте осторожны: создание пользователей требует прав администратора и может быть заблокировано политикой безопасности сервера.


Процедура ПриЗаписи(Отказ, РежимЗаписи)

Если ЭтоНовый() И Не ПустаяСтрока(Объект.Логин) Тогда

// Логика создания пользователя в стандартном списке

// Требует аккуратной обработки исключений

КонецЕсли;

КонецПроцедуры

Также важно продумать механизм деактивации. Если вы помечаете элемент справочника как "Неактивный", соответствующий пользователь 1С должен быть заблокирован. Это можно реализовать с помощью флага ЗапретАвтоблокировкиНеактивных в настройках пользователя, управляя им программно.

Тонкости работы с правами

При программном создании пользователей через COM-соединение или внутренний код убедитесь, что у запускающего профиля есть право "Администрирование". В файловом варианте базы это может потребовать перезапуска 1С в режиме предприятия от имени администратора ОС.

Настройка прав доступа к самому справочнику

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

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

  • 🔒 Убедитесь, что роль не имеет права на удаление предопределенных элементов, если они критичны для работы системы.
  • 👁️ Настройте ограничения доступа на уровне записей (RLS), если пользователи должны видеть только данные своего подразделения.
  • 📝 Проверьте права на печатные формы и отчеты, построенные по этому справочнику.

Используйте механизм Профили групп доступа для удобного назначения прав большим группам сотрудников. Это упростит администрирование при масштабировании системы и добавлении новых сотрудников.

📊 Как вы планируете использовать справочник пользователей?
Только для отчетов
Для авторизации в системе
Для рассылки уведомлений
Для интеграции с CRM

Обработка данных и типичные ошибки

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

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

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

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

💡

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

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

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

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

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

Самый надежный способ — использование обработки выгрузки и загрузки данных в формате XML или использование механизма обмена через план обмена. Простое копирование элементов через буфер обмена возможно только при идентичной структуре метаданных в обеих базах.

Что делать, если справочник тормозит при открытии списка?

Проверьте наличие индексов по полям, используемым в отборах и сортировке. Если в справочнике много записей (более 10-20 тысяч), рассмотрите возможность использования иерархии или разделения данных на архивные и текущие. Также проверьте сложность запросов в форме списка.

Обязательно ли создавать предопределенные элементы?

Не обязательно, но рекомендуется для системных пользователей (например, "Системный администратор"), чтобы исключить риск их случайного удаления обычными пользователями и гарантировать их наличие после обновления базы.