Вот здесь найдено очередное описание. Сам ничего патчить не стал - взял проверенное коллегами решение. Но для понимания механизмов - полезно ознакомиться.
"Исключительно в образовательных целях расскажем Вам о том, как запустить 1С версии 7.7 релиз 27 на Microsoft SQL Server 2008. Для того, чтобы разобраться, каким образом добиться желаемого результата нам понадобились:
- MS SQL Server 2008
- Soft ICE
- W32Dasm10
- HexEdit.
Посидев немного в профайлере (profiler) MS SQL Server 2008 и Soft ICE’е было обнаружено, что после запроса:
select
504,c.name,c.description,c.definition from master.dbo.syscharsets c
where c.id = convert(tinyint, databasepropertyex ( db_name() ,
'sqlcharset'))
приложение 1С отключается от базы данных с сообщением:
Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия.
Оказалось, что результат выполнения строки запроса отличается для MS SQL Server 2000 и MS SQL Server
2008. Таким образом, для дальнейшей нормальной работы необходимо обойти
проверку результата или каким-то образом её фальсифицировать.
Разумеется, был выбран первый вариант, как наиболее быстрый в
реализации. Тут нам помогли: Soft ICE, Hex Edit и Profiler MS SQL Server 2008.
Следует заметить, что данная проверка осуществляется в двух различных
местах: при запуске конфигуратора и при запуске 1С:предприятия.
То есть, условный переход необходимо исправить на безусловный в двух местах. Это делается следующим образом:
- Открываем BkEnd.dll из пакета 1C версии 7.7 релиз 27 в любом шестнадцатиричном редакторе (HexEdit).
- Находим последовательность “74 0С С7 45 08 DA 73 00” и заменяем в ней “74” на “EB”. Это обход проверки для Конфигуратора 1С.
- Затем находим последовательность “74 07 BB DA 73 00 00 EB” и заменяем в ней “74” на “EB”. Это обход проверки для “1С:Предприятия”.
Кроме того, при сохранении MD файла 1С выполняет следующую команду:
DUMP TRANSACTION WITH TRUNCATE_ONLY.
Она не поддерживается в MS SQL Server 2008. Для корректной работы 1С необходимо заменить упомянутую команду на:
--MP TRANSACTION WITH TRUNCATE_ONLY
в любом текстовом редакторе (файл BkEnd.dll). И обрезание transaction log внести в регламент работы с базой данных 1С.
Внимание, не забудьте пользователю, под которым 1С заходит в базу данных, дать права process admin’а - это обеспечит возможность работы в многопользовательском режиме."
Комментариев нет:
Отправить комментарий