среда, 14 июля 2010 г.

Установка и настройка 1С 7.7 + MS SQL 2005

Те кто сталкивался с работой 1С 7.7 совместно с MS SQL, знают, что с помощью штатных средств 1С использует возможности MS SQL очень ограничено (достаточно вспомнить блокировки таблиц). Без использования внешних модулей переход на SQL версию не даст существенного увеличения производительности. Однако иногда такая связка может быть жизненно необходима. Например, когда надо обойти ограничение формата DBF на максимальный размер файла 2Гб. Существует несколько нюансов о которых следует знать при установке и настройке MS SQL для совместной работы с 1C 7.7.

1. 1С аутентифицируется средствами SQL сервера. Поэтому на этапе выбора режима аутентификации при установке MS SQL выберите “Смешанный режим” (“Mixed Mode”) и укажите пароль для пользователя sa.
2. Во время первоначальной установки сервера, надо выбрать сопоставление кодировки (collation) Cyrillic_General и порядок сортировки Case Insensitive, Accent Sensitive т.е. Cyrillic_General_CI_AS . В независимости от порядка сортировки базы данных, 1С использует порядок сортировки установленный на сервере. Изменить порядок сортировки в дальнейшем можно, но достаточно нетривиально. Если сортировка будет выставлена неправильно, при попытке загрузить данные, вы получите сообщение: “Порядок сортировки, установленный для базы данных, отличается от системного”.
3. При создании базы данных на сервере MS SQL 2005, укажите совместимость БД с MS SQL 2000 (8.0).
4. Официально 1С не поддерживает работу 7-ки с MS SQL 2005. Для того чтобы 1С могла подключаться к MS SQL 2005, вам понадобится пропатчить BkEnd.dll. В зависимости от релиза 1С делается это следующим образом:
Для 21-ого релиза:
000D9B7A: 83 EB
000D9B7B: E8 15
000DAFE0: 83 EB
000DAFE1: E8 10

Для 25-ого релиза:
000D9C4A: 83 EB
000D9C4B: E8 15
000DB0B0: 83 EB
000DB0B1: E8 10

Для 26 и 27-ого релиза:
000D9CCA: 83 EB
000D9CCB: E8 15
000DB130: 83 EB
000DB131: E8 10


(С) http://pokatashkin.com/archives/1047

Изменение правил сопоставления (collation) и порядка сортировки в MS SQL 2005

Сопоставление (collation) в SQL – это ряд правил, согласно которым сортируются и сравниваются данные. Эти правила определяют порядок сортировки символьных данных, в зависимости от регистра, надстрочных знаков (акцента), символьных типов Kana, ширины символов.

1. Регистр
Если «A» и «a»,» B» и «b», и т.д. считаются одинаковыми, это называется независимостью от регистра. Компьютер считает «A» и «a» различными символами, поскольку им соответствуют разные коды ASCII (ASCII-значение буквы «A» равно 65, в то время как «a» – 97).
2. Надстрочные знаки (акцент)
Если «a» и «á», «o» и «ó» считаются одинаковыми, это называется нечувствительностью к акценту. Компьютер считает «a» и «á» разными, поскольку для них используются различные коды ASCII (ASCII значение «a» равно 97, а символа «á» – 225).
3. Символьные типы Kana
Когда японские kana символы, Hiragana и Katakana, считаются разными, это называют Kana чувствительностью.
4. Ширина символов
Когда однобайтный символ (полуширина) и тот же самый символ, представленный двумя байтами (полная ширина), считаются разными, это называется чувствительностью к ширине.

В MS SQL Server 2005 правила сопоставления можно задать на уровне:

* Сервера
* Базы данных
* Столбца
* Выражения

На уровне сервера правила сопоставления задаются во время первоначальной установки SQL сервера. Выбранное правило сопоставления применяется для системных баз данных. После того как правило сопоставления применено к любому объекту отличному от базы данных или столбца, вы не сможете изменить сопоставление, кроме как с помощью удаления и пересоздания объекта.

В SQL Server 2000 можно было изменить сопоставление на уровне сервера без переустановки сервера. Для этого надо запустить утилиту Rebuild Master (RebuildM.exe), которая расположена в папке Program Files\Microsoft SQL Server\80\Tools\BINN.

В SQL Server 2005 утилита RebuildM.exe не поддерживается. Поэтому для изменения сопоставления вам понадобится перестроить системную базу данных master с помощью параметра REBUILDDATABASE в Setup.exe. Для этого сделайте резервную копию БД, отсоедините все пользовательские БД и выполните:

start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=Cyrillic_General_CI_AS

INSTANCENAME – имя экземпляра SQL
SAPWD - пароль пользователя sa
SQLCOLLATION – новое сопоставление

(С) http://pokatashkin.com/archives/1069