Содержание

Установка 1С:Предприятие 7.7 на Microsoft SQL Server 2008 R2

Официально, платформа 1С:Предприятие 7.7 работает только с MS SQL Server 2000. Но с помощью небольших манипуляций можно организовать стабильную работу и с последней, на момент написания статьи, версий Microsoft SQL Server 2008 R2. Ниже представлена пошаговая настройка связки 1С:Предприятие 7.7 + MS SQL Server 2008 R2 + Microsoft Windows Server 2008 R2 (Справедливо и для других операционных систем семейства Windows). Итак:

Установка Windows Server 2008 R2

В качестве серверной ОС используем Microsoft Windows Server 2008 R2. Об установке этой системы подробно можно прочитать в статье «Установка Windows Server 2008 R2».

Установка SQL Server 2008 R2

Далее устанавливаем Microsoft SQL Server 2008 R2. Во время установки выбираем:

Очень подробно об установке SQL Server я писал в статье «Установка Microsoft SQL Server 2008 R2».

Создание новой базы данных в SQL Server 2008 R2

Добавляем нового пользователя в SQL Server 2008 R2. Обязательно даем ему роль processadmin, иначе будем натыкаться на ошибку:

«Доступ к базе возможен только из одного каталога информационной базы»

Затем создаем новую базу данных, указав:

О том как это сделать читайте в статье «Добавление пользователя и создание новой базы данных в Microsoft SQL Server 2008 R2».

Настройка Windows Server 2008 R2

Теперь необходимо заменить оригинальные фалы odbcbcp.dll, sqlsrv32.dll и sqlsrv32.rll (скачать все файлы одним архивом) в каталогах C:\Windows\System32 и в C:\Windows\SysWOW64 файлами из каталога C:\Windows\System32 под управлением Windows Server 2003 (в архиве). Чтобы сделать это необходимо стать владельцем этих файлов и получить права на их редактирование . Для этого заходим в C:\Windows\System32 находим файл odbcbcp.dll, кликаем по нему правой кнопкой, выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность», нажимаем «Дополнительно».

В появившемся окне переходим на вкладку «Владелец» , нажимаем «Изменить» , выбираем текущего пользователя и жмем 2 раза «ОК» .

Затем на вкладе «Безопасность» нажимаем «Изменить» и для текущего пользователя выставляем уровень безопасности «Полный доступ» . Закрываем окна кнопкой «ОК» .

Только после этого система даст нам заменить файл odbcbcp.dll.

Аналогичные действия необходимо выполнить и для всех остальных файлов в папках C:\Windows\System32 и C:\Windows\SysWOW64.

Если этого не сделать, при запуске 1С:Предприятие будем натыкаться на ошибку: «Ошибка для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше»

Установка 1С:Предприятие 7.7

Теперь необходимо установить 1С:Предприятие 7.7, ставим версию для SQL. Об особенностях установки читайте в статье «Установка системы 1С:Предприятие 7.7 в Windows x64».

Патч и замена файла BkEnd.dll

Теперь необходимо заменить файл BkEnd.dll из оригинальной поставки 1С:Предприятие 7.7, находящего по пути C:\Program Files (x86)\1Cv77\BIN, «пропатченным» файлом BkEnd.dll. Вы можете использовать мой файл, или сделать изменения самостоятельно. О том как и что необходимо в нем изменить читайте в моей статье «Работа в Hex-редакторе Free Hex Editor Neo, на примере патча файла BkEnd.dll для работы 1С:Предприятие 7.7 с Microsoft SQL Server 2008 R2».

Замену файла делаем для того, чтобы избавиться от ошибок:

Создание представления sksprocesses в MS SQL Server

Продолжаем исправлять ошибку «База данных не может быть открыта в однопользовательском режиме». Для этого создадим представление в базе данных (источник).

Заходим в программу «Среда Microsoft SQL Server Management Studio» («Пуск» — «Все программы» — «Microsoft SQL Server 2008 R2» — «Среда Microsoft SQL Server Management Studio» ), выбираем наш SQL Server (в моем примере это «S4\ULTRA»), раскрываем вкладку «Базы данных» , затем «Системные базы данных» и вкладку «master» . На вкладке «Представления» кликаем правой кнопкой мыши и в меню выбираем «Создать представление» .

Откроется окно «Добавление таблицы» , закроем его нажав «Закрыть»

Теперь в окне слева напишем текст представления:

select * from sysprocesses where cmd <> 'checkpoint'

Затем, нажимаем «Выполнить код SQL» (Иконка с красным восклицательным знаком на панели)

После того, как код изменится, сохраним представление, назвав его sksprocesses.

В результате чего в обозревателе объектов увидим только что созданное представление dbo.sksprocesses. Кликаем по нему правой кнопкой мыши и выбираем «Свойства» .

Откроется окно «Свойства представления» , в нем переходим на вкладку «Разрешения» и добавим пользователя guest. Для этого нажимаем «Найти» в окне добавления пользователей «Обзор» , отмечаем в списке пользователя guest и жмем «ОК» .

Теперь отмечаем разрешения для guest:

После чего нажимаем «ОК» .

На этом создание представления завершено.

Добавление информационной базы в 1С:Предприятие 7.7

Теперь, запустим 1С:Предприятие в режиме конфигуратора и добавим новую базу, для этого нажимаем «Добавить» задаем имя базы данных и указываем путь к каталогу в котором будет храниться наша база (изначально должен быть пустым) и нажимаем «ОК» .

Заходим в добавленную только что базу данных в режиме конфигуратора. При первом запуске система попросит выбрать формат хранения данных. Выбираем «MS SQL Server» и нажимаем «ОК».

В запустившемся конфигураторе заходим в «Администрирование» — «Параметры базы данных SQL…» .

Откроется окно «Параметры базы данных SQL», в нем заполняем:

И нажимаем «ОК».

Если нам нужна новая, т. е. «чистая» база, то уже можно начинать работать. Если же необходимо перенести уже существующую базу данных, то необходимо предварительно выгрузить из нее данные (войти в 1С:Предприятие в режиме конфигуратора, «Администрирование» — «Выгрузить данные») а затем загрузить в нашу, только что созданную базу на SQL («Администрирование» — «Загрузить данные» — выбрать файл выгрузки — «ОК» и согласиться с предупреждением о конфликте данных) .

После этого этапа уже можно работать в 1С под текущим пользователем Windows.

Настройка безопасности для всех пользователей

Если подразумевается, что данный сервер является также Сервером терминалов, на котором будут работать несколько пользователей, то необходимо для директорий, где хранятся базы данных 1С (в моем случае это «C:\1C_BASE») дать всем пользователям права на чтение/запись. Для этого в проводнике выделяем нужную папку, кликаем по ней правой кнопкой мыши и в меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность» и нажимаем кнопку «Изменить». В окне «Разрешения для группы…» для группы «Все» установим «Полный доступ» . Закроем все окна кнопкой «ОК» .

Теперь можно создавать пользователей для работы с 1С:Предприятие в режиме терминального сервера или в режиме удаленных приложений RemoteApp.