вторник, 7 сентября 2010 г.

Работаем в 1С:Предприятие 7.7 на Windows Vista и Windows 7

Все кто пробовал запустить 1С:Предприятие 7.7 на “новых” (нетрадиционных) операционных системах Microsoft Windows Vista и Windows 7 непременно наступал на грабли в виде ошибок “Порядок сортировки установленный для базы данных отличается от системного” и “Для доступа к базе данных требуется ODBC - драйвер для MS SQL Server версии 3.50.0303 или старше”.
Давайте попробуем разобраться, что делать с этими ошибками и как заставить 1С:Предприятие 7.7 работать на ОС Windows Vista и Windows 7.

1. Ошибка “Порядок сортировки установленный для базы данных отличается от системного”

К счастью, здесь все достаточно просто. Ввиду того, что Windows Vista и Windows 7 имеют отличия в системных кодировках перед Windows XP, а 1С:Предприятие 7.7 достаточно старый программный продукт, который уже не поддерживается разработчиками, на белый свет вылезла вышеозначенная ошибка. Совет тут прост, как две копейки: нужно использовать современные программные продукты, как то 1С:Предприятие 8. Но если все же очень хочется использовать 1С:Предприятие 7.7, то прошу обратить внимание на следующие два способа:
Внимание! Должна быть установлена платформа 1С:Предприятие 7.7 версии 7.70.027.
1 Способ
Шаг 1. Открыть нужную информационную базу в режиме Конфигуратор.
Шаг 2. Администрирование –> Кодовая страница ИБ
Шаг 3. В раскрывающемся списке выбрать Текущая системная установка и принять изменения.
Шаг 4. Разумеется, будет выполнена переиндексация базы и после сообщения об успешном завершении операции можно закрыть Конфигуратор и запустить нашу многострадальную информационную базу в режиме Предприятие.
Внимание! Теперь наша база сконфигурирована для работы на последних операционных системах Windows Vista и Windows 7. Для того чтобы запустить информационную базу на Windows XP нам потребуется обратная операция. По своему опыту настоятельно не рекомендую баловаться этой операцией и менять кодировку туда-сюда, частенько приводит к нехорошим и печальным последствиям.
Также этот способ не будет работать, если подопытная база сетевая и к ней подключаются клиенты с Windows Vista/7 и Windows XP одновременно. Разумеется, информационная база будет работать или на старых ОС или новых.
2 Способ
Этот способ более универсален и не имеет видимых ограничений и неприятных последствий для информационной базы и данных. Теоретически может неправильно происходить сортировка строк в отчете, однако на практике замечено этого не было и все работает стабильно и без проблем.
Суть способа заключается в создании файла ordnochk.prm и размещение его в папке BIN (папка программных файлов платформы 1С:Предприятие 7.7) или в папке с информационной базой, в зависимости от необходимого результата. Так находясь в папке BIN этот файл распространяет свое действие на все информационные базы запускаемые под этой платформой, а если он находится в папке с конкретной информационной базой, то его действие будет распространяться только на конкретную информационную базу.
Создаваемый файл поддерживается платформой 1С:Предприятие 7.7, начиная с версии 7.70.026. Наличие файла дает указание платформе 1С:Предприятие 7.7 не проверять порядок сортировки. Как уже говорилось выше, теоретически это может вызвать неправильную сортировку по алфавиту, например, в отчетах, однако практически такого эффекта не встретил ни разу.
Этот способ является единственным, который позволяет использовать информационную базу при сетевом доступе клиентов с операционными системами Windows Vista/7 и Windows XP.
Итак:
Шаг 1. Нужно создать пустой файл с именем ordnochk.prm. Для этого можно открыть блокнот, и сохранить пустое содержимое: Файл –> Сохранить –> Выбрать тип файла Все файлы и указать имя файла ordnochk.prm.
Шаг 2. Поместить свежесозданный файл в каталог BIN платформы 1С:Предприятие 7.7 и в каталог с базой, в зависимости от необходимого результата (как говорилось выше).
Шаг 3. Запустить информационную базу.

2. Ошибка “Для доступа к базе данных требуется ODBC - драйвер для MS SQL Server версии 3.50.0303 или старше”

Ошибка возникает при использовании версии платформы 1С:Предприятие 7.7 использующей клиент-серверный режим, то есть при хранении информационной базы с Microsoft SQL Server 2000. Причина ошибки в том, что начиная с Windows Vista в состав операционной системы стали входить ODBC-драйвера версии отличной от Windows XP. Именно эти ODBC-драйвера, входящие в состав операционной системы, и использует платформа 1С:Предприятие 7.7 для организации соединения с Microsft SQL Server 2000.
Решение чрезвычайно простое: нужно всего лишь заменить следующие файлы на Windows Vista/7 на их версии, взятые из Windows XP:
  • sqlsrv32.dll
  • sqlsrv32.rll
  • odbcbcp.dll
