Использование MS SQL Server 2005 с 1С:Предприятием v7.7

Опубликовано Опубликовано в рубрике 1C Программирование, MS SQL Server

Данная статья является изложением опыта запуска 1С:Предприятия v7.7 на MS SQL Server 2005. К сожалению, «штатно» 1С:Предприятие v7.7 работу с MS SQL Server 2005 не поддерживает, поэтому понадобятся некоторые ухищрения, которые и будут здесь описаны. Примечание: на данный момент имеется опыт успешной промышленной (не тестовой) эксплуатации 1С:Предприятия v7.7 с MS SQL 2005. При этом размер mdf-файла рабочей базы данных составляет порядка 10 Гб, количество одновременных подключений — порядка 60, конфигурация полностью самописная, активно используется технология 1С++ в части «прямых» запросов к базе данных.

При установке SQL сервера необходимо выставить режим авторизации «MixedMode» (т.е. Windows+SQL), и указать пароль для учетной записи «SA». Параметр «Server Collation» следует установить как «Cyrillic_General_CI_AS». Получить текущий Server Collation можно такой командой:

Если SQL сервер «не виден» с других компьютеров (1С выдаёт сообщение «SQL-сервер не существует, или отсутствует доступ.»), следует разрешить удаленные соединения в SQL Server Surface Area Configuration. Меню «Пуск» — «Программы» — «Microsoft SQL Server 2005» — «Configuration Tools» — «SQL Server Surface Area Configuration». Выбрать ссылку «Surface Area Configuration for Services and Connections», в дереве выбрать элемент «Remote Connections».

Если у вас MS SQL Server 2005 Express Edition, в 1С в «Параметрах базы данных SQL» нужно указывать не просто имя сервера, а Имя_Сервера\SQLEXPRESS.

В свойствах базы данных на SQL Server необходимо поставить Compatibility Level «SQL Server 2000(80)». Это можно сделать в Microsoft SQL Server Management Studio Express (меню «Пуск» — «Программы» — «Microsoft SQL Server 2005» — «SQL Server Management Studio Express CTP»). Примечание: база данных может быть создана на Microsoft SQL Server 2000, и перенесена на Microsoft SQL Server 2005 через простой Detach — Attach, можно также через Backup — Restore. Однако простого пути для возврата базы назад (на MS SQL 2000) уже не будет.

Получить текущий Compatibility Level базы данных можно и такой командой:

Установить Compatibility Level базы данных в «SQL Server 2000(80)» можно так:

Если возникают проблемы с подключением к базе MS SQL 2005, просмотрите настройки протоколов в «SQL Server Configuration Manager». Меню «Пуск» — «Программы» — «Microsoft SQL Server 2005» — «Configuration Tools» — «SQL Server Configuration Manager».

Поскольку 1С v7.7 штатно не поддерживает MS SQL 2005, вы получите сообщение «Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия!». Чтобы устранить это, необходимо изменить BkEnd.dll следующим образом (для 21-го релиза 1С):

Для 25-го релиза 1С:

Для 26-го и 27-го релизов 1С:

Для возможности коллективной работы в базе данных (одновременной работы нескольких пользователей) необходим режим Multiple для базы данных («Properties — Options — State — Restrict access» — «Multiple»).

Возможно, для коллективной работы в базе данных (одновременной работы нескольких пользователей) могут потребоваться дополнительные изменения в BkEnd.dll, которые можно произвести с помощью Unofficial Service Pack v2.13.24 для 24 релиза 1С (он работает и на 25 релизе), установив флажок «Разрешать другим пользователям входить в базу (SQL)» на вкладке «Защита». Эти изменения можно произвести и вручную (для 25-го релиза 1С):

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

При работе на базе MS SQL 2005 может возникнуть проблема с автонумерацией документов (при интерактивном создании нового документа номер присваивается некорректно), причём проблема эта воспроизводится не всегда. Чтобы обойти эту проблему, можно поместить в процедуру «ПриЗаписи» всех документов код, подобный следующему:

Как обойти подводные камни установки

При попытке соединиться с базой 1С пишет следующее: «Требуется MS SQL Server версии 6.5 + service pack 5a или более старшая версия». Для решения возникающих проблем необходимо подправить файл bkend.dll:

(для 25 релиза платформы 1С).

В общем случае правильный порядок установки 1С в связке с Microsoft SQL Server 2005 следующий. При установке Microsoft SQL Server 2005 необходимо выставить режим авторизации «MixedMode» (Windows+SQL), и указать пароль для учетной записи «SA». Параметр «Server Collation» следует установить как «Cyrillic_General_CI_AS». Важный момент – имя базы данных не может начинаться с цифры, например «1CBase» будет некорректным названием и вызовет ошибки при подключении.

Если SQL Server 2005 недоступен с других компьютеров (1С выдаёт сообщение «SQL-сервер не существует, или отсутствует доступ»), следует разрешить удаленные соединения в SQL Server Surface Area Configuration. Меню «Пуск» — «Программы» — «Microsoft SQL Server 2005» — «Configuration Tools» — «SQL Server Surface Area Configuration». Выбрать ссылку «Surface Area Configuration for Services and Connections», в дереве выбрать элемент «Remote Connections».

Если у вас установлен Microsoft SQL Server 2005 Express Edition, в 1С в «Параметрах базы данных SQL» нужно указывать не просто имя сервера, а Имя_Сервера\SQLEXPRESS.

В свойствах базы данных на SQL Server необходимо поставить Compatibility Level «SQL Server 2000(80)». Это можно сделать в Microsoft SQL Server Management Studio Express (меню «Пуск» — «Программы» — «Microsoft SQL Server 2005» — «SQL Server Management Studio Express CTP»). Примечание: база данных может быть создана на Microsoft SQL Server 2000, и перенесена на Microsoft SQL Server 2005 через простой Detach — Attach, можно также через Backup — Restore. Однако простого пути для возврата базы назад (на MS SQL 2000) уже не будет.

Если возникают проблемы с подключением к базе MS SQL 2005, просмотрите настройки протоколов в «SQL Server Configuration Manager». Меню «Пуск» — «Программы» — «Microsoft SQL Server 2005» — «Configuration Tools» — «SQL Server Configuration Manager».

Ссылки для скачивания бесплатных дистрибутивов Microsoft: