Версия для печати

1С:Предприятие 7.7 + Microsoft Windows Server 2008 R2 + Microsoft SQL Server 2008 R2

1С:Предприятие 7.7 + Microsoft Windows Server 2008 R2 + 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 Vista, Windows 7, Windows 8, Windows Server 2008, Windows Server 2012).

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

В качестве серверной ОС используем Microsoft Windows Server 2008 R2.

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

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

  • Параметры сортировки  — «Cyrilic_General_CI_AS».
  • Режим проверки подлинности — «Смешанный режим».

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

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

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

  • Имя базы данных не должно начинаться с цифры или иметь пробелы в названии, иначе получим ошибку: «неправильный синтаксис около конструкции %имя базы данных%».
  • В качестве владельца указываем только что созданного пользователя (в моем случае имя пользователя — «UserSQL»).
  • Модель восстановления базы данных: «Простая» (1С:Предприятие 7.7 прекрасно работает и при полной модели восстановления. Но в этом случае, вы должны хорошо понимать все плюсы и минусы данного решения).
  • Уровень совместимости: «SQL Server 2000 (80)» .

4. Настройка 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 или старше».

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

Теперь необходимо установить 1С:Предприятие 7.7, ставим версию для SQL.

Можно поставить UniSetup, выбрав при установке SQL 2005.

6. Замена файла BkEnd.dll.

Теперь необходимо заменить файл BkEnd.dll из оригинальной поставки 1С:Предприятие 7.7, находящего по пути C:\Program Files (x86)\1Cv77\BIN, «пропатченным» файлом BkEnd.dll. Вы можете использовать мой файл, или сделать изменения самостоятельно. Инструкцию по изменению файла BkEnd.dll Вы можете найти в интернете.

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

«Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия!»

«Порядок сортировки, установленный для базы, отличается от системного!»

«Неправильный синтаксис около ключевого слова «TRANSACTION»

«База данных не может быть открыта в однопользовательском режиме»

7. Создание представления sksprocesses.

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

Заходим в 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:

  • Вставка
  • Выборка
  • Изменение
  • Назначение владельцем
  • Обновление
  • Просмотр определения

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

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

8. Добавление базы в 1С:Предприятие.

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

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

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

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

  • Имя сервера в формате: <Сетевое имя компьютера>\<Имя экземпляра SQL Server>. (в моем случае это «S4\ULTRA» )
  • База данных: Имя базы данных, которое было введено при создании новой базы данных в п. 2. (в моем случае это «BASE_1C» )
  • Пользователь: Имя пользователя, которое было введено при создании нового пользователя в п. 2. (у меня это «UserSQL» )
  • Пароль: Пароль, который указывали для пользователя при создании в п. 2.

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

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

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

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

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

Есть известная проблема в безопасности 1С:7.7, используя которую можно войти в 1С без авторизации.

Чтобы избежать подобных манипуляций со стороны пользователей, необходимо найти в папке с базой 1С папку usrdef, в которой лежит один файл users.usr и оставить всем пользователям на эту папку права только на чтение.

Обсудить статью можно на форуме

Источник

Последнее изменение Среда, 26 ноября 2014 08:56