Как восстановить консоль администрирования серверов 1С после удаления старых версий платформы?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

В результате администратор сталкивается с неприятной ситуацией: сама служба сервера 1С (ragent.exe) успешно запускается и работает на актуальном релизе, пользователи без проблем подключаются к базам данных, но при попытке запустить утилиту администрирования серверов операционная система выдает критическую ошибку: "Консоль управления (MMC) не может создать оснастку". В самой консоли при этом отображается пустота.

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

Почему ломается оснастка MMC и как устроен механизм администрирования 1С

Проанализируем архитектуру консоли администрирования серверов 1С. Она представляет собой стандартную оснастку для встроенной в Windows утилиты Microsoft Management Console (MMC). Сама консоль не выполняет логических действий, она является лишь графической оболочкой, которая загружает специализированную динамическую библиотеку (COM-компонент) radmin.dll, поставляемую вместе с платформой 1С.

Эта библиотека регистрируется в реестре операционной системы Windows. Когда мы запускаем файл 1CEnterpriseservers.msc, операционная система обращается к реестру, находит путь к зарегистрированной библиотеке radmin.dll, загружает её и отображает дерево серверов, кластеров и информационных баз.

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

Способ 1. Автоматическое восстановление с помощью скрипта RegMSC.cmd

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

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

  1. Откроем проводник Windows и перейдем в каталог, куда установлена рабочая (активная на данный момент) версия платформы 1С. По умолчанию для 64-разрядной версии путь выглядит так: C:\Program Files\1cv8\<Номер_Релиза>\bin\ (например, C:\Program Files\1cv8\8.3.22.1709\bin\). Для 32-разрядной версии на 64-битной системе путь будет начинаться с C:\Program Files (x86)\.
  2. Найдем в этой папке файл с именем RegMSC.cmd.
  3. Нажмем на файл правой кнопкой мыши и выберем пункт "Запуск от имени администратора". Это критически важно, так как утилите потребуются повышенные привилегии для записи параметров в разделы реестра HKEY_CLASSES_ROOT и HKEY_LOCAL_MACHINE.
  4. На экране на долю секунды появится черное окно командной строки, после чего закроется. Процедура завершена.

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

Способ 2. Ручная регистрация библиотеки radmin.dll через командную строку

Если по какой-то причине запуск файла RegMSC.cmd не помог или данный файл отсутствует в каталоге bin, мы можем зарегистрировать библиотеку администрирования вручную с помощью системной утилиты regsvr32.

Разберем этот процесс по шагам:

  1. Откроем меню "Пуск", введем в поиске cmd (Командная строка).
  2. Нажмем правой кнопкой мыши на найденное приложение и выберем "Запуск от имени администратора".
  3. В открывшемся окне командной строки введем команду регистрации библиотеки. Нам необходимо указать полный путь к файлу radmin.dll актуального релиза. Шаблон команды выглядит следующим образом:

regsvr32 "C:\Program Files\1cv8\<Номер_Релиза>\bin\radmin.dll"

Например, для релиза 8.3.23.1865 команда будет выглядеть так:

regsvr32 "C:\Program Files\1cv8\8.3.23.1865\bin\radmin.dll"

После нажатия клавиши Enter на экране должно появиться системное сообщение от RegSvr32 с текстом: "Успешное выполнение DllRegisterServer в...". Это означает, что операционная система успешно связала оснастку MMC с указанной версией библиотеки.

Особенности администрирования при наличии нескольких версий серверов 1С

Иногда на одном физическом сервере или в одной локальной сети системным администраторам приходится поддерживать работу информационных баз, запущенных на разных версиях платформы 1С (например, часть критически важных баз работает на стабильной 8.3.21, а новые проекты развернуты на 8.3.24). В этом случае возникает конфликт: операционная система Windows может держать зарегистрированной в MMC только одну версию библиотеки radmin.dll.

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

Создадим на рабочем столе текстовый файл с именем, например, Run_Console_8_3_22.bat, откроем его в блокноте и запишем следующий код:


@echo off
rem Регистрируем библиотеку нужной версии в тихом режиме (без вывода окон)
regsvr32 /s "C:\Program Files\1cv8\8.3.22.1709\bin\radmin.dll"
rem Запускаем стандартную консоль администрирования
start "" "C:\Program Files\1cv8\common\1CEnterpriseservers.msc"

Аналогичный файл мы можем создать для другой версии платформы. Теперь перед запуском консоли нам достаточно запустить соответствующий bat-файл от имени Администратора, и система автоматически перерегистрирует оснастку на лету.

Спасение настроек кластера: работа с каталогом srvinfo и файлами .lst

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

