Загрузка броней TravelLine в заказ-наряды 1С:УНФ расширением конфигурации

14.09.26

Функциональные - Управление услугами и сервисом

Типичная схема небольшой гостиницы: канал продаж и шахматка живут в TravelLine (TL: Channel Manager, Booking Engine, иногда WebPMS), а деньги, контрагенты и загрузка ресурсов — в 1С:Управление нашей фирмой. Между ними обычно стоит человек с таблицей: перенёс бронь, забыл дату выезда, перепутал категорию, не закрыл ресурс на даты проживания. Задача расширения узкая и практическая: один раз настроить подключение к TravelLine Partner API и дальше получать брони в УНФ уже как заказ-наряды. Обратной выгрузки квот и цен в TravelLine нет — это сознательное ограничение первой версии. Статья написана по итогам рабочей интеграции: от OAuth и разбора JSON до ограничений тарифа «Мини отель» и отличия блока доступности от настоящей брони гостя.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Загрузка броней TravelLine в заказ-наряды 1С:УНФ расширением конфигурации:
.cfe 33,09Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Постановка задачи


Нужен односторонний обменTravelLine → УНФ без доработки типовых объектов.

Какое было выбрано соответствие свойств

Количество в строке работы — 1 (проживание), кратность — число ночей. Период ресурса совпадает с заездом и выездом. Отменённая бронь переводит заказ-наряд в завершённое отменённое состояние.


Почему расширение, а не изменение УНФ


Гостиничный учёт в УНФ хорошо ложится на заказ-наряд: работа — проживание в категории, ресурс — конкретный номер на интервал дат. Менять типовые модули ради этого не нужно. Расширение с префиксом Расш1_ добавляет свои справочники, регистры и обработку и не подписывается на события типовых документов.
• обновления УНФ ставятся штатно;
• права и подсистема изолированы;
• соответствия «идентификатор TravelLine → ссылка УНФ» лежат в своём регистре, повторная загрузка обновляет тот же заказ-наряд;
• протокол обмена пишется в журнал и сразу виден в обработке.


Состав расширения


В подключении хранятся адреса авторизации и API (по умолчанию partner.tlintegration.com), propertyId отеля, continueToken для инкрементальной выборки и дата последней синхронизации. Токен клиента — реквизит с режимом пароля.


Какие API TravelLine реально нужны


В кабинете TravelLine раздел «Подключения API» выглядит как набор галочек. Для этой задачи важны не все.


PMS API на тарифах вроде «Мини отель» часто стоит в статусе «Остановлено» и отвечает 403 You cannot consume this service. Это не значит, что брони читать нельзя: Read Reservation — отдельный продукт. Без PMS API расширение создаёт ресурсы по категориям и подставляет конкретный номер, только если он пришёл в самой брони.
Отдельная путаница — календарь «Блок доступности». Колонки «Продаётся онлайн» и «Закрыть / Открыть» — это квоты канала, а не документы бронирования. Read Reservation отдаёт только брони с номером вида ГГГГММДД-propertyId-… из раздела «Бронирования» (ручная бронь, сайт, OTA).


Авторизация и разбор JSON


Токен получают POST-запросом на /auth/token с grant_type=client_credentials. Дальше все вызовы идут с заголовком Authorization: Bearer.

Тело = "grant_type=client_credentials"
    + "&client_id=" + КодироватьURL(ИдентификаторКлиента)
    + "&client_secret=" + КодироватьURL(Токен);
Ответ = ВыполнитьHTTP(ХостАвторизации, "POST", "/auth/token", Тело, "application/x-www-form-urlencoded", "");


Если читать JSON в Структуру, ответ авторизации падает на полях вроде not-before-policy: дефис не является допустимым именем свойства. Читать нужно в Соответствие.

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
Данные = ПрочитатьJSON(ЧтениеJSON, Истина); // Соответствие
ЧтениеJSON.Закрыть();

Ниже перечень методов/свойств
1. Content API: GET /api/content/v1/properties — список отелей. Если код отеля в подключении пуст, записывается первый найденный propertyId.
2. GET /api/content/v1/properties/{propertyId} — массив roomTypes. На каждую категорию создаётся или находится номенклатура с типом «Работа».
3. PMS API: /api/pms/v2/properties/{id}/rooms. При 403 или 404 физические номера пропускаются без аварийного завершения, в протокол пишется причина.
4. Fallback: ресурс на категорию с техническим идентификатором roomType-{id}. В заказ-наряде он занимает место номера, пока в брони нет конкретного roomId.

