Смена GUID информационной базы: кластер, список баз, копии и РИБ

· 10 мин

Содержание

Поменять идентификатор в 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 «на всякий случай» не нужно. Есть конкретные ситуации, где это решает проблему.

  1. Две строки в списке баз с одинаковым ID. Чаще всего так бывает после ручного копирования ibases.v8i или правки строк. Базы начинают делить кеш и настройки: открывается не та форма, сбиваются настройки отчётов, вылетают ошибки кеша.
  2. Копию рабочей базы подняли для тестов. Копия считает себя основной и запускает регламентные задания: обмены, загрузку курсов, отправку почты и выгрузку на сайт. Тестовая база может отправить письма клиентам или выгрузить данные в общий узел.
  3. Базу перенесли на другой сервер. Нужно сказать программе, что это та же база на новом месте, а не копия. Иначе часть сервисов останется заблокированной.
  4. Копию узла РИБ развернули как новый узел. Два узла с одним кодом ломают нумерацию сообщений обмена. Данные начинают задваиваться или теряться.
  5. Конфликт регистрации в кластере. Например, базу скопировали средствами СУБД, а в кластере осталась старая регистрация с устаревшими параметрами.

Когда делать НЕ нужно: если база просто медленно работает, «глючит» или выдаёт ошибку формата потока. Новый GUID это не лечит. Причины там другие: кеш, индексы, повреждённые данные.

Как поменять идентификатор базы в кластере серверов 1С

В консоли администрирования серверов нет поля, где можно вписать новый GUID базы. Идентификатор выдаётся при регистрации. Поэтому сменить его можно одним способом: снять базу с регистрации, не трогая данные в СУБД, и зарегистрировать её заново.

Перед перерегистрацией сделайте резервную копию базы средствами СУБД. Работать ли без неё, решает регламент вашей организации, но откат без копии невозможен.

Подготовка

  • 👥 Предупредите пользователей: при удалении регистрации все сеансы базы оборвутся. Делайте это вне рабочего времени.
  • 📝 Перепишите параметры базы в кластере: сервер и имя базы в СУБД, тип СУБД, пользователя СУБД, смещение дат, флаги блокировки регламентных заданий, профиль безопасности. При новой регистрации их придётся ввести заново.
  • 🔑 Узнайте пароль пользователя СУБД. Без него новую регистрацию не создать.

Шаги в консоли администрирования

  1. Откройте консоль, разверните Центральный сервер 1С:Предприятия → Кластеры → <ваш кластер> → Информационные базы.
  2. Найдите базу, откройте её свойства и выпишите все параметры.
  3. Завершите сеансы базы в ветке Сеансы, затем в контекстном меню базы выберите удаление.
  4. В окне удаления выберите вариант «Оставить базу данных без изменений». Варианты «Удалить базу данных» и «Очистить базу данных » уничтожат данные.
  5. В ветке Информационные базы создайте новую базу через контекстное меню (Создать → Информационная база).
  6. Укажите то же имя базы в кластере, тот же сервер СУБД и то же имя базы данных. Флажок «Создать базу данных в случае ее отсутствия» не ставьте: база уже есть.
  7. Восстановите остальные параметры из записей шага 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. Закройте все окна 1С на этом компьютере, включая окно запуска.
  2. Сгенерируйте новый GUID в PowerShell:
[guid]::NewGuid().ToString()
  1. Откройте ibases.v8i в редакторе, который сохраняет UTF-8 (например, Блокнот в Windows 10 и новее).
  2. Замените значение после ID= у нужной базы на новый GUID. Остальные строки не трогайте.
  3. Сохраните файл и запустите 1С.

Платформа создаст для базы новые папки кеша и настроек. Это значит, что личные настройки пользователя (размеры окон, настройки отчётов на этом компьютере, история) для этой строки начнутся с чистого листа.

Самый мягкий способ получить новый ID без правки файла: удалите строку базы из окна запуска и добавьте её заново кнопкой Добавить → «Добавление в список существующей информационной базы». Окно запуска выдаст новый GUID само.

Копия файловой базы

Если вы скопировали папку с файлом 1Cv8.1CD, копия несёт внутри те же данные, что и оригинал. Отдельного поля «GUID файловой базы», которое можно поменять из интерфейса, нет. Для типовых конфигураций различение «оригинал или копия» решает механизм из следующего раздела: при первом запуске копии из нового каталога программа сама заметит смену пути.

