Импорт данных через DataCollector
Введение
Скачать дистрибутив можно на FTP-сервере по адресу: ftp://ftp.ucs.ru/rk7/shcr/
Для синхронизации баз данных r_keeper 7 и StoreHouse реализована утилита DataCollector. При проведении действий — продаж — при помощи RK7 информация о перечне и количестве проданных блюд и услуг, местах реализации и т. д. поступает в SQL-таблицы. В свою очередь, информация об изменениях на складе — в StoreHouse — также поступает в таблицы SQL при помощи SHCR.
Т.е. в отличии от утилиты ImportRK, данные запрашиваются не у сервера справочников, а непосредственно из SQL-базы.
Состав комплекта:
- DataCollector.exe — непосредственно утилита, которая производит импорт справочников и продаж из RK7 в SH4. Может запускаться в режиме Desktop — обычный запуск exe-файла без параметров, либо в режиме службы Windows, для этого достаточно 1 раз запустить файл с ключом /install
Settings.exe — утилита настройки импорта. Именно в ней настраиваются параметры подключения к базе SH4, а также все параметры импорта.
Важно!
Все произведенные настройки сохраняются непосредственно в базе SQL, поэтому не важно с какого рабочего места вы запускаете утилиту, считаются именно те настройки, которые вы производили последний раз. Т.е. для изменения настроек достаточно иметь утилиту, корректный udl-файл и доступ к базе SQL.
- Scheduler.exe — планировщик задач. С помощью данной утилиты можно настроить расписание и периодичность импорта, а также посмотреть журнал выполнения задач.
Настройки SHCR
Настройка связи с БД RK7 под управлением SQL Server
Для работы утилиты SHCR необходимо настроить файл подключения test.udl. При отсутствии файла необходимо создать новый. Файл содержит строку подключения к БД SQL, которая используется сервером справочников/отчетов в РК7 для хранения накопительных данных смен.

Настроить значения в файле можно как простым редактированием в блокноте, так и стандартной утилитой Средство канала передачи данных.
В Меню Поставщик данных выбираем поставщика Microsoft OLE DB Provider for SQL Server.
Во вкладке Соединение введите:
- Имя SQL-сервера — адрес сервера, на котором расположена необходимая база данных
- Имя пользователя
- Пароль
- Базу данных — имя БД, которое будет использоваться для присоединенного файла БД SQL.
Проверьте соединение кнопкой Проверить соединение.
Если не выбрать базу данных в настройках, то вы увидите такую ошибку:
Settings.exe — основные параметры
После создания файла test.udl запустите файл Settings.exe. При первичном запуске создаются таблицы в БД. Назначение таблиц смотрите далее.
В открывшемся окне на вкладке Основные параметры проверяем, верно ли указан путь к udl, указываем дату старта и частоту происходящих синхронизаций r_keeper 7 и StoreHouse 4. Нажимаем кнопку Тест соединения.
В том случае, если все настройки введены верно, появится подтверждающее окно.

