Как загрузить копию базы 1С из формата .dt на SQL-сервер при потере прав доступа

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

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

Способ 1. Восстановление прав доступа через SQL-запросы (без перезаливки .dt)

Прежде чем приступать к длительному процессу загрузки тяжелого .dt файла, проанализируем ситуацию: если база данных в SQL исправна, но вы просто не можете в нее войти, права можно сбросить на уровне таблиц СУБД. Это сэкономит часы времени.

Разберем алгоритм действий в SQL Server Management Studio (SSMS):

  1. Выберем нужную базу данных 1С.
  2. Нам необходимо очистить таблицу со списком пользователей и удалить запись о пользователях из системной таблицы конфигурации.
  3. Выполним следующий скрипт (предварительно убедившись в наличии бэкапа средствами SQL):

-- Очистка таблицы пользователей 1С
TRUNCATE TABLE v8users;

-- Удаление записи о пользователях из таблицы Config
DELETE FROM Config WHERE FileName = 'users.usr';

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

Способ 2. Загрузка файла .dt в новую базу на SQL-сервере

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

Шаг 1. Создание пустой информационной базы

Ни в коем случае не создаем базу просто в консоли SQL Server. Правильный порядок действий требует участия кластера 1С. Проанализируем шаги:

  1. Откроем «Консоль администрирования серверов 1С:Предприятия».
  2. В ветке «Информационные базы» создадим новую базу.
  3. В параметрах укажем имя базы, адрес сервера SQL и установим флаг «Создать базу в случае отсутствия».
  4. Убедимся, что параметры Collation (сортировка) в SQL-сервере соответствуют требованиям 1С (обычно это Cyrillic_General_CI_AS).

Шаг 2. Подготовка SQL-сервера к приему данных

Загрузка .dt — это процесс массовой вставки (INSERT) миллионов строк. Посмотрим, как оптимизировать SQL Server 2012, чтобы процесс не прервался ошибкой:

Шаг 3. Загрузка через Конфигуратор

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

  1. Заходим в «Конфигуратор».
  2. Переходим в меню Конфигурация — Открыть конфигурацию. Только после появления дерева объектов (Справочники, Документы и т.д.) платформа корректно инициализирует структуру.
  3. Выбираем Администрирование — Загрузить информационную базу....
  4. Указываем наш файл .dt и подтверждаем замену данных.

Важные ограничения и рекомендации

Проанализируем возможные проблемы, с которыми можно столкнуться при работе с большими объемами данных:

Ошибки памяти (Out of memory)
Формат .dt плохо подходит для баз размером более 30–50 ГБ. При загрузке таких файлов 32-битный рабочий процесс 1С может завершиться аварийно. Если вы столкнулись с такой проблемой, рекомендуется использовать 64-битную версию платформы 1С или выполнять загрузку на сервере с большим объемом оперативной памяти.

Версионность платформы
Выясним причину возможных ошибок структуры: версия платформы, на которой выполняется загрузка, должна быть не ниже версии, в которой был создан файл .dt. В идеале они должны полностью совпадать. Если база была выгружена в версии 8.3.20.xxxx, не пытайтесь загрузить ее в 8.3.15.xxxx.

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

Таким образом, мы рассмотрели два пути решения: «хирургическое» вмешательство в SQL для сброса прав и «капитальный ремонт» через создание новой базы и загрузку .dt. Второй вариант надежнее при повреждении данных, но требует тщательной настройки СУБД для обеспечения стабильности процесса.

← На главную