"1С"guru
Воскресенье, 21.03.2010, 01:22
Приветствую Вас Гость Если хотите иметь полный доступ РЕГИСТРИРУЙТЕСЬ ! | RSS
 
Главная Каталог статейРегистрацияВход
Меню сайта
Категории каталога
"1С" Предприятие [66]
статьи "1С"
"1С" Програмирование [26]
Разное об 1С [15]
Парус [17]
C++ [51]
Delphi [58]
Статьи о разном [8]

Наш опрос
Вы программист ?
Главная » Статьи » "1С" Програмирование

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

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


Материал для статьи предоставлен Midnight Ghost


Данная статья является изложением опыта запуска 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 можно такой командой:

SELECT CONVERT (varchar, SERVERPROPERTY('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 базы данных можно и такой командой:

EXEC sp_dbcmptlevel <DataBaseName>

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

EXEC sp_dbcmptlevel <DataBaseName>, 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С):

000D9B7A: 83 EB
000D9B7B: E8 15
000DAFE0: 83 EB
000DAFE1: E8 10

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

000D9C4A: 83 EB
000D9C4B: E8 15
000DB0B0: 83 EB
000DB0B1: E8 10

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

000D9CCA: 83 EB
000D9CCB: E8 15
000DB130: 83 EB
000DB131: E8 10

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

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

000DA023: 85 40
000DA024: C0 90

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

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

докДок=СоздатьОбъект("Документ."+Вид());
Если докДок.НайтиПоНомеру(НомерДок,ДатаДок)<>0 Тогда
Если докДок.ТекущийДокумент()<>ТекущийДокумент() Тогда
УстановитьНовыйНомер();
КонецЕсли;
КонецЕсли;


Источник: http://www.script-coding.info/SQL2005.html
Категория: "1С" Програмирование | Добавил: c1 (06.02.2010) | Автор: Midnight Ghost
Просмотров: 31 | Рейтинг: 0.0/0
Всего комментариев: 0

скачивать добавлять материал оставлять комментарии могут только зарегистрированные пользователи. .
[ Регистрация | Вход ]
Форма входа
Логин:
Пароль:
Поиск по сайту
РЕКОМЕНДУЕМ !!!
Статистика сайта

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright "1С" guru © 2010