Описание настроек:
- Путь к UDL-файлу — полный путь до файла настройки связи с SQL-базой
- Пароль к БД — пароль для пользователя sa к базе SQL
- Автовыгрузка с — дата с которой будут выгружены данные при первом запуске DataCollector. Если параметр отключен и выгрузка данных не производилась — будут выгружены все данные имеющиеся в базе.
- Частота обновления — периодичность с которой будет запускаться DataCollector — не рекомендуем выставлять слишком маленькие значения
- Сортировка списков — настройка сортировки серверов SH4(если их несколько)
- Таймаут выполнения запроса — время ожидания выполнения запросов к SQL-серверу.
Параметры StoreHouse и r_keeper 7
Первым делом обязательно пропишите путь к библиотеке сервера ShServ.dll в файле shserver.ini. Если сервер расположен на удаленной машине, то прописываем полный путь к файлу shserv.dll на удаленной машине без IP-адреса. Если не указать путь к DLL, то продажи в SH не импортируются.
Для настроек импорта, перейдите во вкладку Параметры SH и RK. Выбираем в окне выбора/создания сервера необходимый нам сервер. Для создания нового сервера щелкаем по окну правой кнопкой мыши, нажимаем Добавить, вводим все необходимые параметры — имя, адрес, порт, имя пользователя, пароль.
Важно!
Не должно быть запущенных экземпляров Sh.exe или Sdbman.exe. Клиентские приложения требуют лицензию и если она будет занята, DataCollector не сможет подключиться к серверу и будет выдавать ошибку подключения.Обращайте внимание на логин и пароль — в них важен регистр.
Флаг Активен — определяет использование выделенного сервера для импорта/экспорта.
Флаг Импорт в SH — при наличии данного флага для данного сервера возможен импорт данных из r_keeper 7 в StoreHouse 4.
Основные параметры
В области Основные параметры отображается информация выбранного сервера: имя сервера — то, что будет отображено слева в Списке серверов StoreHouse, ip-адрес, порт для подключения, имя пользователя StoreHouse, пароль к БД StoreHouse.
Параметры импорта
Вид закладки Параметры импорта зависит от выбранного принципа выгрузки документов в StoreHouse: по ресторанам или по концепциям.
Если используется выгрузка по концепциям, то в менеджерской r_keeper 7 должны быть заведены соответствующие концепции и связаны с ресторанами.


- Ресторан — ресторан, продажи которого будут выгружаться в выбранную базу данных StoreHouse. При выборе конкретного ресторана, обязательно в свойствах ресторана в r_keeper 7 указывать цену SH4
- Категория заказа — реализация только с указанной категории заказа будет импортирована в StoreHouse. Если выбрать группу Все, то в базу StoreHouse будут импортированы все категории расхода, которые заведены в r_keeper 7
- Тип группировки — тип группировки документов расхода
- По типам оплат — для каждого типа оплаты будет создан отдельный документ о расходе блюд
- По валютам — отдельный документ на каждую валюту, которая использовалась при оплате
- По причинам удаления — реализованные блюда будут сгруппированы в отдельный документ по расходу блюд
Не реализованные блюда из удаленных чеков и блюда, на которые были сделаны отказы, будут сгруппированы по причинам удаления.
То есть, для каждой причины удаления будет создан отдельный документ, в котором будут представлены все блюда, удаленные с данной причиной в этот день
- Товарная группа — корневая вершина из словаря Список товаров, в которую будет выгружаться меню из r_keeper 7
- Флаг Импортировать меню — выставляется только в том случае, если не используется StoreHouse Head Office
- Торговая группа — в словари StoreHouse выгрузятся блюда только указанной торговой группы
- Флаг Создавать пустые группы — при наличии флага в данном поле в словаре StoreHouse будут созданы пустые группы, для тех групп меню блюда из которых не выгружены из-за ограничения по торговым группам. Если флаг не установлен, нужно внимательно относиться к фильтрам выбора импортируемой информации, чтобы не потерять необходимые данные
- Флаг Добавлять элементы с незаданной ценой — при выставленном флаге в данном поле в StoreHouse выгружаются блюда, у которых в поле цена указано не задано
Флаг Меню по расписанию (списку доступности) — при наличии флага те элементы меню, которые не действуют на объекте — определяем на основании расписания, если выставлен критерий никогда — перемещаются в отдельную группу Удаленные.
Работает только для выбранного конкретного ресторана. При выборе всех ресторанов или концепции, данный фильтр не работает.
- Расчет НДС — в данном поле необходимо выбрать правило расчета НДС: по r_keeper — будет взята из r_keeper 7 — или по StoreHouse, в этом случае ставка налога берется из карточки товара SH4. Рекомендовано использовать правило По StoreHouse.
Флаг Не учитывать скидки — при выставленном флаге, элементы меню будут выгружаться в Store House без учета скидок
- Флаг Категории заказа по использованию — при наличии данного флага в БД StoreHouse будут выгружаться документы расхода с категориями заказа (местами реализации), которые определены в использовании — см. руководство по r_keeper 7
Категория расхода для выкупа — для корректного импорта элементов меню, у которых в r_keeper 7 выставлен флаг Выкуп товара, необходимо выбрать категорию предварительно заведенную в StoreHouse. Выкуп товара добавляется в StoreHouse отдельным документом расхода
Не учитывать предоплаты — при выставленном флаге не выгружается предоплата, т.е. не распределяемая наценка. Если флаг не выставлен, предоплата выгружается в документ расхода.
Маппинг
Для сопоставления типов оплат r_keeper 7 и Типов оплат StoreHouse необходимо нажать клавишу Маппинг способов оплаты. Если напротив способов оплат r_keeper 7 не будет установлен соответствующий тип оплат StoreHouse, в базе StoreHouse создадутся новые типы оплат в соответствии с типами оплат r_keeper.
Для сопоставления валют r_keeper 7 и валют StoreHouse необходимо нажать клавишу Маппинг валют. Если напротив валют r_keeper 7 не будет установлен соответствующий тип оплат Store House, в базе SH создадутся новые типы оплат в соответствии с типами оплат r_keeper.
Для сопоставления валют из контекстного меню нужно выбрать команду Добавить.

