Введение

r_keeper_7 можно связать только с MS SQL версии 2012 и выше. 

Настройка связи с MS SQL 2012

Установка SQL сервера

  1. Установить MS SQL Server 2012 или выше. Можно использовать выпуск Express.
    Во время установки сервера следует использовать смешанный режим аутентификации и задать пароль для пользователя "sa". О процессе установки MS SQL Server 2008 R2 более подробно можно почитать здесь.

  1. Запустить SQL Management Studio и создать новую базу, например с именем RK7.

  2. В Диспетчере конфигурации SQL Server включить протокол TCP/IP. Перезапустить SQL Server.

  1. Перевести базу в режим версионности строк (Row Versioning)

По-умолчанию SQL Server работает в режиме "Read Commited", который подразумевает блокирование данных во время запроса. Это может сильно помешать в случае многопользовательской работы. Начиная с версии 2005 поддерживается режим "READ COMMITTED using row versioning", при котором блокировки могут помешать только в случае, когда разные пользователи пишут в одно и то же место, чтение же данных никогда не блокируется и никого не блокирует.

Для включения режима версионности строк надо выполнить скрипт:

 ALTER DATABASE RK7 SET READ_COMMITTED_SNAPSHOT ON;

Подробнее смотрите здесь или здесь.

Настройка менеджерской станции

  1. Зайти в справочник Сервис > Экспорт данных > Настройки Внешних БД и сделать копию предустановленной настройки «Microsoft SQL Server». Присвоить ей уникальное имя.

  2. В поле Основное > Строка соединения (Base > Connection string) нажать на кнопку в конце строки.

Рис.1

  1. Нажать кнопку "Build..." и настроить связь с БД, созданной в пункте 1.

Рис.2

  1. Проверяем, что на вкладке "Поставщик данных" выбран провайдер Microsoft OLE DB Provider for SQL Server. На вкладке «Соединение» выбираем сервер из списка1, вводим имя пользователя и пароль , выбираем Базу данных и нажимаем кнопку «Проверить подключение». Если проверка соединения прошла успешно, то нажимаем «ОК». Потом опять жмем "ОК".
1 очень часто нужного сервера нет в списке. В этом случае, нужно вручную ввести его имя (обычно совпадает с именем компьютера, на котором стоит SQL Server (в качестве имени также может выступать IP-адрес)). После этого обязательно ввести "имя пользователя" и "пароль" и только потом выбирать базу!
Имя сервера можно посмотреть при запуске SQL Server Management Studio (рис.ниже).
Рис.3
  1. В итоге "Строка соединения" примет вид "Provider=SQLOLEDB.1;Password=1;Persist Security Info=True;User ID=sa;Initial Catalog=RK7;Data Source=127.0.0.12"

Примечание: Data Source = имя или IP-адрес компьютера, на котором стоит SQL Server. Возможен вариант с именем экземпляра сервера, например 192.168.190.150\SQLEXPRESS.

  1. Далее делаем выгрузку в БД SQL, используя созданную настройку.

  2. Открываем справочник Сервис > Экспорт данных > Экспорт в другую БД, выбираем настройку, созданную в п.5. Прописываем «Имя пользователя» и «Пароль».

  3. В блоке "Параметры экспорта" оставляем галочки по умолчанию, если выгрузка происходит в чистую БД SQL. 

  4. Нажимаем кнопку «Проверить». При удачном соединении кнопка "ОК" станет активной, нажимаем ее. Запуститься экспорт данных в БД SQL. В этот момент в SQL создаются таблицы. 

  5. При успешной выгрузке окно с "Настройками экспорта данных" закроется. Дополнительных сообщений не появится.

  6. Далее необходимо настроить сервер справочников (или отчетов), пролицензировав его и выбрав настройку созданную в п.5.

  7. Откройте справочник Настройки > OLAP Отчеты > Серверы Отчетов, выберите нужный сервер и настройте его согласно пунктам ниже.

  8. Пролицензируйте сервер справочников/отчетов согласно описанию в статьях http://support.ucs.ru/ru/node/5237#header-2 и http://support.ucs.ru/ru/node/7161.

  9. В группе Связь с внешней БД сделать следующее:

  1. В поле «Настройки связи с внешней БД» выбрать настройку, созданную в п.5 .
  2. В поле «Имя пользователя внешней БД» прописать имя пользователя БД SQL.
  3. В поле «Пароль пользователя внешней БД» прописать пароль пользователя БД SQL.
  1. Укажите такие же настройке в группе Логи справочников:

    1. В поле «Настройки связи с внешней БД» выбрать настройку, созданную в п.5 .
    2. В поле «Имя пользователя внешней БД» прописать имя пользователя БД SQL.
    3. В поле «Пароль пользователя внешней БД» прописать пароль пользователя БД SQL.
  2. В группе «Основное» сделать следующее:

  1. В поле «Источник данных кубов» выбрать параметр «БД SQL»

  2. В поле «Протоколирование запросов» выбрать параметр «llErroneous»*

  3. В поле Режим базы данных UDB выбрать один из режимов: большой, средний, маленький, ультра легкий. Данный режим относиться к накопительной базе Check.udb. Описание ниже.

  • Большой (полная копия). Это режим по умолчанию. Использовался для простых ресторанов (не сетевых). Раньше это был единственный возможный вариант, если не использовалось подключение к внешней базе данных. Не меняйте параметр "Полная копия" на другое, пока не настроите соединение с внешней базой данных.
  • Средний (частичная копия). Режим означает, что кроме данных заказов, все суммы будут сохраняется в check.udb.
  • Маленький (только чеки). Режим используется, если вы уверены, что будет иметься достаточно много накопительных данных (несколько ресторанов). В большинстве случаев рекомендуется использовать этот режим, чтобы база не становилась слишком большой.
  • Ультралегкий (только общие смены). В check.udb будет содержаться только информация об общих сменах и ссылки на них в базе SQL.

