Смена GUID информационной базы: кластер, список баз, копии и РИБ
Содержание
Поменять идентификатор в 1С можно, но «один идентификатор базы» — заблуждение. Их как минимум четыре, и меняются они в разных местах. GUID в списке баз правят в файле ibases.v8i. Идентификатор базы в кластере меняется только перерегистрацией базы в консоли администрирования серверов 1С. Признак «это копия» в типовых конфигурациях снимается в окне, которое программа сама показывает после переноса.
Первый шаг — понять, какой именно идентификатор мешает. Если ошибиться, можно сменить GUID в одном месте и не заметить, что проблема живёт в другом: в настройках клиента, в кластере или в плане обмена.
Какие идентификаторы есть у информационной базы 1С
У одной и той же базы может быть несколько GUID и кодов. Они независимы друг от друга.
| Идентификатор | Где хранится | Кто его видит | Как меняется |
|---|---|---|---|
| ID базы в списке баз | файл ibases.v8i на компьютере пользователя | только этот компьютер | правкой строки ID= |
| ID базы в кластере | реестр кластера на сервере 1С | консоль, rac, рабочие процессы | перерегистрацией базы в кластере |
| Признак «основная база или копия» | данные самой конфигурации (подсистема БСП) | регламентные задания, обмены, сервисы | через окно о перемещении базы |
| Код узла и префикс | план обмена в конфигурации | РИБ и синхронизация данных | в настройках синхронизации, осторожно |
Подробнее о каждом:
- 🖥️ ID в списке баз. Окно запуска присваивает его каждой строке списка. По нему названы папки кеша и пользовательских настроек в
%APPDATA%\1C\1cv8\и%LOCALAPPDATA%\1C\1cv8\. - 🗄️ ID в кластере. Его выдаёт кластер при регистрации базы. Это
infobaseв выводеrac. Через него сервер связывает сеансы, соединения и блокировки с базой. - 📦 Признак копии. Типовые конфигурации на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) запоминают, где база работала. Если строка подключения сменилась, программа спрашивает, копия это или перенос.
- 🔁 Код узла и префикс. Нужны для обменов и РИБ. Узлы различаются по коду, а префикс попадает в номера документов и коды справочников.
Когда смена идентификатора действительно нужна
Менять GUID «на всякий случай» не нужно. Есть конкретные ситуации, где это решает проблему.
- Две строки в списке баз с одинаковым ID. Чаще всего так бывает после ручного копирования
ibases.v8iили правки строк. Базы начинают делить кеш и настройки: открывается не та форма, сбиваются настройки отчётов, вылетают ошибки кеша. - Копию рабочей базы подняли для тестов. Копия считает себя основной и запускает регламентные задания: обмены, загрузку курсов, отправку почты и выгрузку на сайт. Тестовая база может отправить письма клиентам или выгрузить данные в общий узел.
- Базу перенесли на другой сервер. Нужно сказать программе, что это та же база на новом месте, а не копия. Иначе часть сервисов останется заблокированной.
- Копию узла РИБ развернули как новый узел. Два узла с одним кодом ломают нумерацию сообщений обмена. Данные начинают задваиваться или теряться.
- Конфликт регистрации в кластере. Например, базу скопировали средствами СУБД, а в кластере осталась старая регистрация с устаревшими параметрами.
Когда делать НЕ нужно: если база просто медленно работает, «глючит» или выдаёт ошибку формата потока. Новый GUID это не лечит. Причины там другие: кеш, индексы, повреждённые данные.
Как поменять идентификатор базы в кластере серверов 1С
В консоли администрирования серверов нет поля, где можно вписать новый GUID базы. Идентификатор выдаётся при регистрации. Поэтому сменить его можно одним способом: снять базу с регистрации, не трогая данные в СУБД, и зарегистрировать её заново.
Перед перерегистрацией сделайте резервную копию базы средствами СУБД. Работать ли без неё, решает регламент вашей организации, но откат без копии невозможен.
Подготовка
- 👥 Предупредите пользователей: при удалении регистрации все сеансы базы оборвутся. Делайте это вне рабочего времени.
- 📝 Перепишите параметры базы в кластере: сервер и имя базы в СУБД, тип СУБД, пользователя СУБД, смещение дат, флаги блокировки регламентных заданий, профиль безопасности. При новой регистрации их придётся ввести заново.
- 🔑 Узнайте пароль пользователя СУБД. Без него новую регистрацию не создать.
Шаги в консоли администрирования
- Откройте консоль, разверните
Центральный сервер 1С:Предприятия → Кластеры → <ваш кластер> → Информационные базы. - Найдите базу, откройте её свойства и выпишите все параметры.
- Завершите сеансы базы в ветке
Сеансы, затем в контекстном меню базы выберите удаление. - В окне удаления выберите вариант «Оставить базу данных без изменений». Варианты «Удалить базу данных» и «Очистить базу данных » уничтожат данные.
- В ветке
Информационные базысоздайте новую базу через контекстное меню (Создать → Информационная база). - Укажите то же имя базы в кластере, тот же сервер СУБД и то же имя базы данных. Флажок «Создать базу данных в случае ее отсутствия» не ставьте: база уже есть.
- Восстановите остальные параметры из записей шага 2.
У пользователей в строке подключения записано Srvr="сервер";Ref="имябазы";. GUID кластера в ней нет, поэтому при том же имени базы перенастраивать клиентов не нужно.
Если зарегистрировать ту же базу СУБД под вторым именем в том же или соседнем кластере, к одним данным получат доступ два разных «экземпляра». Регламентные задания будут работать дважды. Перерегистрируйте, а не дублируйте.
То же самое через rac
На сервере с запущенной службой ras удобнее смотреть текущий GUID через утилиту rac:
rac cluster list
rac infobase summary list --cluster=<uuid-кластера>
Во втором выводе поле infobase — это и есть идентификатор базы в кластере, рядом поле name. Удаление и создание регистрации тоже доступны через rac infobase, но набор ключей зависит от версии платформы. Сверьтесь с rac help infobase, прежде чем запускать команды на рабочем сервере.
Новый GUID для базы в списке и для файловой базы
Здесь задача другая: у файловой базы нет кластера, и «идентификатор», который реально мешает, обычно живёт в списке баз на компьютере пользователя.
Где лежит список баз
Список баз текущего пользователя Windows хранится в файле:
%APPDATA%\1C\1CEStart\ibases.v8i
Каждая база в нём — блок из нескольких строк:
[Бухгалтерия предприятия]
Connect=File="D:\Bases\Buh";
ID=3b7c2f6e-1a4d-4c2e-9f0a-8d5e6b7c1a20
OrderInList=16384
Folder=/
External=0
ClientConnectionSpeed=Normal
App=Auto
WA=1
Version=8.3
Строка ID= и есть идентификатор базы в списке.
Как сменить ID в ibases.v8i
- Закройте все окна 1С на этом компьютере, включая окно запуска.
- Сгенерируйте новый GUID в PowerShell:
[guid]::NewGuid().ToString()
- Откройте
ibases.v8iв редакторе, который сохраняет UTF-8 (например, Блокнот в Windows 10 и новее). - Замените значение после
ID=у нужной базы на новый GUID. Остальные строки не трогайте. - Сохраните файл и запустите 1С.
Платформа создаст для базы новые папки кеша и настроек. Это значит, что личные настройки пользователя (размеры окон, настройки отчётов на этом компьютере, история) для этой строки начнутся с чистого листа.
Самый мягкий способ получить новый ID без правки файла: удалите строку базы из окна запуска и добавьте её заново кнопкой Добавить → «Добавление в список существующей информационной базы». Окно запуска выдаст новый GUID само.
Копия файловой базы
Если вы скопировали папку с файлом 1Cv8.1CD, копия несёт внутри те же данные, что и оригинал. Отдельного поля «GUID файловой базы», которое можно поменять из интерфейса, нет. Для типовых конфигураций различение «оригинал или копия» решает механизм из следующего раздела: при первом запуске копии из нового каталога программа сама заметит смену пути.
Копия или перенос: окно о перемещении базы в типовых конфигурациях
Для бухгалтера и администратора типовой базы это самый частый случай «смены идентификатора». Конфигурации на БСП запоминают параметры подключения. Когда базу запускают по другому пути или на другом сервере, при входе администратора появляется предупреждение о том, что информационная база перемещена или восстановлена из резервной копии.
Дальше два варианта:
- 🧪 Это копия. Программа блокирует работу с внешними ресурсами: регламентные задания обменов, почты, загрузки классификаторов и прочие внешние подключения. Нужно для тестовых и учебных копий.
- 🚚 База перемещена. Программа принимает новое место как основное и продолжает работать как раньше. Нужно при переезде на новый сервер или в новый каталог.
Не нажимайте «база перемещена» в тестовой копии. Копия начнёт выполнять обмены и рассылки от имени рабочей базы.
Если ошиблись с выбором
- Для копии, где по ошибке сняли блокировку, отключите регламентные задания вручную:
Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. - На уровне кластера дополнительно поставьте в свойствах базы флажок «Блокировка регламентных заданий включена». Это надёжнее: задания не стартуют, что бы ни было выбрано в конфигурации.
- Для перенесённой базы, которую приняли за копию, войдите под администратором и снимите блокировку работы с внешними ресурсами в предложенном программой окне или в разделе
Администрирование.
Подключение к сервисам 1С (интернет-поддержка, 1С-Отчётность, ЭДО) в копии лучше не трогать. Повторное подключение учётной записи из копии может перепутать, какая база считается рабочей у оператора.
Идентификатор узла в РИБ и обменах: код и префикс
В распределённой базе роль идентификатора играет код узла плана обмена. Главный узел и подчинённые узлы знают друг друга по коду. Номера отправленных и принятых сообщений хранятся у каждой пары узлов.
Чего делать нельзя
- ❌ Восстанавливать копию подчинённого узла и запускать её как второй рабочий узел. Получится два узла с одним кодом и одинаковыми номерами сообщений.
- ❌ Менять код узла, по которому уже идёт обмен. Узел-партнёр перестанет его узнавать.
- ❌ Подключать копию главного узла к реальным подчинённым узлам.
Как правильно получить «новый» узел
- В главной базе создайте новый узел плана обмена с новым уникальным кодом. В типовых конфигурациях это делается через
Администрирование → Синхронизация данных. - Создайте для него начальный образ. Платформа сформирует подчинённую базу, которая сразу знает свой код и главный узел.
- Старый узел, если он больше не нужен, отключите от обмена в главной базе.
Префикс базы
Префикс — короткий код, который типовые конфигурации добавляют к номерам документов и кодам справочников. Он задаётся в Администрирование → Синхронизация данных, поле префикса этой базы.
- 🔤 Смена префикса влияет только на новые номера. Старые документы сохранят прежние номера.
- 🔢 Два узла с одинаковым префиксом создадут документы с одинаковыми номерами. При обмене это даёт дубли номеров.
- 🕐 Префикс меняйте в начале периода, чтобы в одном году не смешались номера с разными префиксами.
Как проверить, что идентификатор поменялся
Проверка зависит от того, что меняли.
| Что меняли | Как проверить |
|---|---|
| ID в списке баз | откройте ibases.v8i и найдите повторы GUID; в %APPDATA%\1C\1cv8\ должна появиться папка с новым именем |
| ID в кластере | rac infobase summary list показывает новое значение infobase для той же name |
| Признак копии | при входе администратора нет предупреждения о перемещении; регламентные задания в нужном состоянии |
| Узел РИБ | обмен проходит, номера сообщений растут, ошибок в журнале регистрации нет |
Поиск дублей ID в списке баз
Если пользователь жалуется, что «настройки одной базы лезут в другую», проверьте список баз на повторы:
Get-Content "$env:APPDATA\1C\1CEStart\ibases.v8i" |
Where-Object { $_ -like 'ID=*' } |
Group-Object |
Where-Object { $_.Count -gt 1 } |
Select-Object Name, Count
Пустой вывод — дублей нет. Если команда что-то показала, смените ID у одной из баз по инструкции выше.
Журнал регистрации
После перерегистрации в кластере и после переноса базы откройте журнал регистрации (Администрирование → Обслуживание → Журнал регистрации). Отфильтруйте по уровню «Ошибка» за первые сутки работы. Отказы регламентных заданий и обменов там видны сразу.