Соответствия пишутся в регистр, поэтому повторная синхронизация не плодит дубли номенклатуры и ресурсов.
Как устроена загрузка броней
Read Reservation отдаёт постраничный список bookingSummaries.
lastModification — старт выборки в UTC. Без него API инициирует полную синхронизацию с 2009-01-01, и HTTP-запрос легко упирается в таймаут;
continueToken — продолжение с прошлого ответа; нельзя передавать вместе с lastModification;
hasMoreData = false означает конец текущей порции, но следующие вызовы с тем же токеном уже вернут новые и изменённые брони.


В обработке с формы запускается загрузка за последние 24 месяца — так пользователь не зависит от застрявшего continueToken. Регламентное задание может идти инкрементально по сохранённому токену.
На каждую сводку запрашиваются детали GET .../bookings/{number}. Из roomStays берутся категория, даты, сумма, гости.


1. Найти заказ-наряд по регистру соответствий. Если нет — создать документ с видом операции «Заказ-наряд».
2. Контрагент — по ФИО гостя (создаётся при включённом флаге). Пока упрощенный вариант - в дальнейшем можно привязаться к телефону или электронной почте.
3. ТЧ «Работы» очищается и заполняется заново: номенклатура категории, количество 1, кратность = число ночей, сумма из priceAfterTax.
4. ТЧ «Ресурсы предприятия»: конкретный номер, если он есть в брони, иначе ресурс категории; Старт / Финиш = заезд / выезд.
5. Дополнительные услуги брони добавляются отдельными строками работ.
6. Документ записывается. Проведение — отдельный флаг: если оно падает на заполненности типовых реквизитов, остаётся запись.


Установка


1. В конфигураторе загрузить расширение из каталога выгрузки (префикс Расш1_, назначение «Дополнение»).
2. Проверить, что расширение активно, безопасный режим выключен: нужны HTTP-соединения и запись документов.
3. Обновить конфигурацию базы данных.
4. Назначить пользователям роль Расш1_ОсновнаяРоль.
5. В пользовательском режиме открыть раздел TravelLine — Синхронизация TravelLine.


Настройка подключения


В справочнике заполняются идентификатор и токен из кабинета TravelLine.

Код отеля можно не указывать: его подставит Content API при первой проверке. Организация — та, от которой будут заказ-наряды.
Рекомендуемый порядок кнопок:

«Проверить подключение» — токен и список отелей;

«Справочники» — категории и номера;

«Загрузить брони» — заказ-наряды. В протоколе должны появиться HTTP-код 200 и комментарии по логам.


Регламентное задание включено по умолчанию с периодом 900 секунд. На копии базы его лучше выключить.


Настройка кабинета TravelLine


В карточке API-подключения должны стоять как минимум Content API и Read Reservation API. Условия оферты TravelLine нужно принять в кабинете: без этого токен может выдаваться, а прикладные методы отвечать 403.


Чтобы в УНФ появились именно «Номер 101», а не ресурс «Стандарт», нужен PMS API и тариф, где он разрешён (Стандарт, Премиум или платная опция к «Мини отелю»). PMS Integration API для этой цели не подходит: он про доступность и блоки квот, а не про карточки физических номеров WebPMS.


Что сознательно не сделано (пока?)


• выгрузка броней и цен обратно в TravelLine;
• вебхуки — контур рассчитан на периодический обмен;
• сопоставления уже существующих номенклатуры и ресурсов: первое создание идёт автоматически по наименованию категории.
Это можно нарастить тем же расширением: регистр соответствий и журнал уже есть, менять типовую УНФ по-прежнему не потребуется.

 

Идеи для следующей версии


Можно будет добавить отправку броней непосредственно из 1С. Поменять интерфейс Планирования ресурсов с адаптацией к гостиницам


Заключение

Заказ-наряд УНФ удачно совпадает с гостиничной бронью: работа — категория, ресурс — номер на даты, контрагент — гость. По крайней мере другого решения в лоб с минимальными доработками я не увидел. TravelLine Partner API это покрывает связкой Content + Read Reservation;


Расширение является стартом для доработок - и предоставляется "как есть". Посмотрим на спрос - возможно будем адаптировать.


 

Проверено на следующих конфигурациях и релизах:

  • Управление нашей фирмой, редакция 3.0, релизы 3.0.14.143

Вступайте в нашу телеграмм-группу Инфостарт