Автоматически откроется окно Настройка маппинга валют, из ниспадающего списка необходимо выбрать Валюту RK7 и сопоставить с валютой из SH4, предварительно добавив нужные валюты в словарь SH4 Категории расхода в пункте Типы оплат.
Доп. фильтры
Настройка Доп. Фильтры позволяет выбирать, по какой валюте/типу оплат выгружать расходы в StoreHouse. Из-за этой настройки сумма расхода за день в r_keeper может не соответствовать сумме расхода в StoreHouse. При группировке по причинам удаления кнопка Доп. фильтры неактивна.
Флаг Выгружать выставлен напротив каждой валюты по умолчанию, если снять флаг, то валюта или тип оплаты не будут выгружены из r_keeper 7.
Aлаг По нулевой цене, который позволяет выгружать товары из r_keeper с нулевой ценой. Это полезно, например, для корректного учёта продаж за бонусы Plazius в StoreHouse.
Разбивка по складам
В StoreHouse в документе расхода назначается Категория расхода, соответствующая способу группировки при загрузке данных. В пункте Разбивка по складам определяются настройки, позволяющие разделять документы расхода по выбранному типу группировки и одновременно по складам списания.
Пример окна Разбивка по складам представлен на скриншоте ниже:

Для добавления новой строки необходимо выбрать пункт Добавить из контекстного меню, затем в открывшемся окне необходимо заполнить поля.
Склад — склад списания товара;
Заменяемая Категория — категория расхода, определяемая по умолчанию при импорте данных их r_keeper.
Заменяющая Категория — категория расхода, которая будет присвоена документу расхода в StoreHouse в зависимости от склада списания товаров.
- Список Замещающих категорий необходимо сформировать в словаре Категории расхода — смотрите Руководство пользователя по StoreHouse
- Для товаров с установленным типом Услуга необходимо сделать отдельное назначение
- Если для какой-либо пары Склад — Категория расхода не сделать назначение, то при импорте Расхода блюд с такими параметрами будет создан документ расхода с категорией Реализация по умолчанию
- Если у разных пар Склад — Категория расхода была выбрана одна и та же замещающая категория, то в StoreHouse будет сформирован один документ расхода с указанной замещающей категорией.
Экспорт в SQL
Для экспорта информации в SQL-базу, то есть выгрузки данных из StoreHouse — накладные и товары — в таблицы SQL необходимо установить флаг Экспорт в SQL.
Для выгрузки в таблицы SQL фудкоста, рассчитанного в StoreHouse, необходимо установить флаг Обрабатывать фудкост.
Для расчета фудкоста обязательно выбрать группы для внутренних корреспондентов и группы корреспондентов для списания боя/порчи — перечень зависит от настроек StoreHouse. Более подробно ознакомиться с расчетом фудкоста можно в руководстве по StoreHouse.
Если требуется передавать информацию о прейскурантах в таблицы SQL, необходимо установить флаг Обрабатывать прейскуранты.
Если требуется передавать информацию о свойствах товаров в таблицы SQL, необходимо установить флаг Обрабатывать свойства товаров.
Примечание
Для того чтобы не выгружать из RK7 в SH4 наценку, которая определена для механизма импорта предоплаченных заказов из EDI в RK7, в настройках появился параметр Не учитывать предоплаты. Поддержано в SHCR ver. 7.5.19.1+.К таким наценкам могут относиться например наценки, которые используется в случае оплаты заказа баллами из какой-либо внешней системы лояльности.
Если в r_keeper 7 заведено более двух налогов, то необходимо правильно передавать суммы в документы расхода.
Для назначения ставки налогов в карточку товара StoreHouse 4
- НДС — считать первый в списке налог без флага Добавить к цене. Если данный налог не используется на блюде r_keeper 7 (пустое значение или 0), то в StoreHouse назначать ставку 0%
- НСП — считать первый в списке налог с флагом Добавить к цене. Если данный налог не используется на блюде r_keeper 7 (пустое значение или 0), то в StoreHouse назначать ставку 0%
- Если в списке нет налога с флагом Добавить к цене, то в НСП карточки товара StoreHouse 4 назначать ставку 0%
Если используется более 2х налогов в r_keeper 7, то импорт налоговых сумм в расход StoreHouse 4 проводить только по r_keeper 7. По StoreHouse нецелесообразно, т.к. нет возможности определить все ставки, для правильных расчетов сумм.
- Суммы всех налогов БЕЗ ФЛАГА "Добавить к цене" — выгружать в поле НДС StoreHouse 4
- Суммы всех налогов С ФЛАГОМ "Добавить к цене" — выгружать в поле НСП StoreHouse 4
- Сумма б/н StoreHouse_4 = сумме без ВСЕХ налогов r_keeper 7
- Сумма в/н StoreHouse_4 = сумме с учетом ВСЕХ налогов r_keeper 7
DataCollector.exe
Для экспорта/импорта запускаем файл DataCollector.exe, жмем Старт
При запуске DataCollector проверяет есть ли не обработанные смены до текущей даты:
- Eсли есть - то производится импорт справочников и продаж до текущей даты.
- Если не обработанных смен нет, то будет выполнен повторный импорт последней обработанной смены. Сделано специально для больших объектов, когда данные о продажах могут приходить в течение суток и необходима корректировка по продажам.
При повторном импорте пересоздание документов расхода в SH4 осуществляется только если документы расхода за эти даты не проведены.
Scheduler — планировщик
Пользовательский интерфейс планировщика представлен ниже:
Просмотр задач
Для просмотра существующих задач нажимаем кнопку Просмотр задач
Для просмотра сведений о задачах, например, выполненных с ошибкой, необходимо щелкнуть правой кнопкой мыши по интересующей задаче, нажать Сведения.
Мастер создания задачи
В стартовом окне мастера создания задачи необходимо выбрать сервер StoreHouse и нажать Далее.
В открывшемся окне выбираем категорию нового задания, нажимаем Далее.
В следующем окне выбираем начальную и конечную даты периода, за который хотим получить отчет, нажимаем Далее.
В следующем окне назначаем время запуска задания. Задачу можно выполнить немедленно, либо в заданное время и дату.
Т.е. запуск "немедленно" используется для одноразовых задач "прямо сейчас", запуск по времени уточняет время запуска задачи, галочка "повторять каждый день" позволяет сделать задачу "ежедневной", при этом будут импортироваться все необработанные смены, т.е. если служба не запускалась неделю (а продажи за это время были) то при запуске импортируются данные о продажах за весь этот период..
Нажимаем Далее. После этого появится окно со сведениями о созданном. Просматриваем, все ли верно, нажимаем Сохранить.

