Как отключить УРБД и превратить распределенную базу 1С 7.7 в обычную сетевую?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Механизм распределенных информационных баз (УРБД / УРИБ) в платформе 1С:Предприятие 7.7 изначально разрабатывался разработчиками как односторонний: штатной кнопки для отмены распределенности и превращения узла в автономную локальную или сетевую базу в интерфейсе нет. Если отвязать узел неверно или просто удалить периферийные базы в меню управления, конфигуратор не снимет внутренние ограничения на редактирование метаданных и продолжит генерировать служебные таблицы регистрации изменений.

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

Способ 1. Ручное отключение через очистку таблиц (для файловых баз DBF)

Проанализируем структуру служебных файлов УРБД. При включении распределенности платформа создает три служебных файла: 1SDBSET.DBF (список узлов обмена), 1SDWNLDS.DBF (очередь загрузки) и 1SUPDTS.DBF (таблица зарегистрированных изменений для узлов), а также записывает идентификатор базы в таблицу 1SSYSTEM.DBF.

Разберем пошаговый порядок действий для полного снятия признака УРБД:

  1. Создание резервной копии: обязательно делаем полную копию каталога информационной базы и проверяем, чтобы в ней не оставалось активных пользовательских сессий.
  2. Удаление таблиц обмена и индексов: переходим в каталог базы данных и удаляем следующие файлы:
    — 1SDBSET.DBF и 1SDBSET.CDX
    — 1SDWNLDS.DBF и 1SDWNLDS.CDX
    — 1SUPDTS.DBF и 1SUPDTS.CDX
    — все индексные файлы *.CDX в каталоге базы данных.
  3. Редактирование системной таблицы 1SSYSTEM.DBF: открываем файл с помощью любого специализированного DBF-редактора (например, WinDBFView, Database Desktop или встроенного редактора Far Manager). В таблице содержится ровно одна запись. Корректируем два ключевых поля:
    — в поле DBSIGN: удаляем префикс базы (записываем ровно 3 пробела: ' '). Важно понимать, что там хранится не фиксированная литера (например, «Ц»), а 3-символьный префикс конкретной базы;
    — в поле DBSETUUID: записываем строку нулевого GUID строго из 36 символов: 00000000-0000-0000-0000-000000000000.
    Примечание: в качестве альтернативы можно просто удалить единственную запись в 1SSYSTEM.DBF — при последующем сохранении метаданных платформа создаст ее заново со значениями по умолчанию.
  4. Фиксация структуры в Конфигураторе:
    — запускаем платформу в режиме Конфигуратор монопольно;
    — соглашаемся на автоматическую переиндексацию таблиц базы;
    — открываем дерево метаданных (меню «Конфигурация» -> «Открыть конфигурацию»);
    — вносим фиктивное изменение (например, добавляем или убираем пробел в комментарии конфигурации или любого реквизита), чтобы стала доступна кнопка сохранения метаданных;
    — сохраняем конфигурацию (клавиша F7 или кнопка «Сохранить») и подтверждаем реструктуризацию. Этот шаг обязателен, так как он перезаписывает метаданные в 1Cv7.MD без признака распределенности.

Способ 2. Отключение УРБД в клиент-серверной версии (MS SQL Server)

Если база 1С 7.7 развернута на СУБД MS SQL Server, имена системных таблиц имеют префикс подчеркивания. Выполним дераспределенность с помощью SQL-скрипта.

Рассмотрим последовательность действий:

  1. Создаем резервную копию базы данных средствами SQL Server Management Studio.
  2. Выполняем SQL-запрос для удаления служебных таблиц обмена:
    
    DROP TABLE _1SDBSET;
    DROP TABLE _1SDWNLDS;
    DROP TABLE _1SUPDTS;
    
  3. Обнуляем системные признаки распределенности в таблице _1SSYSTEM:
    
    UPDATE _1SSYSTEM 
    SET DBSIGN = '   ', 
        DBSETUUID = '00000000-0000-0000-0000-000000000000';
    
  4. Открываем базу в Конфигураторе 1С, вносим фиктивное изменение в метаданные и выполняем сохранение по F7.

Способ 3. Штатный метод дераспределения (через выгрузку и загрузку данных)

Существует полностью безопасный метод, который не требует ручной правки бинарных файлов таблиц DBF или выполнения прямых SQL-запросов. Он основан на встроенном механизме переноса данных.

Разберем по шагам данный алгоритм:

  1. В исходной распределенной базе открываем Конфигуратор и выбираем меню «Администрирование» -> «Выгрузить данные». Формируем архив выгрузки в формате .dat (не путать с пунктом «Сохранить данные»).
  2. Создаем на диске новую пустую папку для будущей базы.
  3. Копируем в эту новую папку только файл структуры конфигурации 1Cv7.MD и при необходимости список пользователей Users.usr из подкаталога usrdef.
  4. Прописываем созданный каталог в окне запуска 1С и открываем его в Конфигураторе.
  5. Выбираем меню «Администрирование» -> «Загрузить данные» и указываем сформированный ранее файл .dat.

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

Важные замечания и последствия дераспределения

Посмотрим на особенности функционирования базы после отключения обмена:

  1. Удаление файла библиотеки: распространенный совет удалять файл DistrDB.dll из папки BIN платформы является ошибочным. Удаление DLL-библиотеки отключает компонент УРБД для всей платформы на данном компьютере, что может нарушить работу других баз, но никак не очищает структуру текущей базы.
  2. Разблокировка редактирования: если процедура выполнялась на базе подчиненного (периферийного) узла, после сохранения метаданных снимается запрет на редактирование объектов, и конфигурация становится полностью доступной для доработок.
  3. Контроль целостности: после завершения любых манипуляций обязательно запускаем полный цикл проверки: меню «Администрирование» -> «Тестирование и исправление ИБ» с включенной проверкой логической и ссылочной целостности.
← На главную