Выясним, что представляет собой каталог srvinfo. По умолчанию он располагается по пути C:\Program Files\1cv8\srvinfo\. Это "сердце" вашего сервера приложений 1С. В нем хранятся настройки кластера, параметры рабочих процессов и списки зарегистрированных информационных баз.

Наиболее критичными для нас являются файлы с расширением .lst:

Если эти файлы будут повреждены или удалены, служба сервера 1С запустится абсолютно чистой. Сами базы данных на MS SQL Server или PostgreSQL никак не пострадают, но сервер 1С "забудет", что они существуют. Администратору придется заново вручную добавлять каждую базу в консоль администрирования, вспоминая точные имена баз в СУБД и пароли.

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

  1. Остановим службу сервера 1С (через оснастку services.msc останавливаем службу 1C:Enterprise 8.3 Server Agent).
  2. Скопируем сохраненные файлы 1cv8wsrv.lst и 1CV8Clst.lst обратно в соответствующие папки каталога srvinfo.
  3. Запустим службу сервера 1С.
  4. Откроем консоль администрирования. Все базы и настройки кластера моментально вернутся на свои места.

Восстановление Журнала регистрации (Event Log)

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

Путь к журналу регистрации выглядит так:

C:\Program Files\1cv8\srvinfo\reg_1541\<Идентификатор_Базы_Данных>\1Cv8Log\

Где <Идентификатор_Базы_Данных> — это уникальный UUID базы, который можно посмотреть в свойствах информационной базы в консоли администрирования.

В современных версиях платформы 1С журнал регистрации хранится в формате базы данных SQLite (файл 1Cv8.lgd). Из-за некорректного завершения работы сервера, сбоев по питанию или ошибок при копировании этот файл может повредиться. При попытке открыть журнал регистрации в режиме Предприятия или Конфигуратора система начнет выдавать ошибку database disk image is malformed.

Рассмотрим по шагам, как реанимировать поврежденный файл журнала регистрации 1Cv8.lgd с помощью бесплатной консольной утилиты sqlite3.exe:

  1. Остановим службу сервера приложений 1С, чтобы снять блокировку с файлов журнала регистрации.
  2. Скопируем поврежденный файл 1Cv8.lgd в отдельную временную папку (например, C:\Temp\).
  3. Скачаем утилиту sqlite3 с официального сайта и поместим исполняемый файл sqlite3.exe в ту же временную папку C:\Temp\.
  4. Запустим командную строку от имени администратора и перейдем в нашу временную папку:

cd C:\Temp

  1. Выполним операцию экспорта (дампа) всех уцелевших данных из поврежденного файла в текстовый SQL-скрипт:

sqlite3 1Cv8.lgd .dump >> backup.sql

  1. Откроем созданный файл backup.sql в любом продвинутом текстовом редакторе (например, Notepad++). Прокрутим файл в самый конец. Если последняя строка файла содержит команду ROLLBACK;, это означает, что утилита прервала экспорт из-за ошибки. Обязательно исправим это слово на команду COMMIT; и сохраним изменения в файле.
  2. Теперь соберем новый, чистый от ошибок файл базы данных журнала регистрации из нашего SQL-дампа:

sqlite3 1Cv8_new.lgd < backup.sql

  1. Переименуем старый поврежденный файл в каталоге 1Cv8Log базы данных (например, в 1Cv8_old.lgd) на случай, если что-то пойдет не так.
  2. Поместим наш восстановленный файл 1Cv8_new.lgd в каталог 1Cv8Log и переименуем его в 1Cv8.lgd.
  3. Запустим службу сервера приложений 1С. Теперь журнал регистрации будет открываться без ошибок, сохранив всю историю действий пользователей.

Восстановление работы полнотекстового поиска (ПТП)

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

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

Сделаем это непосредственно в режиме "1С:Предприятие" под учетной записью с административными правами:

  1. Откроем информационную базу в режиме Предприятия.
  2. Перейдем в раздел "Администрирование", далее выберем пункт "Общие настройки".
  3. Развернем группу "Полнотекстовый поиск данных" и перейдем по ссылке "Настроить".
  4. В открывшемся диалоговом окне мы увидим текущий статус индекса. Нажмем кнопку "Очистить индекс". Эта операция физически удалит файлы индекса с диска сервера приложений.
  5. После успешного удаления нажмем кнопку "Обновить индекс".

Важное предупреждение: процесс обновления индекса полнотекстового поиска на больших базах данных (объемом в сотни гигабайт) может занять значительное время (от нескольких часов до суток) и вызвать серьезную нагрузку на процессоры и дисковую подсистему сервера СУБД и рабочих процессов rphost.exe. Настоятельно рекомендуем запускать данную процедуру исключительно в нерабочее время или в выходные дни.

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

← На главную