← На главную
Перенос информационных баз 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 в клиент-серверном варианте требуются следующие компоненты:
- База данных на сервере MS SQL (файл .bak): содержит фактические данные справочников, документов, регистров и проводок в виде таблиц со служебными именами (например,
SC123, DH456, _1SJOURN).
- Файл метаданных
1Cv7.MD: файл описания конфигурации (структура объектов, модули, формы, права и интерфейсы), находящийся в локальном или сетевом каталоге базы.
- Словарь данных
1Cv7.DDS: текстовый файл, обеспечивающий сопоставление понятных имен объектов из 1Cv7.MD с физическими таблицами и колонками в MS SQL.
- Каталог пользователей
usrdef: содержит файл users.usr со списком пользователей, паролями и назначенными правами.
Если просто развернуть .bak на SQL-сервере и создать пустую конфигурацию, 1С не сможет сопоставить таблицы, так как у нее не будет соответствующего файла 1Cv7.MD и словаря 1Cv7.DDS.
Способ 1. Штатный перенос базы при наличии полного каталога ИБ
Рассмотрим основной и самый надежный способ переноса, когда у нас есть файл резервной копии SQL (.bak) и исходный каталог информационной базы, снятые в один и тот же момент времени.
- Восстановление базы в MS SQL: развернем файл .bak средствами SQL Server Management Studio (SSMS) в новую базу данных на целевом сервере.
- Подготовка каталога: создадим новую папку на сервере или локальном диске (например,
D:\Bases1C\MyBase) и скопируем туда файлы 1Cv7.MD, 1Cv7.DDS, а также подкаталог usrdef из старой базы.
- Добавление базы в список 1С: запустим 1С 7.7, нажмем «Добавить», укажем наименование базы и путь к созданной папке. В поле выбора типа базы выберем «SQL Сервер».
- Настройка параметров связи с SQL: запустим базу в режиме «Конфигуратор». В меню «Администрирование» откроем «Параметры базы данных SQL» и заполним реквизиты:
- Имя сервера базы данных (SQL Server);
- Имя базы данных на SQL;
- Пользователь SQL (например, sa или специально созданный пользователь);
- Пароль пользователя SQL.
- Проверка запуска: сохраним параметры, закроем Конфигуратор и запустим базу в режиме «1С:Предприятие».
Способ 2. Восстановление базы при отсутствии словаря данных (только .bak и 1Cv7.MD)
Проанализируем распространенную ситуацию: имеется только бэкап базы данных .bak и файл конфигурации 1Cv7.MD, а файл словаря 1Cv7.DDS утерян или не соответствует бэкапу (из-за чего при запуске возникает ошибка Нарушена структура таблицы 1SJOURN или открываются пустые журналы).
Разберем по шагам алгоритм принудительной генерации словаря данных:
- Создание каталога: создадим пустую папку для базы и скопируем туда имеющийся файл
1Cv7.MD.
- Создание пустой базы на SQL: создадим на сервере MS SQL пустую базу данных (например,
TestBase).
- Первичное подключение: добавим базу в список 1С 7.7 как базу SQL и откроем ее в режиме «Конфигуратор».
- Привязка к пустой SQL базе: в параметрах базы данных SQL укажем адрес сервера и имя созданной пустой базы (
TestBase).
- Инициализация структуры и генерация DDS: откроем дерево метаданных конфигурации, внесем любое фиктивное изменение (например, изменим длину любой неиспользуемой константы или комментария к ней) и нажмем «Сохранить конфигурацию» (значок дискеты).
- Подтверждение перестроения: при сохранении платформа выдаст предупреждение о том, что словарь данных отсутствует или не соответствует структуре. Согласимся с предупреждением и подтвердим создание словаря данных. Платформа создаст файл
1Cv7.DDS и сформирует пустую структуру таблиц в SQL.
- Первый запуск: запустим базу один раз в режиме «1С:Предприятие», после чего закроем программу.
- Восстановление рабочих данных: в среде SSMS восстановим наш рабочий бэкап .bak поверх этой базы SQL (с опцией
WITH REPLACE / Overwrite the existing database).
- Проверка работоспособности: запустим 1С в режиме предприятия. Структура метаданных и физические таблицы совпадут, и все документы и журналы будут корректно отображаться.
Обязательные действия после восстановления базы
После успешного запуска базы из бэкапа выполним регламентные процедуры для исключения ошибок с актуальностью итогов и отображением периодов в журналах:
- Тестирование и исправление: запустим базу в режиме «Конфигуратор», откроем меню «Администрирование» — «Тестирование и исправление ИБ». Отметим пункты:
- Проверка физической целостности;
- Реиндексация;
- Пересчет итогов;
- Проверка логической целостности.
Нажмем «Выполнить».
- Управление итогами: зайдем в режиме «1С:Предприятие» под учетной записью с административными правами в меню «Операции» — «Управление бухгалтерскими итогами». Установим расчетный период на требуемый квартал и нажмем «Открыть период» или выполним полный пересчет итогов.
- Настройка интервала журналов: если журналы документов открываются пустыми, проверим настройки в меню «Сервис» — «Параметры» (вкладки «Общие» и «Бухгалтерия») и установим рабочий интервал дат, соответствующий периоду введенных в базу документов.
Особенности работы 1С 7.7 на современных версиях MS SQL Server
При использовании MS SQL Server 2005, 2008 R2 и более новых версий учтем технические ограничения движка 1С 7.7:
- Порядок сортировки (Collation): база данных в MS SQL должна быть создана с кодировкой
Cyrillic_General_CI_AS. Если платформа выдает ошибку несоответствия порядка сортировки, поместим пустой текстовый файл с именем OrdNoChk.prm в каталог BIN установленной платформы 1С 7.7.
- Учетные записи пользователей: если каталог
usrdef отсутствовал, создадим пользователей заново в Конфигураторе через меню «Администрирование» — «Пользователи», сопоставив им роли и интерфейсы из конфигурации.