Копия или перенос: окно о перемещении базы в типовых конфигурациях

Для бухгалтера и администратора типовой базы это самый частый случай «смены идентификатора». Конфигурации на БСП запоминают параметры подключения. Когда базу запускают по другому пути или на другом сервере, при входе администратора появляется предупреждение о том, что информационная база перемещена или восстановлена из резервной копии.

Дальше два варианта:

  • 🧪 Это копия. Программа блокирует работу с внешними ресурсами: регламентные задания обменов, почты, загрузки классификаторов и прочие внешние подключения. Нужно для тестовых и учебных копий.
  • 🚚 База перемещена. Программа принимает новое место как основное и продолжает работать как раньше. Нужно при переезде на новый сервер или в новый каталог.

Не нажимайте «база перемещена» в тестовой копии. Копия начнёт выполнять обмены и рассылки от имени рабочей базы.

Если ошиблись с выбором

  • Для копии, где по ошибке сняли блокировку, отключите регламентные задания вручную: Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
  • На уровне кластера дополнительно поставьте в свойствах базы флажок «Блокировка регламентных заданий включена». Это надёжнее: задания не стартуют, что бы ни было выбрано в конфигурации.
  • Для перенесённой базы, которую приняли за копию, войдите под администратором и снимите блокировку работы с внешними ресурсами в предложенном программой окне или в разделе Администрирование.

Подключение к сервисам 1С (интернет-поддержка, 1С-Отчётность, ЭДО) в копии лучше не трогать. Повторное подключение учётной записи из копии может перепутать, какая база считается рабочей у оператора.

Идентификатор узла в РИБ и обменах: код и префикс

В распределённой базе роль идентификатора играет код узла плана обмена. Главный узел и подчинённые узлы знают друг друга по коду. Номера отправленных и принятых сообщений хранятся у каждой пары узлов.

Чего делать нельзя

  • ❌ Восстанавливать копию подчинённого узла и запускать её как второй рабочий узел. Получится два узла с одним кодом и одинаковыми номерами сообщений.
  • ❌ Менять код узла, по которому уже идёт обмен. Узел-партнёр перестанет его узнавать.
  • ❌ Подключать копию главного узла к реальным подчинённым узлам.

Как правильно получить «новый» узел

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

Префикс базы

Префикс — короткий код, который типовые конфигурации добавляют к номерам документов и кодам справочников. Он задаётся в Администрирование → Синхронизация данных, поле префикса этой базы.

  • 🔤 Смена префикса влияет только на новые номера. Старые документы сохранят прежние номера.
  • 🔢 Два узла с одинаковым префиксом создадут документы с одинаковыми номерами. При обмене это даёт дубли номеров.
  • 🕐 Префикс меняйте в начале периода, чтобы в одном году не смешались номера с разными префиксами.

Как проверить, что идентификатор поменялся

Проверка зависит от того, что меняли.

Что менялиКак проверить
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 у одной из баз по инструкции выше.

Журнал регистрации

После перерегистрации в кластере и после переноса базы откройте журнал регистрации (Администрирование → Обслуживание → Журнал регистрации). Отфильтруйте по уровню «Ошибка» за первые сутки работы. Отказы регламентных заданий и обменов там видны сразу.

Диагностика: выберите симптом

Частые вопросы

Слетит ли лицензия после смены идентификатора базы?
Нет. Программные лицензии 1С привязаны к компьютеру или серверу, а не к GUID базы. Смена ID в списке баз или перерегистрация в кластере на лицензии не влияет.
Нужно ли менять ID при обновлении конфигурации?
Нет. Обновление конфигурации и платформы идентификаторы не трогает.
Можно ли вписать в ibases.v8i любой набор символов?
Нет. Значение должно быть корректным GUID вида 8-4-4-4-12 шестнадцатеричных символов. Надёжнее сгенерировать его командой PowerShell.
Меняется ли ID при выгрузке и загрузке через .dt?
Регистрация в кластере при загрузке .dt не меняется: вы загружаете данные в уже зарегистрированную базу. А типовая конфигурация после загрузки в другое место спросит, копия это или перенос.
Две базы в кластере ссылаются на одну базу СУБД. Это опасно?
Да. Регламентные задания и блокировки будут работать независимо для каждой регистрации. Оставьте одну регистрацию, вторую удалите с вариантом «Оставить базу данных без изменений».