1c:установка-1с-предприятие-7-7-на-microsoft-sql-server-2008-r2

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
1c:установка-1с-предприятие-7-7-на-microsoft-sql-server-2008-r2 [2021/03/08 18:30]
admin
1c:установка-1с-предприятие-7-7-на-microsoft-sql-server-2008-r2 [2021/03/08 21:42] (текущий)
admin
Строка 1: Строка 1:
 +====== Установка 1С:Предприятие 7.7 на Microsoft SQL Server 2008 R2 ======
 +
 Официально, платформа 1С:Предприятие 7.7 работает только с [[http://www.1c.ru/rus/products/microsft/sql/|MS SQL Server 2000]]. Но с помощью небольших манипуляций можно организовать стабильную работу и с последней, на момент написания статьи, версий Microsoft SQL Server 2008 R2. Ниже представлена пошаговая настройка связки 1С:Предприятие 7.7 + MS SQL Server 2008 R2 + Microsoft Windows Server 2008 R2 (Справедливо и для других операционных систем семейства Windows). Итак: Официально, платформа 1С:Предприятие 7.7 работает только с [[http://www.1c.ru/rus/products/microsft/sql/|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. Во время установки выбираем:
 +
 +  * Параметры сортировки  — «Cyrilic_General_CI_AS»
 +  * Режим проверки подлинности — «Смешанный режим»
 +
 +Очень подробно об установке SQL Server я писал в статье «Установка Microsoft SQL Server 2008 R2».
 +
 +===== Создание новой базы данных в  SQL Server 2008 R2 =====
 +
 +Добавляем нового пользователя в SQL Server 2008 R2. Обязательно даем ему роль ''processadmin'', иначе будем натыкаться на ошибку:
 +
 +**«Доступ к базе возможен только из одного каталога информационной базы»**  
 +
 +Затем создаем новую базу данных, указав:
 +
 +  * Имя базы данных не должно начинаться с цифры или иметь пробелы в названии, иначе получим ошибку: ''«неправильный синтаксис около конструкции %имя базы данных%»''
 +  * В качестве владельца указываем только что созданного пользователя (В моем случае имя пользователя — «UserSQL» )
 +  * Модель восстановления базы данных: «Простая» (1С:Предприятие 7.7 прекрасно работает и при полной модели восстановления. Но в этом случае, вы должны хорошо понимать все плюсы и минусы данного решения).
 +  * Уровень совместимости: «SQL Server 2000 (80)».
 +
 +О том как это сделать читайте в статье «Добавление пользователя и создание новой базы данных в 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**, кликаем по нему правой кнопкой, выбираем «Свойства». В открывшемся окне переходим на вкладку //«Безопасность»//, нажимаем //«Дополнительно»//.
 +
 +{{ :1c:0001:ustanovka_1c_sql_001.png |}}
 +
 +В появившемся окне переходим на вкладку //«Владелец»// , нажимаем //«Изменить»// , выбираем текущего пользователя и жмем 2 раза //«ОК»// .
 +
 +{{ :1c:0001:ustanovka_1c_sql_002.png |}}
 +
 +Затем на вкладе //«Безопасность»// нажимаем «Изменить» и для текущего пользователя выставляем уровень безопасности //«Полный доступ»// . Закрываем окна кнопкой //«ОК»// .
 +
 +Только после этого система даст нам заменить файл **odbcbcp.dll**.
 +
 +Аналогичные действия необходимо выполнить и для всех остальных файлов в папках **C:\Windows\System32** и **C:\Windows\SysWOW64**.
 +
 +Если этого не сделать, при запуске 1С:Предприятие будем натыкаться на ошибку: ''«Ошибка для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше»''
 +
 +===== Установка 1С:Предприятие 7.7 =====
 +
 +Теперь необходимо установить 1С:Предприятие 7.7, ставим версию для SQL. Об особенностях установки читайте в статье [[http://tavalik.ru/index.php/ustanovka_1c_x64/|«Установка системы 1С:Предприятие 7.7 в Windows x64»]].
 +
 +
 +===== Патч и замена файла BkEnd.dll =====
 +
 +Теперь необходимо заменить файл **BkEnd.dll** из оригинальной поставки 1С:Предприятие 7.7, находящего по пути **C:\Program Files (x86)\1Cv77\BIN**, «пропатченным» файлом [[http://www.tavalik.ru/files/Ustanovka_1C_SQL/BkEnd.dll|BkEnd.dll]]. Вы можете использовать мой файл, или сделать изменения самостоятельно. О том как и что необходимо в нем изменить читайте в моей статье [[http://tavalik.ru/index.php/hex-editor/|«Работа в Hex-редакторе Free Hex Editor Neo, на примере патча файла BkEnd.dll для работы 1С:Предприятие 7.7 с Microsoft SQL Server 2008 R2»]].
 +
 +Замену файла делаем для того, чтобы избавиться от ошибок:
 +
 +  * ''«Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия!»''
 +  * ''«Порядок сортировки, установленный для базы, отличается от системного!»''
 +  * ''«Неправильный синтаксис около ключевого слова «TRANSACTION»''
 +  * ''«База данных не может быть открыта в однопользовательском режиме»''
 +
 +===== Создание представления sksprocesses в MS SQL Server =====
 +
 +Продолжаем исправлять ошибку **//«База данных не может быть открыта в однопользовательском режиме»//**. Для этого создадим представление в базе данных ([[http://forum.ru-board.com/topic.cgi?forum=8&topic=34526&start=20#18|источник]]).
 +
 +Заходим в программу «Среда Microsoft SQL Server Management Studio» («Пуск» — //«Все программы»// — «//Microsoft SQL Server 2008 R2//» — «//Среда Microsoft SQL Server Management Studio//» ), выбираем наш SQL Server (в моем примере это «S4\ULTRA»), раскрываем вкладку «//Базы данных//» , затем «Системные базы данных» и вкладку «//master//» . На вкладке «//Представления//» кликаем правой кнопкой мыши и в меню выбираем «//Создать представление//» .
 +
 +{{ :1c:0001:ustanovka_1c_sql_004.png?nolink |}}
 +
 +Откроется окно «//Добавление таблицы//» , закроем его нажав «//Закрыть//» 
 +
 +{{ :1c:0001:ustanovka_1c_sql_005.png?nolink |}}
 +
 +Теперь в окне слева напишем текст представления:
 +
 +<code>select * from sysprocesses where cmd <> 'checkpoint'</code>
 +
 +Затем, нажимаем «//Выполнить код SQL//» (Иконка с красным восклицательным знаком на панели)
 +
 +{{ :1c:0001:ustanovka_1c_sql_006.png?nolink |}}
 +
 +После того, как код изменится, сохраним представление, назвав  его **sksprocesses**.
 +
 +{{ :1c:0001:ustanovka_1c_sql_007.png?nolink |}}
 +
 +В результате чего в обозревателе объектов увидим только что созданное представление **dbo.sksprocesses**. Кликаем по нему правой кнопкой мыши и выбираем «//Свойства//» .
 +
 +{{ :1c:0001:ustanovka_1c_sql_008.png?nolink |}}
 +
 +Откроется окно «//Свойства представления//» , в нем переходим на вкладку «//Разрешения//» и добавим пользователя **guest**. Для этого нажимаем «//Найти//» в окне добавления пользователей «//Обзор//» , отмечаем в списке пользователя **guest** и жмем «//ОК//» .
 +
 +{{ :1c:0001:ustanovka_1c_sql_009.png?nolink |}}
 +
 +Теперь отмечаем разрешения для **guest**:
 +
 +  * Вставка
 +  * Выборка
 +  * Изменение
 +  * Назначение владельцем
 +  * Обновление
 +  * Просмотр определения
 +
 +После чего нажимаем «//ОК//» .
 +
 +{{ :1c:0001:ustanovka_1c_sql_010.png?nolink |}}
 +
 +На этом создание представления завершено.
 +
 +===== Добавление информационной базы в 1С:Предприятие 7.7 =====
 +
 +Теперь, запустим 1С:Предприятие в режиме конфигуратора и добавим новую базу, для этого нажимаем «//Добавить//» задаем имя базы данных и указываем путь к каталогу в котором будет храниться наша база (изначально должен быть пустым) и нажимаем «//ОК//» .
 +
 +{{ :1c:0001:ustanovka_1c_sql_011.png?nolink |}}
 +
 +Заходим в добавленную только что базу данных в режиме конфигуратора. При первом запуске система попросит выбрать формат хранения данных. Выбираем «//MS SQL Server//» и нажимаем «//ОК//».
 +
 +{{ :1c:0001:ustanovka_1c_sql_012.png?nolink |}}
 +
 +В запустившемся конфигураторе заходим в «//Администрирование//» — «//Параметры базы данных SQL…//» .
 +
 +{{ :1c:0001:ustanovka_1c_sql_013.png?nolink |}}
 +
 +Откроется окно «//Параметры базы данных SQL//», в нем заполняем:
 +
 +  * Имя сервера в формате: //<Сетевое имя компьютера>\<Имя экземпляра SQL Server>//. (в моем случае это «//S4\ULTRA//» )
 +  * База данных: Имя базы данных, которое было введено при создании новой базы данных в п. 2. (в моем случае это «//BASE_1C//» )
 +  * Пользователь: Имя пользователя, которое было введено при создании нового пользователя в п. 2. (у меня это «//UserSQL//» )
 +  * Пароль: Пароль, который указывали для пользователя при создании в п. 2.
 +
 +И нажимаем «//ОК//».
 +
 +{{ :1c:0001:ustanovka_1c_sql_014.png?nolink |}}
 +
 +Если нам нужна новая, т. е. «чистая» база, то уже можно начинать работать. Если же необходимо перенести уже существующую базу данных, то необходимо предварительно выгрузить из нее данные (войти в 1С:Предприятие в режиме конфигуратора, «//Администрирование//» — «//Выгрузить данные//») а затем загрузить в нашу, только что созданную базу на SQL («//Администрирование//» — «//Загрузить данные//» — выбрать файл выгрузки — «//ОК//» и согласиться с предупреждением о конфликте данных) .
 +
 +{{ :1c:0001:ustanovka_1c_sql_015.png?nolink |}}
 +
 +После этого этапа уже можно работать в 1С под текущим пользователем Windows.
 +
 +===== Настройка безопасности для всех пользователей =====
 +
 +Если подразумевается, что данный сервер является также [[http://tavalik.ru/index.php/ustanovka-servera-terminalov-na-windows-server-2008-r2/|Сервером терминалов]], на котором будут работать несколько пользователей, то необходимо для директорий, где хранятся базы данных 1С (в моем случае это «//C:\1C_BASE//») дать всем пользователям права на чтение/запись. Для этого в проводнике выделяем нужную папку, кликаем по ней правой кнопкой мыши и в меню выбираем «//Свойства//». В открывшемся окне переходим на вкладку «//Безопасность//» и нажимаем кнопку «Изменить». В окне «//Разрешения для группы…//» для группы «//Все//» установим «//Полный доступ//» . Закроем все окна кнопкой «//ОК//» .
 +
 +{{ :1c:0001:ustanovka_1c_sql_16-640x480.png?nolink |}}
 +
 +Теперь можно [[http://tavalik.ru/index.php/sozdanie-novogo-polzovatelya-v-windows-server-2008/|создавать пользователей]] для работы с 1С:Предприятие в режиме [[http://tavalik.ru/index.php/ustanovka-servera-terminalov-na-windows-server-2008-r2/|терминального сервера]] или в режиме [[http://tavalik.ru/index.php/nastrojka-udalennyx-prilozhenij-remoteapp-v-windows-server-2008-r2/|удаленных приложений RemoteApp]].
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
  • 1c/установка-1с-предприятие-7-7-на-microsoft-sql-server-2008-r2.1615203018.txt.gz
  • Последнее изменение: 2021/03/08 18:30
  • admin