Примечание: в ветке 7.5.3 и выше рекомендуется использовать режим маленький или ультралегкий.

Примечание: Если вы решили изменить режим "базы данных UDB" с большого на маленький при настроенной связи с SQL (т.е. ресторан проработал в таком режиме уже продолжительное время) и выполнить ручной экспорт накопительных данных повторно, то размер файла Check.udb автоматически уменьшиться, в результате чего большая часть информации из этой базы будет удалена, и в базу SQL экспортируются не все данные. Поэтому никогда не делайте экспорт накопительных данных, если вы используете режим базы данных UDB Маленький или Средний.

Выбранный режим базы данных UDB никак не влияет на справочную информацию. Справочная информация всегда сохраняется на каждом сервере отчетов в полном объеме и может быть экспортирована повторно при необходимости.
 
В версиях 7.05.02 добавлено свойство "Обслуживает ресторан". При задании данного свойства список кассовых серверов, данные с которых будут обработаны данным сервером, становится неактивным. Обрабатываются только данные кассовых серверов указанного ресторана.
 
В версиях 7.05.03 это свойство сделано обязательным для лицензирования. Таким образом не было возможности выписать лицензию на сервер и сохранить возможность обработки данных с нескольких ресторанов.
 
Добавлено свойство: "Разрешить обработку данных со ВСЕХ ресторанов", при выставлении которого программа ведет себя так же, как раньше, разрешая задать список кассовых серверов, с которых следует обрабатывать данные.
  1. В секции Обработка данных выбрать рестораны (ресторан представлен набором кассовых серверов), данные с которых мы хотим собирать и видеть в отчетах.

  2. В файле конфигурационном файле сервера справочников rk7srv.INI / отчетов repsserv.ini прописать параметр

UseSQL=1

​       для сервера справочников прописывать в секции [RefServer], для сервера отчетов — в секции [Config]

  1. Обязательно перезагрузить сервер справочников / отчетов.

Примечание: если необходимо поменять что-то в настройках какой-либо внешней БД, то первоначально нужно остановить все серверы отчётов, которые используют эту настройку и запустить их с параметром UseSQL=0, поменять настройки, вновь остановить сервер, потом вернуть параметру UseSQL значение 1 (UseSQL=1). Т.е. все изменения в настройках внешней БД происходят во время работы сервера при параметре UseSQL=0.

Примечание: при смене режима базы данных UDB с большого на средний или маленький и последующей выгрузке в SQL, произойдет удаление большинства накопленной информации в базе check.udb. Это критично, когда не используется внешняя накопительная БД в SQL.

Примечание: одновременно для нескольких ролей в РК7 нельзя сделать связь с БД в SQL Server используя одного и того же пользователя в БД SQL. В РК7 просто не сохраниться информация о пользователе в настройках связи с внешней БД.

Оптимизация производительности

В целях экономии дискового пространства и некоторого увеличения производительности рекомендуется использовать "Простую" ("Simple") модель восстановления Важно: Настоятельно рекомендуем ознакомиться с различными моделями восстановления SQL, их различиями и особенностями. Подробнее здесь: http://msdn.microsoft.com/ru-ru/library/ms191253.aspx.
 
 
После изменения модели восстановления необходимо выполнить сжатие файла лога, меню на используемой БД: Задачи (Tasks) -> Сжать (Shrink) -> Файлы (Files), в следующем окне выбрать типа файла: "Журнал" ("Log"). 
 
 

Возможные проблемы

Проблема 1: Иногда может не идти экспорт в только что созданную БД сервера SQL Server 2008 при выбранном провайдете Native Client согласно п.3.1.3. 
Решение: Выберите другой провайдер Microsoft OLE DB Provider for SQL Server, создайте заново чистую БД и повторите экспорт.

Проблема 2: Не строятся прямые отчёты
Решение: Для каждой роли, если у нее разные права на доступ на просмотр отчетов на разные объекты (например у одной роли разрешен просмотр для одного объекта, а у другой - на несколько), то для роли для построения прямых отчетов нужно заводить разных пользователей на SQL сервере и соответственно настроить роли с такими пользователями в SQL. Схематично показано на рисунке ниже.

Рис.4


* Вести протоколирование:
llAll                - всех запросов
llErroneous - запросов с ошибками
llNone          - не протоколировать