Как установить и настроить MS SQL Server для работы с 1С:Предприятием 7.7 на Windows 7

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Запуск 1С:Предприятия 7.7 в связке с MS SQL Server на современных операционных системах (Windows 7 и выше) — задача нетривиальная, требующая понимания архитектуры старой платформы и механизмов работы драйверов баз данных. В этой статье мы подробно разберем, как подготовить среду для разработки, установить бесплатную версию SQL-сервера и обойти стандартные ошибки совместимости, чтобы вы могли практиковаться в написании прямых запросов с использованием компоненты 1С++.

Выбор версии SQL Server для обучения и разработки

Для домашних целей и практики оптимальным выбором будет линейка Express Edition. Рассмотрим основные варианты, которые подходят для работы с 1С 7.7:

  1. MS SQL Server 2005/2008 Express: Эти версии наиболее стабильно работают на Windows 7. Они бесплатны, позволяют создавать базы данных объемом до 4–10 ГБ (в зависимости от подрелиза) и вполне достаточны для учебных задач.
  2. Developer Edition: Начиная с версии 2016, эта редакция стала полностью бесплатной для целей разработки и тестирования. Однако для 1С 7.7 лучше ориентироваться на более ранние версии (2008 R2), так как они требуют меньше манипуляций при настройке соединения.

Важно помнить, что 1С 7.7 изначально проектировалась под MS SQL 6.5 и 2000. При использовании версий 2005 и выше платформа «из коробки» может вести себя нестабильно или выдавать ошибки при попытке подключения.

Решение проблемы с ODBC-драйвером

Самая частая ошибка, с которой сталкиваются пользователи при попытке запустить 1cv7s.exe на Windows 7: "Для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше". Проблема заключается в том, что системный драйвер в новых версиях Windows имеет версию выше, но 1С 7.7 не умеет корректно распознавать эти номера или ожидает специфические библиотеки от SQL 2000.

Разберем способы решения этой проблемы:

Способ 1: Использование «секретного релиза» (Патч BkEnd.dll)

Это самый цивилизованный и надежный метод. Под термином «секретный релиз» в сообществе 1С-программистов понимается модифицированная библиотека BkEnd.dll. Проанализируем, что именно делает этот патч:

Способ 2: Подмена системных библиотек

Существует методика замены файлов odbcbcp.dll, sqlsrv32.dll и sqlsrv32.rll в каталогах C:\Windows\System32 и C:\Windows\SysWOW64 на аналогичные файлы из состава Windows XP или Windows Server 2003. Мы не рекомендуем этот метод, так как он может нарушить работу других приложений в системе, использующих SQL-соединения.

Особенности настройки на 64-битных системах (x64)

Если на вашем ноутбуке установлена Windows 7 x64, следует учитывать, что 1С:Предприятие 7.7 является 32-битным приложением. Это накладывает определенные ограничения на настройку источников данных ODBC.

Для создания DSN (Data Source Name) нельзя использовать стандартный интерфейс из «Панели управления». Вместо этого выполним следующие действия:

  1. Перейдем в папку C:\Windows\SysWOW64\.
  2. Найдем и запустим файл odbcad32.exe. Это 32-битная версия диспетчера драйверов.
  3. На вкладке «Системный DSN» создадим подключение к вашей базе SQL, используя драйвер SQL Server.

Обход ошибки порядка сортировки

При первом запуске базы данных на SQL вы почти наверняка столкнетесь с ошибкой: «Порядок сортировки, установленный для базы данных, отличается от системного». Это связано с тем, что кодовые страницы в Windows 7 отличаются от тех, что были в Windows 98/2000, под которые писалась «семерка».

Выясним, как это исправить без переустановки операционной системы:

В каталоге установки 1С (обычно это C:\Program Files (x86)\1Cv77\BIN\) создадим пустой текстовый файл и переименуем его в OrdNoChk.res. Наличие этого файла в папке с исполняемым файлом платформы заставляет 1С игнорировать несовпадение кодировок. Это обязательное действие для корректной работы на современных ОС.

Настройка сетевых протоколов SQL Server

Для того чтобы 1С могла «увидеть» SQL-сервер, необходимо проверить настройки сетевых протоколов в SQL Server Configuration Manager. Проанализируем необходимые шаги:

  1. Зайдем в раздел SQL Server Network Configuration -> Protocols for SQLEXPRESS.
  2. Убедимся, что протоколы Named Pipes и TCP/IP находятся в статусе Enabled.
  3. После внесения изменений обязательно перезапустим службу SQL Server (SQLEXPRESS) через оснастку служб.

Работа с прямыми запросами через 1С++

Поскольку вашей целью является практика работы с 1С++, рассмотрим пример инициализации соединения. Прелесть 1С++ заключается в том, что она позволяет выполнять высокопроизводительные запросы на языке T-SQL, минуя тяжеловесный объектный движок платформы.

Типичный код для выполнения прямого запроса в 1С++ выглядит следующим образом:


// Создание объекта метаданных для типизации результатов
МетаДанные = СоздатьОбъект("MetaDataWork");

// Создание объекта Запрос
ТекстЗапроса = "
|SELECT 
|    Жур.IDDoc as [Док $Документ],
|    Жур.IDDocDef as Док_вид
|FROM 
|    _1SJournal as Жур
|WHERE 
|    Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~
|";

Запрос = СоздатьОбъект("ODBCRecordset");
Запрос.УстановитьТекстовыйПараметр("НачДата", ВыбНачДата);
Запрос.УстановитьТекстовыйПараметр("КонДата", ВыбКонДата);

ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
ТЗ.ВыбратьСтроку();

Обратите внимание на использование типизации (символ $). Это специфический синтаксис 1С++, который автоматически преобразует внутренние идентификаторы SQL (ID в формате 36-ричной системы) в привычные объекты 1С (ссылки на документы или справочники).

Итоги и рекомендации

Подведем итог нашей совместной работы по настройке среды:

Следуя этим шагам, вы получите полноценную рабочую среду для изучения 1С++ и работы с SQL-версией 1С 7.7 на вашем домашнем ноутбуке.

← На главную