В процессе эксплуатации системы «1С:Предприятие» перед администраторами и разработчиками часто встает задача удаления информационных баз из общего списка запуска или их полного исключения из кластера серверов. Удаление базы «из интерфейса» может подразумевать как простое скрытие строки в окне выбора баз, так и физическое удаление регистрации базы на сервере 1С. В данной статье мы подробно проанализируем все доступные способы решения этой задачи, начиная от ручной правки конфигурационных файлов и заканчивая автоматизацией через консольные утилиты и программный код.
Самый простой способ убрать базу из интерфейса конкретного пользователя — это отредактировать файл ibases.v8i. Именно в этом файле хранится перечень всех баз, которые пользователь видит при запуске программы. Рассмотрим этот процесс по шагам.
Выясним, где находится этот файл. По умолчанию в операционных системах Windows он располагается по пути: %APPDATA%\1C\1CEStart\ibases.v8i. Чтобы быстро попасть в эту папку, можно нажать комбинацию клавиш Win+R, ввести указанный путь и нажать Enter.
Разберем структуру этого файла. Каждая информационная база представлена в нем отдельным блоком данных. Пример типичной записи выглядит следующим образом:
[БухгалтерияПредприятия]
Connect=Srvr="ServerName";Ref="BaseName";
ID=12345678-1234-1234-1234-1234567890ab
Order=1
Folder=/
External=0
ClientConnectionLevel=Normal
CacheLocation=Local
App=Auto
WA=1
Чтобы база исчезла из интерфейса, нам необходимо найти блок, начинающийся с названия нужной базы в квадратных скобках, и полностью удалить все строки до начала следующего блока. Если мы работаем в корпоративной среде, проанализируем ситуацию с «Общими информационными базами». Иногда пути к спискам баз прописаны в файле 1ceStart.cfg. В этом случае удаление базы из локального ibases.v8i не поможет, так как при следующем запуске система снова подтянет список из сетевого ресурса. В такой ситуации необходимо редактировать первоисточник — файл .v8i, расположенный на сервере.
Для администраторов серверных версий 1С наиболее эффективным инструментом является утилита rac (Remote Administration Client). Она позволяет управлять кластером серверов без использования графической консоли MMC. Рассмотрим подробнее, как с ее помощью удалить базу.
Проанализируем основные команды. Для удаления информационной базы используется команда infobase drop или infobase unregister. Разберем разницу между ними:
Посмотрим на пример команды для удаления базы из кластера:
rac infobase --cluster=00000000-0000-0000-0000-000000000000 unregister --infobase=11111111-1111-1111-1111-111111111111
Где --cluster — это уникальный идентификатор вашего кластера, а --infobase — идентификатор базы, которую нужно удалить. Чтобы узнать эти идентификаторы, предварительно воспользуемся командами rac cluster list и rac infobase summary list. Этот метод идеально подходит для написания скриптов автоматизации, когда требуется массово «вычищать» временные или тестовые базы из интерфейса и серверного списка.
Если нам необходимо реализовать удаление баз непосредственно из кода 1С (например, через внешнюю обработку администратора), мы можем воспользоваться объектом V83.COMConnector. Этот метод позволяет программно подключаться к агенту сервера 1С.
Разберем примерный алгоритм действий:
V83.COMConnector.ConnectAgent для подключения к серверу.GetInfoBases, чтобы найти требуемую базу по имени.Посмотрим на пример логики кода:
Connector = Новый COMОбъект("V83.COMConnector");
AgentConnection = Connector.ConnectAgent("ServerName");
Clusters = AgentConnection.GetClusters();
// Предположим, работаем с первым кластером
CurrentCluster = Clusters.GetValue(0);
AgentConnection.Authenticate(CurrentCluster, "Admin", "Password");
InfoBases = AgentConnection.GetInfoBases(CurrentCluster);
Для Каждого IB Из InfoBases Цикл
Если IB.Name = "TargetBaseName" Тогда
// Удаляем базу из списка кластера
AgentConnection.DropInfoBase(CurrentCluster, IB, 0); // 0 - без удаления базы в SQL
КонецЕсли;
КонецЦикла;
Важно помнить, что при использовании метода DropInfoBase третий параметр определяет судьбу данных: 0 — оставить базу в СУБД, 1 — уничтожить физическую базу данных.
В ситуациях, когда пользователи работают через браузер (веб-клиент), удаление из интерфейса сводится к управлению публикациями на веб-сервере Apache или IIS. Если база опубликована, она доступна по URL и видна в соответствующих списках веб-интерфейса.
Для удаления публикации воспользуемся утилитой webinst. Рассмотрим пример команды:
webinst -delete -apache24 -wsdir BaseVirtualDirectory -dir "C:\inetpub\wwwroot\BaseName"
После выполнения этой команды запись о базе будет удалена из конфигурационных файлов веб-сервера (например, из httpd.conf или default.vrd), и она перестанет отображаться в интерфейсе доступа через браузер.
Для тех, кто предпочитает графический интерфейс, самым наглядным способом остается стандартная оснастка «Администрирование серверов 1С:Предприятия». Проанализируем этот путь:
Обратите внимание: система обязательно выдаст диалоговое окно с вопросом о сохранении базы данных в составе сервера СУБД. Чтобы просто скрыть базу из интерфейса 1С и списка кластера, но сохранить данные, выберите вариант «Оставить». Если же база больше не нужна совсем, выбирайте вариант «Удалить», что приведет к необратимому уничтожению данных в SQL.
В крупных организациях ручное удаление баз у каждого пользователя невозможно. В таких случаях мы используем групповые политики Active Directory. Разберем, как это работает. Администратор создает скрипт (например, на PowerShell или VBScript), который при входе пользователя в систему анализирует содержимое его ibases.v8i и удаляет из него лишние строки. Это гарантирует, что даже если пользователь вручную добавит какую-то базу, при следующем входе она будет удалена из его интерфейса согласно корпоративным стандартам.
Также можно управлять поведением окна запуска через реестр Windows. Параметры интерфейса запуска часто хранятся в ветке HKEY_CURRENT_USER\Software\1C\1Cv8\3.0. Изменение ключей в этой ветке позволяет тонко настраивать отображение списка баз для всех пользователей домена одновременно.
Подводя итог, мы видим, что задача «удаления базы из интерфейса» имеет множество решений. Выбор конкретного метода зависит от того, нужно ли вам просто скрыть базу от пользователя, полностью исключить ее из кластера сервера или физически уничтожить данные в СУБД. Всегда рекомендуем делать резервные копии файлов настроек и баз данных перед выполнением любых операций удаления.