Администратор хранилища конфигурации: права пользователей и захват ролей
Содержание
Права в хранилище 1С раздаёт только пользователь с флагом «Административные функции». Он открывает в Конфигураторе Конфигурация → Хранилище конфигурации → Администрирование, выбирает пользователя и отмечает нужные права. А чтобы захватить все роли сразу, достаточно в дереве метаданных выделить ветку Общие → Роли и захватить её рекурсивно.
Здесь две разные задачи с похожими словами. Первая — управлять пользователями самого хранилища: кто читает, кто захватывает объекты, кто меняет версии. Вторая — захватить объекты метаданных «Роль», чтобы править права в конфигурации. Ниже обе. Отдельно — что делать, если пароль администратора хранилища потерян, а других администраторов нет.
Как устроены права в хранилище конфигурации
Пользователи хранилища живут внутри самого хранилища. С пользователями информационной базы они никак не связаны. Можно быть администратором базы и не иметь доступа к хранилищу. И наоборот.
У пользователя хранилища три флага прав:
- 🔑 Административные функции — управление пользователями, отмена чужих захватов, обслуживание хранилища.
- 🔒 Захват объектов — захват и помещение изменений.
- 🏷️ Изменение версий — правка комментариев и меток у сохранённых версий.
Без единого флага пользователь только читает. Он может подключиться, получить конфигурацию, посмотреть историю и сравнить версии. Захватить объект он не сможет.
| Задача сотрудника | Какие флаги ставить |
|---|---|
| Тестировщик, аналитик: смотреть историю, получать конфигурацию | ни одного |
| Разработчик | Захват объектов |
| Ведущий, который ставит метки релизов | Захват объектов + Изменение версий |
| Администратор хранилища | все три |
Заведите минимум двух администраторов хранилища. Один — рабочая учётная запись ведущего разработчика, второй — служебная, пароль которой хранится в менеджере паролей отдела. Это закрывает почти все аварийные ситуации из раздела про пароль.
Роли конфигурации к правам хранилища отношения не имеют. Роль «Полные права» в базе не даёт ничего в хранилище. Поэтому вопрос «как захватить все роли» обычно означает одно из двух: получить полный набор прав в хранилище или захватить ветку «Роли» для редактирования.
Права администратора хранилища через Конфигуратор
Первого администратора создаёт сама платформа. Тот, кто выполнил Конфигурация → Хранилище конфигурации → Создать хранилище, задаёт имя и пароль. Эта учётная запись сразу получает все права.
Добавить пользователя и выдать права
- Откройте Конфигуратор базы, которая подключена к хранилищу, или любой базы под администратором хранилища.
- Выберите
Конфигурация → Хранилище конфигурации → Администрирование. - Платформа спросит адрес хранилища, имя и пароль. Указывайте учётную запись с флагом «Административные функции».
- В окне администрирования нажмите кнопку добавления пользователя.
- Введите имя, пароль и отметьте флаги прав.
- Сохраните. Изменения действуют сразу, перезапуск сервера хранилища не нужен.
Чтобы поднять права существующему сотруднику, откройте его свойства двойным щелчком и добавьте флаги. Сотрудник увидит новые права после переподключения к хранилищу.
Порядок для нового разработчика
Когда в команду приходит человек, удобно делать одно и то же в одном порядке:
- Завести учётную запись в хранилище с флагом «Захват объектов». Имя — как в корпоративном каталоге, например
Ivanov.P. Так в истории версий сразу понятно, чьи изменения. - Передать пароль лично или через менеджер паролей, не в общем чате.
- Дать ему копию рабочей базы разработки и подключить её к хранилищу под его учётной записью.
- Через неделю проверить в истории хранилища, что комментарии к помещениям осмысленные.
Права администратора новичку не нужны. Их дают тому, кто реально отвечает за хранилище: сборку релизов, метки версий, отмену зависших захватов.
Удалённые пользователи
Удаление в хранилище мягкое. Учётная запись скрывается, но остаётся в истории версий: по ней видно, кто и что помещал. В окне администрирования есть флаг показа удалённых. Включите его, выделите запись и восстановите её. Права восстановленного пользователя придётся проверить заново.
Отмена чужого захвата
Это самая частая причина, по которой нужен администратор. Разработчик в отпуске, а у него захвачен модуль или вся ветка ролей.
- Откройте
Конфигурация → Хранилище конфигурации → Открыть хранилище. - Найдите объект: в колонке состояния виден пользователь, который его захватил.
- Выделите объект и выполните отмену захвата.
Изменения того разработчика, которые он ещё не поместил, в хранилище не попадут. Они останутся только в его рабочей базе. Перед отменой выясните, не лежит ли там неделя работы.
Как захватить все роли конфигурации разом
Теперь вторая задача. Нужно добавить права на новый справочник во все роли, или переделать набор ролей после аудита. Захватывать 60 ролей по одной долго.
- Подключите базу к хранилищу и убедитесь, что у вас есть флаг «Захват объектов».
- В дереве конфигурации раскройте
Общиеи выделите группуРоли. - Вызовите контекстное меню и выберите захват в хранилище.
- В окне захвата включите рекурсивный режим. Тогда захватятся все роли внутри группы.
- Оставьте включённым получение захватываемых объектов из хранилища. Так вы начнёте править актуальную версию, а не локальную.
- Подтвердите. Роли, уже захваченные коллегами, платформа покажет и пропустит.
Когда нужен ещё и корень конфигурации
Захвата ролей хватает, чтобы менять права на существующие объекты. Но если вы добавляете новую роль или удаляете старую, меняется состав конфигурации. Для этого захватывают корневой объект «Конфигурация» — без рекурсии, только его самого.
С новым объектом метаданных то же самое. Создали справочник — захватите корень, иначе поместить справочник не получится.
Поместить роли обратно
После правки выделите ту же группу Роли и поместите изменения в хранилище. В окне помещения:
- ✍️ напишите комментарий: что поменяли и зачем, например «Права на справочник Проекты для ролей бухгалтера»;
- 🔓 решите, оставлять ли объекты захваченными. Для одной задачи снимайте захват: коллеги тоже правят роли;
- 👀 пролистайте список — в нём не должно быть объектов, которые вы трогать не собирались.
Не держите ветку «Роли» захваченной неделями. Это самый «общий» кусок конфигурации: почти любая доработка требует прав в ролях. Пока роли у вас, остальная команда стоит.
Консоль кластера и сервер хранилища: чего там нет
Многие ищут права хранилища в консоли «Администрирование серверов 1С Предприятия». Их там нет. Консоль кластера управляет рабочими серверами, базами, сеансами и блокировками. Пользователей хранилища она не видит.
Сетевое хранилище обслуживает отдельная служба — сервер хранилища crserver. По умолчанию она слушает порт 1542. Адрес такого хранилища выглядит как tcp://srv-1c/ERP_dev или tcp://srv-1c:1542/ERP_dev.
На стороне сервера хранилища администратор отвечает за:
- 🖥️ работу службы и её автозапуск;
- 📁 права учётной записи службы на каталог с хранилищами;
- 💾 резервное копирование каталога;
- 🌐 доступность порта для разработчиков.
Пользователей, пароли и флаги прав при этом всё равно настраивают в Конфигураторе или пакетным режимом.
Остановка службы crserver обрывает работу всех, кто подключён к хранилищу: захват и помещение прервутся. Останавливайте её вечером или после предупреждения команды.
Файловое хранилище работает без службы: это каталог с файлом 1cv8ddb.1CD и вложенными данными. Права пользователей те же, а вот защищать каталог приходится правами Windows. Любой, кто может скопировать каталог, получает копию всей истории разработки.
Если пароль администратора хранилища потерян
Штатной кнопки «сбросить пароль» у хранилища нет. Варианты по убыванию безопасности.
Способ 1. Другой администратор
Если в хранилище есть ещё одна учётная запись с административными функциями, она меняет пароль первой. Это пять минут работы.
Способ 2. Резервная копия хранилища
Если пароль меняли недавно, восстановите каталог хранилища из копии, где пароль был известен. Версии, помещённые после этой копии, пропадут. Переподключите рабочие базы.
Способ 3. Новое хранилище из актуальной конфигурации
Получите из хранилища последнюю версию под любой учётной записью с чтением. Создайте из неё новое хранилище: вы станете его администратором. Историю старого хранилища придётся держать рядом в режиме только для чтения.
Способ 4. Правка служебных таблиц файла
Хранилище хранит данные в файловой базе формата 1CD. Это не SQL: подключиться к нему из SQL Server или PostgreSQL нельзя. Сторонние утилиты для просмотра файлов 1CD показывают таблицу пользователей, и её поля можно отредактировать.
Это неподдерживаемый способ. Если решились:
- Остановите службу
crserverили убедитесь, что к файловому хранилищу никто не подключён. - Скопируйте весь каталог хранилища целиком.
- Правьте только копию.
- Проверьте подключение к копии, получение конфигурации и историю.
- Только после этого подменяйте рабочий каталог.
Ошибка в служебной таблице может сделать хранилище нечитаемым целиком, вместе с историей. Поэтому способы 1–3 всегда предпочтительнее.
Пакетное управление пользователями и захватами
Когда в команду пришли пять человек или нужно завести одинаковых пользователей в трёх хранилищах, окно администрирования утомляет. Конфигуратор умеет это делать из командной строки.
Добавить пользователя хранилища
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER ^
/F"C:\Bases\Dev" /N"Admin" /P"base_pwd" ^
/ConfigurationRepositoryF "tcp://srv-1c/ERP_dev" ^
/ConfigurationRepositoryN "RepoAdmin" ^
/ConfigurationRepositoryP "repo_pwd" ^
/ConfigurationRepositoryAddUser -User "Ivanov" -Pwd "Start123" -Rights LockObjects ^
/DisableStartupDialogs /Out "C:\Logs\repo_users.log"
Путь к 1cv8.exe замените на свою версию платформы. Значения параметра -Rights:
| Значение | Что получает пользователь |
|---|---|
ReadOnly | только чтение |
LockObjects | захват объектов |
ManageConfigurationVersions | захват и изменение версий |
Administration | все права, включая административные |
Ключ -RestoreDeletedUser восстанавливает удалённого пользователя с тем же именем вместо создания нового.
Скопировать пользователей из другого хранилища
Команда /ConfigurationRepositoryCopyUsers переносит список пользователей с правами из одного хранилища в другое. Удобно, когда под новый проект создают хранилище с той же командой. Параметры источника и формат смотрите в справке Конфигуратора по пакетному режиму, раздел про хранилище.
Захватить объекты по списку
Команда /ConfigurationRepositoryLock захватывает объекты в пакетном режиме, а /ConfigurationRepositoryUnLock снимает захват. Список объектов передают отдельным файлом через -Objects. Это пригодится в сборочных скриптах: например, ночью захватить ветку ролей под служебной учётной записью, применить сгенерированные права и поместить.
Пароли в bat-файле — слабое место. Храните их в переменных окружения сервера сборки или в хранилище секретов CI, а в скрипте подставляйте как %REPO_PWD%. Файл /Out проверяйте после каждого запуска: при ошибке Конфигуратор пишет причину туда, а код возврата может не сказать многого.
Для команд, которые уже ведут разработку в Git, есть сторонние инструменты на OneScript. Они выгружают историю хранилища и автоматизируют рутину. Но управление пользователями всё равно идёт через те же ключи Конфигуратора.
Ошибки при захвате и правах
Ниже то, что встречается на практике, когда права настроены не так.