При администрировании серверов 1С:Предприятие часто возникает неприятная ситуация: консоль администрирования (утилита «Администрирование серверов 1С Предприятия») внезапно начинает требовать имя пользователя и пароль администратора кластера, хотя ранее они не задавались, либо актуальные учетные данные были безвозвратно утеряны. Без этих данных невозможно добавить новую базу, удалить зависший сеанс или изменить параметры кластера. Для быстрого открытия и переключения оснастки под нужную версию платформы можно использовать утилиту для регистрации и запуска консоли кластера серверов.
В этой статье мы подробно и по шагам разберем, как восстановить доступ к консоли администрирования серверов 1С путем ручного сброса списка администраторов. Мы проанализируем внутреннее устройство конфигурационных файлов 1С, выясним причину возникновения такой блокировки и рассмотрим безопасный алгоритм решения проблемы без потери списка подключенных баз данных.
Информация обо всех настройках кластера, включая список зарегистрированных информационных баз и учетные записи администраторов, хранится в специальном текстовом файле конфигурации. В современных версиях платформы 1С:Предприятие 8.3 этот файл называется 1CV8Clst.lst. Он использует собственный внутренний формат сериализации 1С, отдаленно напоминающий JSON или вложенные массивы, где все данные структурированы с помощью фигурных скобок { } и разделены запятыми.
Иногда из-за некорректного завершения работы службы сервера, аппаратных сбоев или ошибок при сохранении настроек структура файла повреждается. В результате в блоке администраторов может возникнуть аномальная запись вида:
{1,
{"","","","2jmj7l5rSw0yVb/vlWAYkK/YBwk=","",1}
}
Проанализируем эту запись подробнее. Цифра 1 в начале указывает серверу, что в системе зарегистрирован один администратор. Однако в последующих фигурных скобках имя пользователя передается как пустое значение "", в то время как поле хеша пароля содержит строку "2jmj7l5rSw0yVb/vlWAYkK/YBwk=" (это SHA-1 хеш пустого пароля в кодировке Base64). Из-за этого несоответствия утилита администрирования блокирует вход, требуя авторизацию, которую физически невозможно пройти.
Перед тем как вносить любые изменения в конфигурационные файлы 1С:Предприятия, необходимо выполнить обязательные подготовительные действия. Пренебрежение этими правилами — самая частая причина полной неработоспособности сервера после попытки ручного сброса пароля.
Обязательно остановите службу сервера 1С. Если попытаться отредактировать файл 1CV8Clst.lst при запущенной службе «Агент сервера 1С:Предприятия», то в процессе штатной работы или при последующей перезагрузке служба перезапишет файл конфигурации актуальными данными из своей оперативной памяти. Все ваши изменения будут попросту затерты, а в худшем случае файл будет поврежден.
В операционной системе Windows для остановки службы выполним следующие действия:
services.msc и нажмите Enter.1C:Enterprise 8.3 Server Agent).Для остановки службы из командной строки Windows (запущенной от имени администратора) можно использовать следующую команду:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
Если сервер работает под управлением операционной системы семейства Linux, выполните команду в терминале:
systemctl stop srv1cv8-8.3
Сделайте резервную копию файлов. Обязательно скопируйте файлы 1CV8Clst.lst и 1CV8Clsto.lst в безопасное место перед редактированием. Формат сериализации 1С крайне чувствителен к синтаксису: любая пропущенная запятая, лишний пробел или случайно удаленная фигурная скобка приведут к тому, что служба сервера не сможет запуститься или «потеряет» все настроенные базы данных.
Нам необходимо найти каталог реестра кластера. Путь по умолчанию зависит от установленной операционной системы и версии платформы:
C:\Program Files\1cv8\srvinfo\reg_1541\
reg_1541 соответствует главному порту менеджера кластера. Если при установке порт менялся, имя папки будет отличаться (например, reg_1641). Обратите внимание: если в свойствах службы сервера в параметре запуска -d был указан другой путь для хранения данных, искать файлы нужно именно там./home/usr1cv8/.1cv8/1C/1cv8/shared/usr1cv8/srvinfo/reg_1541/
В целевой директории нам понадобятся два файла:
1CV8Clst.lst — основной рабочий файл реестра кластера.1CV8Clsto.lst — резервная копия файла реестра, которую сервер создает автоматически при успешном обновлении настроек.Для редактирования используйте текстовый редактор, корректно работающий с кодировкой UTF-8 без BOM (например, Notepad++ в Windows или утилиты nano / vim в Linux). Обычный стандартный «Блокнот» Windows использовать крайне не рекомендуется, так как он может добавить невидимые спецсимволы разметки в начало файла, что повредит его структуру.
Откроем файл 1CV8Clst.lst. Структура файла начинается со списка зарегистрированных в кластере информационных баз данных. Нам необходимо пролистать этот список до самого конца, пока мы не дойдем до блока описания администраторов центрального сервера.
Рассмотрим, как выглядит типичный блок с установленными администраторами:
{1,
{"Администратор","","","pW9hKrtYxV16G0XROWQ67uS2Bsw=","",1}
}
Здесь цифра 1 указывает на количество администраторов, а в фигурных скобках перечислены параметры учетной записи (логин, имя, хеш пароля и параметры Windows-аутентификации).
Выясним, как перевести кластер в режим работы «без авторизации» (когда список администраторов пуст). Для этого нам нужно полностью заменить весь этот массив на признак отсутствия пользователей.
Замените весь вышеуказанный блок администраторов на одну простую строчку:
{0}
Это сообщает серверу 1С, что количество администраторов равно 0, и никакие дополнительные проверки при подключении проводить не требуется.
Важное примечание: точно такую же операцию по замене блока администраторов на {0} необходимо проделать и во втором файле — 1CV8Clsto.lst. Если этого не сделать, сервер при запуске может обнаружить расхождение данных и восстановить настройки администраторов из резервного файла-копии.
Сохраните изменения в обоих файлах и закройте текстовый редактор.
Теперь мы можем вернуть службу сервера в рабочее состояние. Запустим «Агент сервера 1С:Предприятия» обратно.
В Windows (через консоль служб или командную строку от имени администратора):
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
В Linux:
systemctl start srv1cv8-8.3
После успешного запуска службы выполним проверку:
Оставлять рабочий кластер серверов 1С в состоянии без администраторов крайне небезопасно. Любой пользователь, имеющий доступ к сетевым портам сервера (по умолчанию порты 1540 и 1541), сможет открыть консоль со своего рабочего места и без труда удалить любую базу данных или завершить активные сеансы работы.
Поэтому сразу после успешного входа обязательно создайте новую учетную запись администратора:
Admin) и задайте сложный пароль.Сервер автоматически зашифрует пароль и корректно перезапишет структуру файлов 1CV8Clst.lst и 1CV8Clsto.lst, исключив любые синтаксические ошибки.
Проанализируем ситуацию, при которой ручное редактирование структуры файлов вызывает у вас затруднения, или файлы конфигурации оказались безнадежно повреждены (например, после открытия файлы отображаются в виде хаотичного набора символов).
В этом случае существует более грубый способ сброса параметров кластера:
1CV8Clst.lst и 1CV8Clsto.lst из директории reg_1541.При старте служба обнаружит отсутствие конфигурационных файлов и создаст абсолютно новые, чистые файлы конфигурации, в которых не будет никаких паролей и администраторов.
Внимание: этот метод имеет серьезный недостаток! Вместе со сбросом паролей вы полностью очистите весь список информационных баз данных, зарегистрированных в этой консоли. Сами физические базы (на сервере СУБД MS SQL / PostgreSQL или файлы файловых баз) никак не пострадают, но вам придется заново вручную регистрировать и прописывать каждую базу данных в консоли администрирования 1С. Поэтому ручное редактирование блока администраторов на значение {0} всегда является наиболее приоритетным, быстрым и безопасным решением проблемы. Для быстрого извлечения сведений и сопоставления баз из сохраненного файла конфигурации можно использовать обработку для анализа списка баз из папки reg_xxxx.