TravelLine УНФ учет брони бронь заказ-наряд расширение REST OAuth Partner API гостиничный бизнес

См. также

Типовые Комплексное управление ресурсами (ERP) Управление услугами и сервисом Бизнес-аналитик Бухгалтер Пользователь 1С:Предприятие 8 Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Комплексная автоматизация 1С — универсальное решение для управления предприятием и автоматизации учета, производства, продаж и финансов. Подходит для малого и среднего бизнеса. Купить программу 1С:Комплексная автоматизация 8 (редакция 2.5) можно по выгодной цене с электронной поставкой. Внедрение системы позволит объединить все ключевые процессы в одной платформе и повысить эффективность компании. Узнайте стоимость, сравните версии и закажите автоматизацию для вашего бизнеса! Покупайте в Инфостарт и получайте 15% бонусов на наши услуги, сервисы и мероприятия!

108000 руб.

19.02.2016    90992    153    0    

144

Управление услугами и сервисом Банк Пользователь Руководитель проекта 1С:Предприятие 8 Финансовые услуги, инвестиции Управленческий учет Платные (руб)

Отраслевое решение "1С:Управление микрофинансовой организацией и кредитным потребительским кооперативом КОРП" предназначено для комплексной автоматизации деятельности микрофинансовых организаций и кредитных потребительских кооперативов: обеспечение деятельности по предоставлению и привлечению денежных средств, ведение бухгалтерского и налогового учета всех хозяйственных операций микрофинансовых организаций (МФО) и кредитных потребительских кооперативов (КПК) на Едином плане счетов (ЕПС), формирование отчетности в соответствие с отраслевыми стандартами бухгалтерского учета (ОСБУ), утвержденными Банком России.

58500 руб.

03.02.2017    46945    5    4    

3

Управление услугами и сервисом Рестораны и общепит Типовые Бизнес-аналитик Бухгалтер Пользователь 1С:Предприятие 8 Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

1С:Общепит - решение для автоматизации учета и управления на предприятиях общественного питания. Учет продуктов и рецептур, контроль качества, формирование меню, управление складом и заказами, а также аналитика и интеграции с оборудованием. Версии КОРП и ПРОФ. Купите 1С:Общепит с бонусом 15% в Инфостарт и получите надежный инструмент для автоматизации вашего предприятия!

50700 руб.

17.02.2016    75231    43    1    

24

Управление услугами и сервисом ЖКХ Типовые Строительство и недвижимость Бизнес-аналитик Бухгалтер Пользователь 1С:Предприятие 8 Энергетика и ЖКХ Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Программный продукт предназначен для организации эффективного управления и автоматизации всех процессов в управляющих компаниях ЖКХ, товариществах собственников жилья (ТСЖ), жилищно-строительных кооперативах (ЖСК).

30600 руб.

21.02.2016    48508    22    1    

19

Управление услугами и сервисом Рестораны и общепит Бизнес-аналитик Пользователь Руководитель проекта 1С:Предприятие 8 Рестораны, кафе и фаст-фуд Управленческий учет Платные (руб)

Решение предназначено для автоматизации сетевых и одиночных предприятий общественного питания, работающих по классической схеме обслуживания гостей с официантом (оформление предварительного заказа на столик). С помощью решения могут быть автоматизированы независимые и сетевые предприятия любых форматов и концепций – рестораны, кафе, бары, столовые, подразделения питания гостинично-ресторанных комплексов, развлекательных центров и другие предприятия питания.

24600 руб.

02.03.2020    32247    16    0    

21

Управление услугами и сервисом Рестораны и общепит Бухгалтер Пользователь Руководитель проекта 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 Управленческий учет Платные (руб)

Решение предназначено для автоматизации управления и учета в независимых и сетевых предприятиях общественного питания различных форматов и концепций, таких как: ресторанные холдинги (в том числе франчайзинг); кейтеринговые компании и операторы питания; службы собственного питания на предприятиях различного профиля; подразделения питания в составе отелей, гостиниц и других объектов размещения; цеха по производству кулинарной продукции, в том числе в составе ресторанных или розничных продуктовых сетей; а также другие предприятия общепита.

59700 руб.

03.07.2020    25081    18    0    

11

Рестораны и общепит Управление услугами и сервисом Бухгалтер Пользователь 1С:Предприятие 8 Рестораны, кафе и фаст-фуд Управленческий учет Платные (руб)

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

8200 руб.

05.07.2018    46905    54    5    

29
Для отправки сообщения требуется регистрация/авторизация