Как правильно перенести и подключить базу 1С 7.7 на MS SQL Server из бэкапа .bak

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

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

Разберем детально особенности архитектуры 1С 7.7, проанализируем возможные ошибки при подключении базы из бэкапа и рассмотрим рабочие способы переноса информационной базы на новый сервер MS SQL.

Архитектура хранения данных 1С 7.7 на MS SQL Server

Для успешного запуска базы 1С 7.7 в клиент-серверном варианте требуются следующие компоненты:

  1. База данных на сервере MS SQL (файл .bak): содержит фактические данные справочников, документов, регистров и проводок в виде таблиц со служебными именами (например, SC123, DH456, _1SJOURN).
  2. Файл метаданных 1Cv7.MD: файл описания конфигурации (структура объектов, модули, формы, права и интерфейсы), находящийся в локальном или сетевом каталоге базы.
  3. Словарь данных 1Cv7.DDS: текстовый файл, обеспечивающий сопоставление понятных имен объектов из 1Cv7.MD с физическими таблицами и колонками в MS SQL.
  4. Каталог пользователей usrdef: содержит файл users.usr со списком пользователей, паролями и назначенными правами.

Если просто развернуть .bak на SQL-сервере и создать пустую конфигурацию, 1С не сможет сопоставить таблицы, так как у нее не будет соответствующего файла 1Cv7.MD и словаря 1Cv7.DDS.

Способ 1. Штатный перенос базы при наличии полного каталога ИБ

Рассмотрим основной и самый надежный способ переноса, когда у нас есть файл резервной копии SQL (.bak) и исходный каталог информационной базы, снятые в один и тот же момент времени.

  1. Восстановление базы в MS SQL: развернем файл .bak средствами SQL Server Management Studio (SSMS) в новую базу данных на целевом сервере.
  2. Подготовка каталога: создадим новую папку на сервере или локальном диске (например, D:\Bases1C\MyBase) и скопируем туда файлы 1Cv7.MD, 1Cv7.DDS, а также подкаталог usrdef из старой базы.
  3. Добавление базы в список 1С: запустим 1С 7.7, нажмем «Добавить», укажем наименование базы и путь к созданной папке. В поле выбора типа базы выберем «SQL Сервер».
  4. Настройка параметров связи с SQL: запустим базу в режиме «Конфигуратор». В меню «Администрирование» откроем «Параметры базы данных SQL» и заполним реквизиты:
    - Имя сервера базы данных (SQL Server);
    - Имя базы данных на SQL;
    - Пользователь SQL (например, sa или специально созданный пользователь);
    - Пароль пользователя SQL.
  5. Проверка запуска: сохраним параметры, закроем Конфигуратор и запустим базу в режиме «1С:Предприятие».

Способ 2. Восстановление базы при отсутствии словаря данных (только .bak и 1Cv7.MD)

Проанализируем распространенную ситуацию: имеется только бэкап базы данных .bak и файл конфигурации 1Cv7.MD, а файл словаря 1Cv7.DDS утерян или не соответствует бэкапу (из-за чего при запуске возникает ошибка Нарушена структура таблицы 1SJOURN или открываются пустые журналы).

Разберем по шагам алгоритм принудительной генерации словаря данных:

  1. Создание каталога: создадим пустую папку для базы и скопируем туда имеющийся файл 1Cv7.MD.
  2. Создание пустой базы на SQL: создадим на сервере MS SQL пустую базу данных (например, TestBase).
  3. Первичное подключение: добавим базу в список 1С 7.7 как базу SQL и откроем ее в режиме «Конфигуратор».
  4. Привязка к пустой SQL базе: в параметрах базы данных SQL укажем адрес сервера и имя созданной пустой базы (TestBase).
  5. Инициализация структуры и генерация DDS: откроем дерево метаданных конфигурации, внесем любое фиктивное изменение (например, изменим длину любой неиспользуемой константы или комментария к ней) и нажмем «Сохранить конфигурацию» (значок дискеты).
  6. Подтверждение перестроения: при сохранении платформа выдаст предупреждение о том, что словарь данных отсутствует или не соответствует структуре. Согласимся с предупреждением и подтвердим создание словаря данных. Платформа создаст файл 1Cv7.DDS и сформирует пустую структуру таблиц в SQL.
  7. Первый запуск: запустим базу один раз в режиме «1С:Предприятие», после чего закроем программу.
  8. Восстановление рабочих данных: в среде SSMS восстановим наш рабочий бэкап .bak поверх этой базы SQL (с опцией WITH REPLACE / Overwrite the existing database).
  9. Проверка работоспособности: запустим 1С в режиме предприятия. Структура метаданных и физические таблицы совпадут, и все документы и журналы будут корректно отображаться.

Обязательные действия после восстановления базы

После успешного запуска базы из бэкапа выполним регламентные процедуры для исключения ошибок с актуальностью итогов и отображением периодов в журналах:

  1. Тестирование и исправление: запустим базу в режиме «Конфигуратор», откроем меню «Администрирование» — «Тестирование и исправление ИБ». Отметим пункты:
    - Проверка физической целостности;
    - Реиндексация;
    - Пересчет итогов;
    - Проверка логической целостности.
    Нажмем «Выполнить».
  2. Управление итогами: зайдем в режиме «1С:Предприятие» под учетной записью с административными правами в меню «Операции» — «Управление бухгалтерскими итогами». Установим расчетный период на требуемый квартал и нажмем «Открыть период» или выполним полный пересчет итогов.
  3. Настройка интервала журналов: если журналы документов открываются пустыми, проверим настройки в меню «Сервис» — «Параметры» (вкладки «Общие» и «Бухгалтерия») и установим рабочий интервал дат, соответствующий периоду введенных в базу документов.

Особенности работы 1С 7.7 на современных версиях MS SQL Server

При использовании MS SQL Server 2005, 2008 R2 и более новых версий учтем технические ограничения движка 1С 7.7:

  1. Порядок сортировки (Collation): база данных в MS SQL должна быть создана с кодировкой Cyrillic_General_CI_AS. Если платформа выдает ошибку несоответствия порядка сортировки, поместим пустой текстовый файл с именем OrdNoChk.prm в каталог BIN установленной платформы 1С 7.7.
  2. Учетные записи пользователей: если каталог usrdef отсутствовал, создадим пользователей заново в Конфигураторе через меню «Администрирование» — «Пользователи», сопоставив им роли и интерфейсы из конфигурации.
← На главную