Затем в открывшемся окне будут отображены данные о сформированном расписании. Для сохранения настроек необходимо нажать клавишу Сохранить.
Особенности
- Если документы были импортированы за определенный интервал дат, при повторной выгрузке данных из r_keeper в StoreHouse документы за текущую дату будут обновлены (если эти документы не проведены). Т.е. если данные в БД r_keeper по закрытым сменам изменились, данные в документах расхода также изменятся.
- При выгрузке данных с разбивкой по складам списания, если у какого-то из товаров (группы товаров) не определен склад списания, то такой товар (группа товаров) будут помещены в отдельный документ расхода с категорией расхода Реализация (по умолчанию).
- Если на кассе r_keeper продано блюдо с модификаторами, а в StoreHouse для данного товара определен тип услуга, то в документ расхода такой товар будет выгружен без модификаторов. Если необходимо прогрузить модификаторы, то необходимо удалить документы расхода с данным товаром, изменить тип на товар и импортировать данные еще раз.
Назначение SQL-таблиц
Наименование таблицы | Содержимое таблицы |
---|---|
data_shcr_CatFoodCost | Фудкост |
data_shcr_cmprotocol | Протокол комплектов |
data_shcr_cm | Шапка комплектов |
data_shcr_cm_atributes | Атрибуты комплектов |
data_shcr_cm_detail | Компоненты комплектов |
data_shcr_cm_tech | Технология сборки комплектов |
data_shcr_cm_version | Версии комплектов |
data_shcr_CorrTree | Дерево корреспондентов |
data_shcr_CorrFullList | Корреспонденты |
data_shcr_docprotocol | Протокол накладных |
data_shcr_doc | Шапка накладных |
data_shcr_doc_attrs | Атрибуты накладных |
data_shcr_doc_lines | Товары накладных |
data_shcr_expdocprotocol | Протокол документов расхода |
data_shcr_expdoc | Шапка документов расхода |
data_shcr_expdoc_lines | Товары документов расхода |
data_shcr_expdoc_lines_details | Детализация товаров (модификаторы) |
data_shcr_GoodsTree | Дерево товаров |
data_shcr_Goods | Товары |
data_shcr_GoodsBaseAttrs | Атрибуты из карточки товаров |
data_shcr_GoodsBaseCompl | Комплекты из карточки товаров |
data_shcr_GoodsBaseMain | Заголовок из карточки товаров |
data_shcr_GoodsBaseMeasures | Единицы измерения из карточки товаров |
data_shcr_GoodsBaseStore | Запас из карточки товаров |
data_shcr_GoodsBaseWrite_Off | Списание из карточки товаров |
data_shcr_GoodsCtg | Осн. категории товаров |
data_shcr_GoodsCtg2 | Бух. категории товаров |
data_shcr_idocprotocol | Протокол счет-фактур |
data_shcr_idoc | Шапка счет-фактур |
data_shcr_idoc_lines | Товары в счет-фактур |
data_shcr_MGroups | Группы единиц измерения |
data_shcr_MUnits | Единицы измерения |
data_shcr_OwnAttrs | Собственные реквизиты |
data_shcr_TDoc | Шапка шаблона накладных |
data_shcr_TDoc_details | Товары шаблона накладных |
data_shcr_PLDoc | Шапка прейскурантов |
data_shcr_PLDoc_details | Товары |
data_shcr_StoreMapping | Разбивка данных по складам |
DEPARTS | Настройки серверов |
Если нужно пересоздать БД SQL для r_keeper 7, например, в случае переезда сервера, можно выгрузить данные из таблицы DEPARTS. Она содержит настройки серверов, что позволит сократить время настройки DataCollector для новой БД.