Как настроить интеграцию 1С:Отель с Rkeeper для закрытия счетов на номер гостя

Системный администратор 1С v8.3 (Управляемые формы) Управленческий учет Сфера услуг, туризм и социальный сектор
← На главную

В современной гостиничной индустрии бесшовная интеграция между рестораном и службой приема гостей является стандартом качества. Одной из самых востребованных функций является «закрытие на номер» — возможность гостя поужинать в ресторане и записать сумму чека на свой гостиничный счет (фолио), чтобы оплатить всё при выезде. Однако настройка связки 1С:Отель и Rkeeper часто вызывает вопросы из-за отсутствия подробных пошаговых инструкций в открытом доступе, хотя такие задачи, как загрузка курсов валют, обычно решаются гораздо быстрее.

В рамках этой статьи мы подробно разберем, как реализовать эту задачу, проанализируем архитектуру обмена и выясним, какие «подводные камни» могут встретиться в процессе настройки.

Архитектурный принцип взаимодействия систем

Прежде чем приступать к кликам в интерфейсе, давайте разберем логику взаимодействия. Важно понимать, что в данной связке 1С:Отель выступает в роли сервера (слушателя), а Rkeeper — в роли клиента.

Когда официант в ресторане выбирает тип оплаты «На номер», кассовая станция Rkeeper инициирует запрос к базе данных отеля. Процесс выглядит следующим образом:

  1. Rkeeper отправляет XML-запрос в 1С:Отель с вопросом: «Есть ли гость в номере 101 и какой у него баланс?».
  2. 1С:Отель проверяет статус проживания гостя, наличие блокировок и кредитный лимит.
  3. Если проверка пройдена, 1С возвращает положительный ответ, и Rkeeper позволяет закрыть чек.
  4. Данные о транзакции передаются в 1С, где автоматически создается запись об оказанной услуге в счете гостя.

Рассмотрим подробнее этапы настройки каждой из систем.

Настройка на стороне 1С:Отель

Проанализируем необходимые действия в конфигурации 1С. Основная работа ведется в разделе настроек параметров системы и справочниках интерфейсов.

Во-первых, нам необходимо активировать поддержку внешних систем. Перейдем в раздел Параметры системы, далее выберем вкладку Интерфейсы. Здесь мы должны найти настройки FMS-интерфейса (часто называемого PostInterface). Этот интерфейс отвечает за прием сообщений от ресторанных систем.

Разберем по шагам ключевые поля:

Далее нам необходимо настроить сопоставление данных. В справочнике Способы оплаты создадим новый элемент, например, «Закрытие из ресторана». В поле Код для внешних систем укажем идентификатор, который будет присылать Rkeeper (например, код 2 или 10, в зависимости от настроек в менеджерской части RK).

Настройка на стороне Rkeeper 7

Теперь перейдем к настройкам ресторанной части. Хотя со стороны Rkeeper документация обычно более доступна, выделим главные моменты, без которых интеграция не заработает.

Посмотрим на справочник драйверов в менеджерской части Rkeeper. На кассовый сервер необходимо добавить драйвер связи с PMS-системой. Обычно это драйвер типа fms.dll или специализированный XML-интерфейс. В настройках драйвера укажем IP-адрес сервера 1С и тот самый порт, который мы открыли ранее.

Рассмотрим настройку типов оплат в Rkeeper:

  1. Создаем новый тип оплаты «На номер».
  2. В свойствах оплаты указываем, что она должна обрабатываться через внешний интерфейс (Interface).
  3. Привязываем этот тип оплаты к ранее настроенному драйверу FMS.

Важный нюанс: для работы обмена в Rkeeper должна быть активна лицензия на XML Interface или Interface to PMS. Без этого кассовый сервер не сможет инициировать внешние запросы.

Синхронизация номенклатуры и налоговых ставок

Выясним причину, по которой многие внедрения застревают на этапе тестирования. Это несоответствие справочников. Нам необходимо выполнить маппинг (сопоставление) кодов отделов.

В 1С:Отель каждая услуга привязана к Номенклатуре и Секции оплаты. В Rkeeper блюда также распределены по департаментам. Чтобы сумма ужина корректно упала в счет гостя, нам нужно настроить таблицу соответствий в 1С. Рассмотрим пример кода, описывающего логику обработки входящего запроса (условно):


// Пример логики обработки входящей транзакции от Rkeeper
Процедура ОбработатьЗапросОтРесторана(ДанныеЧека)
    КодОтдела = ДанныеЧека.DepartmentCode;
    Сумма = ДанныеЧека.Amount;
    
    // Ищем соответствие услуги отеля коду отдела ресторана
    УслугаОтеля = Справочники.Номенклатура.НайтиПоКоду(КодОтдела);
    
    Если УслугаОтеля.Пустая() Тогда
        ВызватьИсключение "Не настроено сопоставление для отдела " + КодОтдела;
    КонецЕсли;
    
    // Начисляем услугу на фолио гостя
    НачислитьУслугуНаНомер(ДанныеЧека.НомерКомнаты, УслугаОтеля, Сумма);
КонецПроцедуры

Обратите внимание на налоговые ставки. Если в Rkeeper блюдо идет с НДС 20%, а в 1С:Отель услуга «Питание» настроена с НДС 0% или «Без НДС», система может выдать ошибку при попытке проведения документа. Рекомендуем заранее синхронизировать налоговые настройки в обеих базах.

Почему настройка стоит дорого?

Как отмечалось в обсуждении, специалисты часто запрашивают значительные суммы за «простую настройку». Проанализируем ситуацию: работающая интеграция — это не только прописанный IP-адрес. Это:

Отладка и тестирование

Разберем, как проверить работоспособность связки. После настройки портов и интерфейсов воспользуемся утилитами для проверки TCP-соединения (например, telnet или TestPort). Если порт отвечает, попробуем совершить тестовую продажу.

В 1С:Отель полезно заглянуть в журнал регистрации или специализированный лог FMS-интерфейса (если он включен в настройках). Там можно увидеть структуру XML-пакета, который пришел от Rkeeper. Технически процесс приема данных напоминает загрузку приходной накладной в 1С из внешних XML-файлов. Если в пакете видны ошибки типа Invalid Room Number или Guest Not Found, значит, связь установлена, но данные в запросе не соответствуют текущему состоянию базы отеля.

Подводя итог, настройка интеграции 1С:Отель и Rkeeper требует системного подхода. Несмотря на заявленную «готовность» интеграции, основная работа заключается в тонкой подстройке справочников и сетевых интерфейсов под конкретные бизнес-процессы вашего объекта.

← На главную