Файлы эти хранятся тут (и для Windows Vista/7, и для Windows XP): C:\Windows\System32
Важно! Поскольку Windows Vista/7 защищает свои системные файлы, скопировать вышеуказанные библиотеки в системную директорию сразу не получится. Для копирования ваша учетная запись должна иметь права на редактирование системных файлов в папке C:\Windows\System32.
Давать права своей учетной записи на запись на всю папку C:\Windows\System32 не рационально из соображений безопасности. Поэтому нужно дать права только конкретным файлам, указанным выше:
Прежде всего нужно стать владельцем этого файла:
Шаг 1. Найти необходимый нам файл в папке Windows\System32, щелкнуть правой кнопкой мыши и выбрать Свойства.
Шаг 2. Перейти на вкладку Безопасность и нажать кнопку Дополнительно.
Шаг 3. Перейти на вкладку Владелец, нажать Изменить и выбрать свою учетную запись в качестве владельца.
Шаг 4. Принять изменения.
Теперь можно добавить права на изменение (или полные права) на этот файл:
Шаг 5. Найти необходимый нам файл в папке Windows\System32, щелкнуть правой кнопкой мыши и выбрать Свойства.
Шаг 6. Перейти на вкладку Безопасность и нажать кнопку Изменить.
Шаг 7. Добавить в список свою учетную запись и добавить, например, полные права.
Шаг 8. Применить все изменения.
После этого можно заменять файлы на Windows Vista/7 соответствующими файлами Windows XP.
Внимание! Если на компьютере есть программные продукты, которые используют данный ODBC-драйвер могут быть проблемы, но как правило их не возникает и все работает нормально.

Заключение

Истинная преданность программным продуктам это просто прекрасно! Однако, пожалуйста, идите в ногу со временем и пользуйтесь современными программными продуктами. Хотя бы потому, что у старых программных продуктов стоимость владения резко возрастает, то есть использовать их дорого и не эффективно (и небезопасно). 
Спасибо, что дочитали до конца :)

22 комментария:

hazzik комментирует...

Не проще в режиме совместимости с XP запустить?:)

Evgeny Vekovshinin комментирует...

К сожалению, вашеописанные проблемы не решаются путем запуска в режиме совместимости с Windows XP.
Уж так написана была платформа 1С:Предприятие 7.7 7.70.27 в далеком 2005 году...

Алексей комментирует...

у меня не работает с файликом ordnochk.prm. Продолжает писать, что порядок сортировки, установленных для базы данных, отличается от системного...Подскажи, почему так? Дело в том, что каждую базу перекодировать, тоже не резонно, т.к. очень много их

Evgeny Vekovshinin комментирует...

1. Прежде всего убедитесь, что вы создали файл ordnochk.prm а не ordnochk.prm.txt
2. Что файл называется именно ordnochk.prm (английскими буквами, без случайных русских символов)
3. Убедиться, что каталог BIN платформы содержит этот файл (для этого запустите Проводник от имени Администратора с помощью контекстного меню)
4. Убедитесь, что у вас именно 7.70.027 версия ядра

p.s.
Еще не было случая, чтобы этот файл не воспринимался 1С:Предприятие 7.70.027

Анонимный комментирует...

все отлично работает!!! надо токо проявить немного внимательности..)))

Сергей комментирует...

Не знаю почему но у меня в Windows 7 не получается таким образом запустить 1С 7.7.

Evgeny Vekovshinin комментирует...

Сергей, проверьте еще раз порядок действий, пожалуйста, описанная последовательность действий работает.

Анонимный комментирует...

большое спасибо! все работает)))

Анонимный комментирует...

привет, у меня головоломка по установке 1с82 и ее ключей так называемых hasp на win 7 x32, голову сломала. не видит ключ-на одном компе, помоги))))))

Evgeny Vekovshinin комментирует...

На Win7 32 все работает прекрасно. Cледует воспользоваться драйверами HASP 4.102 http://www.aladdin-rd.ru/support/downloads/get?ID=3761 Предварительно конечно следует удалить все драйвера Hasp Device Driver, которые были установлены и перезагрузить компьютер.

Анонимный комментирует...

Вставил файлы. базы работают но при попытке загрузить обмен из распределённой базы (там стоит ХР) Выскакивает предупреждение о порядке Вставил файлы. базы работают но при попытке загрузить обмен из распределённой базы (там стоит ХР) Выскакивает предупреждение о порядке сортировкии

Сергей комментирует...

При второй ошибке можно пофиксить BkEnd - http://www.1cpp.ru/forum/YaBB.pl?num=1297333590

Или взять фиксенный - http://infostart.ru/public/82018/ - но c ним у нас в какое-то время возникали трудности.

Анонимный комментирует...

спасибо большое

Анонимный комментирует...

Если версия 1С 7.70.025 сетевая, установлены разные ОС (Windows XP, Windows7), то ничего не помогает! Или все-таки есть варианты?

Анонимный комментирует...

А что делать если у меня версия 7.70.24?

Анонимный комментирует...

А что делать если у меня версия 7.70.021?

Анонимный комментирует...

А что делать если у меня версия 7.70.021 и хочу сделать сетевой под Win7 и XP?

Evgeny Vekovshinin комментирует...

Ничего уже не поделать. Очень старый программный продукт.

Анонимный комментирует...

спс за ответ!!

Ирина комментирует...

Евгений,большое Вам спасибо! Благодаря Вашему профессионализму мне не пришлось вызывать платного программиста, чтобы он запустил 1С:Предприятие 7.7 в Windows7 (сломался н/бук, где была установлена Windows ХР, а на ней 1С7.7). Копия базы существовала, я записала её на стационарный комп. и попыталась запустить: выскакивала ошибка“Порядок сортировки установленный для базы данных отличается от системного”. До тех пор, пока не воспользовалась Вашей инструкцией - способом №1 по устранению вышеназванной ошибки: "выбрать текущую системную установку".
Теперь буду Вам заглядывать в Ваш блог, Вы не против?

Анонимный комментирует...

Спасибо за статью. У меня Windows 32- bit. Если у меня не сетевая программа , а локальная, какой способ 1 или 2 мне нужно применить.
Я так поняла, что надо один из них.
Жду ответа.

Taalay Chodoyev комментирует...

спасибо!