Заметки сисадмина » 1С 7.7.027 на Windows & SQL 2008

Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

1С 7.7.027 на Windows & SQL 2008

Решил собрать в одной теме все “подводные камни” , которые могут вас ожидать, если вы задумаете перейти  на платформу 2008. Для начала хочу сказать, что 1С 7.7 прекрасно работает на Windows 2008 x32/x64 + MS SQL 2008 x32/x64.

Итак, начнем по порядку:
НАСТРОЙКА SQL 2008
ключевым моментом является правильная установка MS SQL 2008:

  • выбрать режим смешанной аутентификации и не забыть указать пароль sa;
  • при выборе локализации обязательно выберите в списке Cyrillic_General_CI_AS.

Далее все как обычно.

После установки необходимо создать sql пользователя  и назначить ему роль processadmin
это необходимо для того, чтобы с базой могли работать несколько пользователей


ВАЖНО: имя базы данных и имя пользователя не могут начинаться с цифры, равно как не должны иметь знаков пробелов

При создании базы меняем  владельца базы по умолчанию на созданного пользователя
в разделе Options устанавливаем Compatibility Level MS SQL 2000(80)  и Recovery Model Simple
На этом настройка SQL 2008 окончена.
Переходим к настройке ОС

Настройка Windows 2008 

Необходимо с сервера под управлением Windows 2003 переписать три библиотеки , которые находятся в %systemroot%\System32
sqlsrv32.dll, sqlsrv32.rll & odbcbcp.dll  и записать их  в %systemroot%\System32 и в %systemroot%\SysWOW64
для w2k8 x64 необходимо скопировать в оба каталога, для w2k8x32 только в %systemroot%\System32 соответственно. 
Для того, чтобы переписать эти файлы поверх имеющихся необходимо стать владельцем оригинальных файлов и добавить прав группе Adminisrators на Full Control.
На этом настройка Windows 2008 закончена.
Примечание: если в дальнейшем будут возникать проблемы с 1С, то это проблемы 1С а не ПО от Microsoft. Все проблемы можно будети решить путем правки библиотек 1С

Настройка клиетской части 1С 

Для начала работы нам понадобится оригинальная установленная 1С и любой hex редактор (я лично пользовался Hex Comparison)
Вы также можете найти в Интернет уже готовые пропатченные файлы (лично я предпочел сам отредактировать)
Итак, необходимо внести следующие изменения в файл BkEnd.dll

Код:

000D9CCA: 83 EB
000D9CCB: E8 15
000DB130: 83 EB
000DB131: E8 10
0018A79D: 75 EB

Фразу DUMP TRANSACTION %s WITH TRUNCATE_ONLY , которая находится по смещению 002856B0 заменить на фразу ALTER DATABASE %s SET RECOVERY SIMPLE

Ошибка “Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия!” исправляется первыми четыремя строками кода
Ошибка “Порядок сортировки, установленный для базы, отличается от системного!” исправляется 5-й строчкой кода.
Также можно положить в каталог с конфигурацией или в каталог 1Cv77\BIN файл OrdNoChk.prm
Этот метод является официальной рекомендацией 1С для устранения ошибок с сортировкой.
Примечание: Эти рекомендации будут работать если у вас на ОС установлена Russia в региональных настройках.

Ошибка
Код:

SQL State: 42000
Native: 156
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около ключевого слова “TRANSACTION”.

возникает при попытке загрузить данные в базу средствами 1С. Исправляется заменой фразы DUMP TRANSACTION… (исправлять в том случае, если не помогла установка параметра Recovery Model)

Установка клиента 1С на Windows Server 2008 x64
Устанавливается методом обыкновенного копирования с рабочей станции, где установлена 1С каталога  1Cv77

Централизованное обновление клиенской части 1С
После того как, Вы убедились в работоспособности произведенных изменений, встает вопрос как это централизованно изменить на рабочих станциях, чтобы не делать все вручную
Я пробовал создать msi пакет, но столкнулся с проблемой замены владельца на файлы sqlsrv32.*
Через msi  получилось сделать все, но файлы залоченные TrustedInstallers  не копировались.
Я решил проблему по другому – написал простенький логон скрипт:

Код:

@echo off

if not exist “%programfiles%\1Cv77” goto END ELSE goto START

:START

if “%allusersprofile%”==”C:\ProgramData” goto Vista
if “%allusersprofile%”==”C:\Documents and Settings\All Users” goto WINXP

:WINXP

rem *** Windows XP ***
net use n: /delete
net use n: /persistent:no \\<server>\<share>
xcopy n:\sqlsrv32.*  %windir%\system32\
rem xcopy n:\odbcbcp.dll %windir%\system32\
xcopy n:\1cv7s.exe “%programfiles%\1Cv77\BIN\” /y
xcopy n:\BkEnd.dll “%programfiles%\1Cv77\BIN\” /y
%systemroot%\regedit /s n:\1c.reg
net use n: /delete

goto END

:VISTA

rem *** Windows Vista & Windows Seven ***

takeown /F %windir%\system32\sqlsrv32.dll /A
takeown /F %windir%\system32\sqlsrv32.rll /A
takeown /F %windir%\system32\odbcbcp.dll /A
net use n: /delete
net use n: /persistent:no \\<server>\<share>
xcopy n:\sqlsrv32.*  %windir%\system32\ /y
rem xcopy n:\odbcbcp.dll %windir%\system32\ /y
xcopy n:\1cv7s.exe “%programfiles%\1Cv77\BIN\” /y
xcopy n:\BkEnd.dll “%programfiles%\1Cv77\BIN\” /y
%systemroot%\regedit /s n:\1c.reg
net use n: /delete
goto END

:END
exit

Примечание: Файл 1С.reg содержит информацию о путях к базам данных.
Для того, чтобы не было проблем с правами у пользователей 1С воспользовался Restricted Group в GPO, группе пользоватей 1С дал права локального администратора на время внесения изменений

p.s. все вышеописанное поможет вам избежать основных проблем, которые вощникают при установке 1С. Разнообразных описаний решения возникающих проблем достаточно много в сети Интернет

Leave a Reply