Перейти к содержанию

API (Кинт)

Материал из КинтВики

Общая информация

Введение

API программного продукта позволяет делать интеграции с другим ПО. Например, реализовать личный кабинет на сайте. Для этого, разработчики могут обращаться в базу как для операций обычного чтения, так и для записи.

Требования

  1. База, к которой обращаются, должна быть опубликована на веб-сервере.
    1. При публикации базы, должна быть выполнена активация HTTP-сервиса KintAPI.
    2. Проверить правильность выполнения публикации можно путём обращения к методу GetDBInfo. Пример: https://demo.kint.ru/kus_demo/hs/KintAPI.hs/GetData?Method=GetDBInfo
  2. Разработчик должен иметь базовые знания о том, что такое HTTP-протокол и JSON-сериализация
    1. Что такое тело запроса, и чем оно отличается от параметров
    2. Unified Request Location и Unified Request Identifier не должны быть пустыми определениями
    3. Виды запросов (POST, GET, OPTIONS) и чем они отличаются
    4. Базовая авторизация (если публикация выполнена без предопределения аутентификационных данных)

Вызов методов

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

До версии 21.07, единственным способом вызвать какую-либо функцию, была передача названия в предопределенном параметре Method на URI /pub/hs/KintAPI.hs/GetData или /pub/hs/KintAPI.hs/PostData, в зависимости от типа запроса.

Начиная с релиза 21.07, имя вызываемого метода стало частью URI, и вместо GetData / PostData, стало возможным прописывать имя метода (например, /pub/hs/KintAPI.hs/GetDBInfo). Старый способ вызова методов сохранился для поддержания совместимости с уже реализованными интеграциями.

Помните, что для веб-сервера регистр букв важен, и запрос вида /pub/hs/kintapi.hs/getdbinfo гарантированно приведёт к ошибке 404.

Предопределенные параметры запроса

На поведение сериализатора и API можно влиять путём передачи специальных параметров. Имена параметров можно передавать как на русском, так и на английском языке.

Имя параметра на русском Имя параметра на английском Описание Пример значения Значение по-умолчанию
Реквизиты Fields Задаёт перечень реквизитов, которые должны быть переданы вместе с ссылками на элементы. Поддерживается получение нестандартных реквизитов: ПредставлениеОбъекта, Идентификатор, GUID. Ссылка,Контрагент,КонтактноеЛицо,Договор Не задано
ДополнительныеСвойства AdditionalProperties Перечень свойств, которые должны быть добавлены в тело ответа. Ключ под свойство добавляется даже в случае отсутствия какого-либо значения. Телефон,ЭлектроннаяПочта Не задано
ПреобразоватьКлючи ConvertKeys Указывает, необходимо ли переводить ключи с русского на английский (если в встроенном словаре имеется сопоставление). true Включено
- test Предназначено более для тестов сериализации. API не будет вызывать метод, и просто вернёт JSON так, как она его получила и "пропарсила" из POST-запроса. Значение не требуется, достаточно просто передать параметр Не используется
- raw Возвращает ответ (если представляется возможным) сырым телом, без какой-либо сериализации. Не должно использоваться в нормальных ситуациях. Значение не требуется, достаточно просто передать параметр Не используется

Формат ответа

API возвращает ответы всегда в формате JSON, даже если запрашивается иной через заголовок Accept. В качестве Content-Type задано значение application/json;charset=utf-8.

Структура ответа содержит два поля:

  • Success - флаг успешности выполнения, присутствует всегда
  • Result - результат выполнения

В зависимости от Success и вызываемого метода, результат может быть разным. Для случаев, когда вызов завершился ошибкой, структура гарантированно следующая:

  • Error - описание ошибки
  • КодОшибки - код ошибки
{
    "Success": false,
    "Result": {
        "Error": "Метод конфигурации «ИмяМетода» не найден!",
        "КодОшибки": 1000
    }
}

Коды ошибок

Есть небольшой набор предопределенных кодов ошибок, которые могут быть вызваны по тем или иным причинам в любом продукте.

Код ошибки (ErrorCode) Описание
1000 Передано некорректное или не существующее имя метода
1001 Переданы некорректные параметры запроса
1002 Передан некорректный текст POST запроса
1010 Внутренняя ошибка конфигурации, при возникновении ошибки напишите об этом на spp@kint.ru
1032 При отмене заявки оказалось что она уже отменена, необходимо со стороны сайта написать обработчик такой ситуации
1040 Ведутся технические работы на сервере
1041 Сбой сетевого оборудования
1100 Не передан параметр с видом справочника
1101 Переданный вид справочника отсутствует в конфигурации
1102 Элемент справочника не найден по полям поиска
1103 По полям поиска найдено несколько подходящих элементов
1104 Ошибка записи элемента справочника, возможно переданы не все обязательные реквизиты

Запрос

Передача параметров методу зависит от самого метода, но есть некоторые принятые стандарты в их отношении.

  • Если параметр требует передачу любого ссылочного объекта - передаётся JSON-структура с одним из ключевых полей: ID или GUID.
    • ID - навигационная ссылка на объект в базе 1С: Предприятия: e1cib/data/Справочник.НоменклатураПомещений?ref=b4585404a66e4a8911e8bb0449fde0fc
    • GUID - уникальный идентификатор ссылки: 49fde0fc-bb04-11e8-b458-5404a66e4a89
    • Важное замечание: Поиск по ID работает быстрее поиска по GUID, потому приоритет остаётся за ним при передаче двух полей одновременно.
  • Для предопределенных значений и элементов перечислений доступен поиск по имени предопределенного элемента, например Перечисление.яъПол.Мужской.
  • Файлы приложений должны быть закодированы в формат base64 и переданы внутри тела JSON-объекта, в ключе File.

Авторизация

Для подключения к базе-источнику требуется передать имя и пароль пользователя базы данных: пользователь должен быть добавлен в список пользователей информационной базы. Это ограничение, накладываемое платформой 1С: Предприятие. Передача данных передаётся с помощью стандартного механизма HTTP-аутентификации, подробнее о нём прочитать можно здесь.

Если произвести авторизацию не представляется возможным, можно произвести публикацию базы с беcпарольной аутентификацией (когда пользователь и его пароль прописаны на веб-сервере в default.vrd), но имейте в виду, что в таком случае любой, у кого будет ссылка на неё, сможет заходить в базу через режим 1С: Предприятие, если соответствующие права у пользователя имеются.

Пагинация

Доступно получение не всего результата запроса, а частями по страницам с сохранением порядка записей. Для получения количества записей можно воспользоваться методом КоличествоЭлементов.

Имя параметра на русском Имя параметра на английском Описание Пример значения Значение по умолчанию
КоличествоЭлементов CountOnPage Количество элементов в результате запроса. 100 0
НомерСтраницы PageNumber Номер требуемой части результата запроса. 10 1

Методы с поддержкой пагинации:

Пример вызова
/hs/KintAPI.hs/GetData?Method=GetCatalog&CatalogName=яъФизическиеЛица&PageNumber=6&CountOnPage=10 

Общие методы

В данном разделе описаны методы, доступные в любой конфигурации. В скобках указано наименование кириллицей, если оно есть.

GetCatalog (СписокЭлементов)

  • Тип HTTP-запроса: GET
  • Описание: Возвращает перечень элементов по заданному отбору. Можно использовать для получения списка идентификаторов, организаций, категорий номеров и прочего.
Параметры
Наименование Обязателен? Тип данных Описание Пример
Вид / CatalogName Да Строка Имя объекта, из которого формируется выдача Организации
Отбор / Filter Нет Структура Структура, указывающая, по каким реквизитам и их значениям необходимо делать отбор {"ИНН": "1835012280"}
Тип / CatalogType Нет Строка Вид объекта, по умолчанию "Справочник". Справочник
  • Пример вызова:
    /GetData?Method=GetCatalog&CatalogName=Организации&Fields=Ссылка,ИНН,КПП
  • Пример вызова для списка документов:
    /GetData?Method=GetCatalog&CatalogName=ПоступлениеТоваровУслуг&CatalogType=Документ&Fields=Номер,Дата
  • Пример вызова с отбором:
    /GetData?Method=GetCatalog&CatalogName=Организации&Fields=Ссылка,ИНН,КПП&Filter={"ГоловнаяОрганизация":%20{"ID":"e1cib/data/Справочник.Организации?ref=ad5c5404a66e4a8911e37e83f3ef6892"}}
  • Пример вызова с пагинацией:
    /GetData?Method=GetCatalog&CatalogName=яъФизическиеЛица&Fields=Наименование,Пол&PageNumber=24&CountOnPage=100&Filter={"Пол": "Перечисление.яъПол.Мужской"}
  • Пример вызова для получения списка идентификаторов:
    /GetData?Method=GetCatalog&CatalogName=Организации&Fields=Идентификатор
Пример ответа
{
    "Success": true,
    "Result":
    [
        {
            "Ссылка":
            {
                "Name": "ОАО санаторий \"Родные просторы\"",
                "ID": "e1cib/data/Справочник.Организации?ref=8e8150e54935bd5411e25bc6880bb616"
            },
            "ИНН": "1835012280",
            "КПП": "184101001"
        },
        {
            "Ссылка":
            {
                "Name": "ООО \"Италмас\"",
                "ID": "e1cib/data/Справочник.Организации?ref=b72f90e6baabdd1411e271b038722897"
            },
            "ИНН": "",
            "КПП": ""
        }
    ]
}

GetDBInfo (ДанныеИБ)

Возвращает информацию о версии информационной базы. Параметров нет. Можно использовать для проверки работоспособности API.

Пример вызова
/GetDBInfo
Проверка работоспособности API
https://<адрес_сервера>/<имя_публикации>/hs/KintAPI.hs/GetDBInfo
Пример ответа
{
    "Success": true,
    "Result": {
        "ВерсияAPI": "1.1",
        "НомерРелиза": "21.11.01"
    }
}

QRCode (КартинкаQR)

  • Тип HTTP-запроса: GET
  • Описание: Получает картинку QR-кода по навигационной ссылке переданного объекта в формате BASE64.

ОбъектПоНавигационнойСсылке

  • Тип HTTP-запроса: GET
  • Описание:
Параметры
Наименование Обязателен? Тип данных Описание Пример
НавигационнаяСсылка Да Строка Навигационная ссылка на объект в информационной базе e1cib/data/Справочник.яъФизическиеЛица?ref=9a6c5404a66e4a8911e5bb8e2aa0771f

GetPrintForm (ПолучитьПечатнуюФорму)

Позволяет получить сформированную печатную форму в выбранном формате.

Параметры:

  • Объект (GUID, обязательный) - для кого получаем значение параметра
  • ПечатнаяФорма (GUID, не обязательный только в случае получения значения параметра) - может использоваться для расширения списка параметров. Без печатной формы список параметров может быть ограничен.
  • Формат (не обязательный только в случае получения значения параметра) - доступны значения: DOCX, HTML5, MXL, PDF, TXT, XLS
  • ИмяПараметра (Строка, не обязательный) - если передан, то вернется не печатная форма, а значение переданного параметра. По умолчанию доступны параметры на вкладках «Основные» + «Доступные» + «Дополнительные» в форме настройки печатной формы.
  • стрТипВыходныхДанных (Строка, не обязательный) - может использоваться тип данных Base64 или ДвоичныеДанные, в ином случае возвращает содержимое файла. Значение по умолчанию Base64.
Пример вызова
/GetData?Method=GetPrintForm&Объект={"GUID":%20"dc7970e4-e673-11e9-b48d-5404a66e4a89"}&ПечатнаяФорма={"GUID":%20"09c83fe6-f918-4388-a2ee-b0a3276941d4"}&Формат=PDF
Пример ответа
{
"Success": true,
"Result": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PAovRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDIgMCBSCi9MZW5ndGgxIDU0Nzk2Ci9MZW5ndGgyIDAKL0 ... UlRU9GCg=="
}
Пример вызова для получения значения параметра
/GetData?Method=GetPrintForm&Объект={"GUID":%20"dc7970e4-e673-11e9-b48d-5404a66e4a89"}&ПечатнаяФорма={"GUID":%20"09c83fe6-f918-4388-a2ee-b0a3276941d4"}&ИмяПараметра=ФизЛицо
Пример ответа
{
"Success": true,
"Result": {
"Наименование": "Иванов Иван Иванович",
"Код": "000000793 ",
"Идентификатор": "e1cib/data/Справочник.яъФизическиеЛица?ref=813b5404a66e4a8911e35761a7492167",
"ПометкаУдаления": false,
"ЭтоГруппа": false
}
}

GetReport (РезультатУФО)

Позволяет получить результат отчета в переданном формате. Можно получить результат как базовой настройки отчета, так и произвольной сессии. С помощью получения результата сессии можно настроить для вызова через API вариант отчета, который пользователям недоступен. Ссылка на отчет с настройками сессии содержит ключевое слово ?settings.

Параметры:

  • Отчет (GUID, обязательный) - навигационная ссылка на отчет.
  • ТипФайла - формат результата.
    • JSON, CSV позволяют получить таблицу данных отчета
    • XLSX, PDF, TXT, DOCX, MXL позволяют получить результат отчета в том же виде, в котором сохраняется табличный документ результата отчета в режиме «1С: Предприятие», данные закодированы в строку BASE64.
Пример вызова для получения результата базовой настройки отчета
/hs/KintAPI.hs/РезультатУФО?Отчет={"Идентификатор":%20"e1cib/data/Справочник.яъОтчеты?ref=9c415404a66e4a8911e4dcfb89878423"}&Формат=JSON
Пример вызова для настроек сессии
/hs/KintAPI.hs/РезультатУФО?Отчет=e1cib/data/Справочник.яъОтчеты?ref=9c415404a66e4a8911e4dcfb89878423?settings=db2497e6-72f3-4b17-8bea-eb62a42f74b0&Формат=JSON
Пример ответа
{
"Success": true,
"Result": "[
{"Корпус": "Корпус 2","Заехало": 1,"ЗапланированЗаезд": 1},
{"Корпус": "Корпус 33","Заехало": 0,"ЗапланированЗаезд": 0}
]"
}


Получение результата отчета также доступно с указанием структуры отчета. Доступно указание разворотов, ресурсов, отборов и сортировки отчета.

Пример вызова
/hs/KintAPI.hs/РезультатУФО?Отчет=ОказанныеУслуги&Формат=JSON
Тело POST запроса
{
  "Настройки": {
    "Развороты": [
      {
        "Имя": "фПлатная",
        "ИмяВладельца": "Вертикально",
        "фВКолонки": false,
        "Представление": ""
      },
      {
        "Имя": "Услуга",
        "ИмяВладельца": "фПлатная",
        "фВКолонки": false,
        "Представление": ""
      }
    ],
    "Ресурсы": [
      {
        "Имя": "КоличествоСеансов",
        "Итог": "Сумма",
        "РасчитыватьПо": "",
        "ИмяВладельца": "",
        "Группа": "",
        "Группировка": "",
        "Представление": "Выполнено"
      },
      {
        "Имя": "Стоимость",
        "Итог": "Сумма",
        "РасчитыватьПо": "",
        "ИмяВладельца": "",
        "Группа": "",
        "Группировка": "",
        "Представление": ""
      },
      {
        "Имя": "ПроцедурныеЕдиницы",
        "Итог": "Сумма",
        "РасчитыватьПо": "",
        "ИмяВладельца": "",
        "Группа": "",
        "Группировка": "",
        "Представление": "Проц. ед."
      }
    ],
    "Отбор": [
      {
        "Имя": "Организация",
        "ВидСравненияОтбора": "=",
        "ЗначениеОтбора": null,
        "Использовать": false
      },
      {
        "Имя": "Исполнитель",
        "ВидСравненияОтбора": "=",
        "ЗначениеОтбора": {"Идентификатор": "e1cib/data/Справочник.Сотрудники?ref=bca9d85ed320709611ef75b1fd3f348a"},
        "Использовать": true
      }
    ],
    "Сортировка": [
      {
        "Имя": "Услуга",
        "Использовать": "Истина",
        "Направление": "ВОЗР"
      }
    ],
    "НачалоПериода": "2024-01-01T",
    "КонецПериода": "2024-12-31T"
  }
}
Пример ответа
{
  "Success": true,
  "Result": [
    {
      "фПлатная": false,
      "Услуга": "Ароматерапия",
      "КоличествоСеансов": 71,
      "Стоимость": 4017,
      "ПроцедурныеЕдиницы": 355
    },
    {
      "фПлатная": false,
      "Услуга": "Бассейн",
      "КоличествоСеансов": 70,
      "Стоимость": 20160,
      "ПроцедурныеЕдиницы": 350
    }
  ],
  "Messages": []
}

GetDataSourceInfo (ОписаниеИсточникаДанных)

Позволяет получить описание источника данных в формате JSON.

Параметры:

  • ИсточникДанных (GUID, обязательный) - навигационная ссылка на источник данных.
Пример вызова
/hs/KintAPI.hs/ОписаниеИсточникаДанных?ИсточникДанных=e1cib/data/Справочник.яъИсточникиДанных?ref=bca1d85ed320709611ed397243b5eb7d
Пример ответа
{
"Success": true,
"Result": "{"Наименование": "Тестовый источник данных","яъКатегория": "Запрос","яъКомментарий": "Используется для примеров и тестирования API","яъАвтор": "Иванов Иван","Измерения": "НомерСтроки,Наименование,Идентификатор,Физлицо,УчетнаяЗапись","Ресурсы": "Количество","Параметры": "","HTTPЗапрос": "http://localhost/base_name/hs/KintAPI.hs/ТаблицаИсточникаДанных?ИсточникДанных=e1cib/data/Справочник.яъИсточникиДанных?ref=bca1d85ed320709611ed397243b5eb7d"n}",
"Messages": []
}

GetDataSource (ТаблицаИсточникаДанных)

Позволяет получить таблицу источника данных в формате JSON.

Параметры:

  • ИсточникДанных (GUID, обязательный) - навигационная ссылка на источник данных.
Пример вызова
/hs/KintAPI.hs/ТаблицаИсточникаДанных?ИсточникДанных=e1cib/data/Справочник.яъИсточникиДанных?ref=bc79d85ed320709611e346049adc3ab1
Пример вызова с передачей параметров формирования результата
/hs/KintAPI.hs/ТаблицаИсточникаДанных?ИсточникДанных=e1cib/data/Справочник.яъИсточникиДанных?ref=bc79d85ed320709611e346049adc3ab1&НачалоПериода=01.01.2022&КонецПериода=31.01.2022&ИНН=123456788900&Измерения=Контрагент,Договор&Ресурсы=Количество,Сумма
Пример ответа
{
"Success": true,
"Result": "[{"Дело": "Разное","Количество": 7},{"Дело": "КП","Количество": 2},{"Дело": "К:БУ","Количество": 1}]"
}

ЕстьПраваАдминистратора

  • Тип HTTP-запроса: GET
  • Описание: Возвращает признак наличия администраторских прав у указанного пользователя.
Параметры
Наименование Обязателен? Тип данных Описание Пример
Пользователь Да СправочникСсылка.яъПользователи Ссылка на пользователя, для которого выполняется проверка наличия прав администратора
{
    "Идентификатор": "e1cib/data/Справочник.яъПользователи?ref=9b7996e6d857ebf811e3a8f3c11af005"
}
Пример вызова
/ЕстьПраваАдминистратора?Пользователь={"Идентификатор": "e1cib/data/Справочник.яъПользователи?ref=9b7996e6d857ebf811e3a8f3c11af005"}
Пример ответа
{
    "Success": true,
    "Result": true
}

GetConstant

  • Тип HTTP-запроса: GET
  • Описание: Возвращает значение константы, свойства или настройки.

Параметры:

  • ID/Идентификатор - название требуемой константы или настройки / код требуемого свойства.
Пример вызова
/hs/KintAPI.hs/GetConstant?ID=ПроцентПредоплатыБрони
Пример ответа
{
"Success": true,
"Result": 50,
"Messages": []
}

PostElement

Создание элемента справочника переданного вида. Параметры:

  • Вид: имя справочника в дереве метаданных или имя предопределенного элемента справочника яъКатегории.

Необязательные параметры:

  • ПоляПоиска: структура имен реквизитов и их значений, по которым будет выполняться поиск существующих элементов.
Пример запроса
/hs/KintAPI.hs/PostData?Method=PostElement&Вид=яъРейсы
Тело запроса (создание нового элемента)
{
"Наименование": "Новый рейс",
"ПунктОтправления": {"Идентификатор": "e1cib/data/Справочник.яъПунктыНазначения?ref=98335404a66e4a8111e976225ef1ac20"}
"ПунктПрибытия": {"Идентификатор": "e1cib/data/Справочник.яъПунктыНазначения?ref=98435404a66e4a8111ea6a959c446ea8"}
"Работа":
[
{
"ВидРабот": {"Идентификатор": "e1cib/data/Справочник.Номенклатура?ref=977bf46d0477991a11ee8d010588b413"},
"Количество": 10,
"ЕдиницаИзмерения": {"Идентификатор": "e1cib/data/Справочник.КлассификаторЕдиницИзмерения?ref=9b8e002590d756f511e7eb0759c329d2"}
}
]
}
Пример ответа
{
"Success": true,
"Result": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Новый рейс",
"Код": "000000004",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.яъРейсы?ref=977bf46d0477991a11ee929ce65408df"
}

Тело запроса (изменение существующего элемента)
{
"Наименование": "Измененный рейс",
"ПоляПоиска":
{
"Код": "000000004"
}
}
Пример ответа
{
"Success": true,
"Result": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Измененный рейс",
"Код": "000000004",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.яъРейсы?ref=977bf46d0477991a11ee929ce65408df"
}

ПолучитьИзмененияПоУзлу

Получение данных объектов, зарегистрированных в узле плана обмена.

Параметры:

  • Объекты: структура с параметрами для получения объектов или идентификаторы через «,».
    • ИдОбъекта: строка формата <Тип объекта>.<Вид объекта> - идентификатор объекта в конфигурации, перечень элементов которых нужно получить, например: «Справочник.Контрагенты», «Документ.ЗаявкаПокупателя», «ПланСчетов.МедицинскиеПоказатели». Для справочников доступно игнорирование указания типа.
    • Отбор: структура с отбором реквизитов для определенного объекта.
    • стрРеквизиты: реквизиты через «,» для получения.
  • Узел: узел плана обмена, по которому необходимо получить зарегистрированные объекты.

Необязательные параметры:

  • Отбор: структура с общим отбором реквизитов для всех получаемых объектов.
  • ОтменитьРегистрацию: отменять ли регистрацию объектов в узле после получения. По умолчанию - Истина.
  • КоличествоЭлементов: количество объектов в результате. Может быть задан для каждого объекта, так и для отдельного.
  • НомерСтраницы: Номер результата пагинации. Может быть задан для каждого объекта, так и для отдельного.
Пример запроса
/hs/KintAPI.hs/GetData?Method=ПолучитьИзмененияПоУзлу&Объекты=[{"ИдОбъекта":"яъФизическиеЛица","стрРеквизиты":"Наименование,Код"},{"ИдОбъекта":"Контрагенты","Отбор":{"Наименование":"Юридические лица"}}]&Узел={"Идентификатор":"e1cib/data/ПланОбмена.ОбменКУСБухгалтерия20?ref=9a4a60a44c379a5b11e91efe3f9ca517"}&Отбор={"ЭтоГруппа":true}&ОтменитьРегистрацию=Ложь
Пример ответа
[
{
"Справочник_яъФизическиеЛица": [
{
"Name": "Старше 70",
"Code": "t010003619"
}
]
},
{
"Справочник_Контрагенты": [
{
"Ссылка": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Юридические лица",
"Код": "Т000936  ",
"ЭтоГруппа": true,
"Идентификатор": "e1cib/data/Справочник.Контрагенты?ref=951ba85e4511756911eec66dccd475d9"
}
}
]
}
]
Пример запроса
/hs/KintAPI.hs/PostData?Method=ПолучитьИзмененияПоУзлуОбъекты=Документ.ЗаявкаГостя,Документ.Путевка&Узел={"Идентификатор":"e1cib/data/ПланОбмена.ОбменКУСБухгалтерия20?ref=9a4a60a44c379a5b11e91efe3f9ca517"}&Отбор={"Контрагент_ПометкаУдаления":true}
[
{
"Документ_ЗаявкаГостя": [
{
"Ссылка": {
"Дата": "2023-11-27T16:58:25",
"Номер": "23/000000000039",
"Идентификатор": "e1cib/data/Документ.ЗаявкаГостя?ref=bca6d85ed320709611ee8d24a1e9d7c7"
}
}
],
},
{
"Документ_Путевка": [
{
"Ссылка": {
"Дата": "2020-02-26T17:20:59",
"Номер": "З-19/00046     ",
"Идентификатор": "e1cib/data/Документ.Путевка?ref=9a58f2e8cf1cc29211ea589ae325f1b1"
}
},
{
"Ссылка": {
"Дата": "2021-09-02T15:33:44",
"Номер": "21/00043       ",
"Идентификатор": "e1cib/data/Документ.Путевка?ref=9a6b60a44c379a5b11ec0be19fda8385"
}
},
{
"Ссылка": {
"Дата": "2017-03-20T12:15:07",
"Номер": "demАЛ-0654624  ",
"Идентификатор": "e1cib/data/Документ.Путевка?ref=845c60a44c379a5b11e70d4ddd07d0a4"
}
},
{
"Ссылка": {
"Дата": "2017-03-20T12:43:26",
"Номер": "demАЛ-0654625  ",
"Идентификатор": "e1cib/data/Документ.Путевка?ref=845c60a44c379a5b11e70d519dffcf81"
}
},
{
"Ссылка": {
"Дата": "2016-11-29T14:52:39",
"Номер": "demАЛ-0654581  ",
"Идентификатор": "e1cib/data/Документ.Путевка?ref=980360a44c379a5b11e6b62b1b6435e6"
}
}
]
}
]
Пример запроса с пагинацией
/hs/KintAPI.hs/GetData?Method=ПолучитьИзмененияПоУзлу&Узел={"Идентификатор": "e1cib/data/ПланОбмена.ОбменКУСБухгалтерия20?ref=bc74d85ed320709611ecbf16523724ef"}&Объекты=[{"ИдОбъекта": "Номенклатура", "стрРеквизиты": "Наименование"}, {"ИдОбъекта": "Контрагенты", "стрРеквизиты": "Наименование"}, {"ИдОбъекта": "яъФизическиеЛица", "стрРеквизиты": "Наименование", "КоличествоЭлементов": 20, "НомерСтраницы": 5}]&ОтменитьРегистрацию=Ложь&КоличествоЭлементов=10&НомерСтраницы=4

RelatedDocuments (СвязанныеДокументы)

  • Тип HTTP-запроса: GET
  • Описание: Получение массива подчиненных документов
Параметры
Наименование Обязателен? Тип данных Описание Пример
Документ Да ДокументСсылка Ссылка на документ для которого будут получены связанные документы {"id": "e1cib/data/Документ.яъЗаказ?ref=96d5708bcda2156111eef01513b24eef"}
ВидДокумента Нет Строка Имя вида документа для отбора подчиненных. Должно совпадать с именем документа в дереве метаданных конфигурации. Допустимо передавать массив из нескольких видов документов. 11
  • Пример вызова
    /GetData?Method=ПодчиненныеДокументы&ВидДокумента=СчетНаОплатуПокупателю

Пример ответа:

    true

КоличествоЭлементов

  • Тип HTTP-запроса: GET
  • Описание: Получение количества объектов
Параметры
Наименование Обязателен? Тип данных Описание Пример
ВидыОбъектов / ВидОбъекта Да Строка, Массив Тип объекта (По умолчанию справочник), вид объекта Организации,Документ.Путевка
Отбор / Filter Нет Структура Структура, указывающая, по каким реквизитам и их значениям необходимо делать отбор {"ИНН": "1835012280"}
Узел Нет Ссылка на узел плана обмена В результате окажется количество изменений по узлу {"Идентификатор": "e1cib/data/ПланОбмена.ОбменКУСБухгалтерия20?ref=9a4a60a44c379a5b11e91efe3f9ca517"}
КоличествоНаСтранице / CountOnPage Нет Число Количество элементов на странице, с указанным параметром будет выводится количество страниц 100
  • Пример вызова 1:
    /GetData?Method=КоличествоЭлементов&КоличествоНаСтранице=100&ВидОбъекта=яъФизическиеЛица

Пример ответа:

    [
        {
            "ВидОбъекта": "Справочник.яъФизическиеЛица",
            "КоличествоОбъектов": 6733,
            "КоличествоСтраниц": 68
        }
    ]
  • Пример вызова 2 (Получение количества для нескольких объектов):
    /GetData?Method=КоличествоЭлементов&ВидыОбъектов=яъФизическиеЛица,Документ.КартаГостя,РегистрСведений.КурсыВалют

Пример ответа:

    [
        {
            "ВидОбъекта": "Справочник.яъФизическиеЛица",
            "КоличествоОбъектов": 6764
        },
        {
            "ВидОбъекта": "Документ.КартаГостя",
            "КоличествоОбъектов": 3000
        },
        {
            "ВидОбъекта": "РегистрСведений.КурсыВалют",
            "КоличествоОбъектов": 3
        }
    ]
  • Пример вызова 3 (Получение количества с общим отбором):
    /GetData?Method=КоличествоЭлементов&ВидыОбъектов=яъФизическиеЛица,Контрагенты,Сотрудники&Отбор={"Код": "000000001"}

Пример ответа:

    [
        {
            "ВидОбъекта": "Справочник.яъФизическиеЛица",
            "КоличествоОбъектов": 1
        },
        {
            "ВидОбъекта": "Справочник.Контрагенты",
            "КоличествоОбъектов": 1
        },
        {
            "ВидОбъекта": "Справочник.Сотрудники",
            "КоличествоОбъектов": 0
        }
    ]
  • Пример вызова 4 (Получение количества с общим отбором, дополнительным отбором по физ. лицам, отключенным отбором по коду для сотрудников):
    /GetData?Method=КоличествоЭлементов&ВидыОбъектов=[{ "ВидОбъекта":"яъФизическиеЛица", "Отбор": {"Наименование": "Макадзару"} },{ "ВидОбъекта":"Контрагенты" },{ "ВидОбъекта":"Сотрудники", "Отбор": {"Код": ""} }]&Отбор={"Код": "000000001"}

Пример ответа:

    [
        {
            "ВидОбъекта": "Справочник.яъФизическиеЛица",
            "КоличествоОбъектов": 0
        },
        {
            "ВидОбъекта": "Справочник.Контрагенты",
            "КоличествоОбъектов": 1
        },
        {
            "ВидОбъекта": "Справочник.Сотрудники",
            "КоличествоОбъектов": 124
        }
    ]
  • Пример вызова 5 (Получение количества изменений по общему узлу и получение количества физ. лиц по другому узлу):
    /GetData?Method=КоличествоЭлементов&ВидыОбъектов=[{ "ВидОбъекта":"яъФизическиеЛица" },{ "ВидОбъекта":"Контрагенты" },{ "ВидОбъекта":"Сотрудники"},{ "ВидОбъекта": "яъФизическиеЛица", "Узел": {"Идентификатор": "e1cib/data/ПланОбмена.ОбменКУСБухгалтерия20?ref=bc74d85ed320709611ecbf16523724ef"} }]&Узел={"Идентификатор": "e1cib/data/ПланОбмена.ОбменКУСБухгалтерия20?ref=9a4a60a44c379a5b11e91efe3f9ca517"}

Пример ответа:

    [
        {
            "ВидОбъекта": "Справочник.яъФизическиеЛица",
            "КоличествоОбъектов": 6733
        },
        {
            "ВидОбъекта": "Справочник.Контрагенты",
            "КоличествоОбъектов": 3050
        },
        {
            "ВидОбъекта": "Справочник.Сотрудники",
            "КоличествоОбъектов": 124
        },
        {
            "ВидОбъекта": "Справочник.яъФизическиеЛица",
            "КоличествоОбъектов": 622
        }
    ]

ЗаписатьПриложения

  • Тип HTTP-запроса: GET/POST
  • Описание: Запись приложений (например, картинок) к объекту. Можно отправлять как массив, так и структуру. Возвращает список индексов созданных приложений.
Параметры
Наименование Обязателен? Тип данных Описание Пример
Владелец Да Ссылка на объект Владелец приложения {"id": "e1cib/data/Справочник.яъКультуры?ref=96d5708bcda2156111eef01513b24eef"}
Индекс Нет Число С указанным параметром перезаписывает старое приложение 1
Файл Да Строка Данные файла в Base64-строке "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMTEhUTExMV..."
Представление Да Строка Имя файла с расширением Арбуз.png
яъКомментарий Нет Строка Комментарий приложения Создан из приложения «Кинт: Мобильный ТСД»
  • Пример вызова
    /GetData?Method=ЗаписатьПриложения&Владелец={"id": "e1cib/data/Справочник.яъКультуры?ref=96d5708bcda2156111eef01513b24eef"}&Файл="/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMTEhUTExMV..."&Представление=Арбуз.png

Пример ответа:

    [
        {
            "Индекс": 11
        }
    ]

УдалитьПриложение

  • Тип HTTP-запроса: GET
  • Описание: Удаление приложения
Параметры
Наименование Обязателен? Тип данных Описание Пример
Владелец Да Ссылка на объект Владелец приложения {"id": "e1cib/data/Справочник.яъКультуры?ref=96d5708bcda2156111eef01513b24eef"}
Индекс Да Число Номер удаляемого приложения 11
  • Пример вызова
    /GetData?Method=УдалитьПриложение&Владелец={"id": "e1cib/data/Справочник.яъКультуры?ref=96d5708bcda2156111eef01513b24eef"}&Индекс=11

Пример ответа:

    true

СписокПриложений

  • Тип HTTP-запроса: GET
  • Описание: Получение списка приложений объекта
Параметры
Наименование Обязателен? Тип данных Описание Пример
Владелец Да Ссылка на объект Владелец приложений, которые хотим получить {"id": "e1cib/data/Справочник.яъФизическиеЛица?ref=96d5708bcda2156111eef01513b24eef"}
СФайлами Нет Булево Нужно ли получить файл в Base64-строке Истина
Колонки Нет Строка Список колонок, который необходимо получить в результате Представление,Индекс,яъКомментарий,ИндексТипаПриложения,Файл
  • Описание колонок в результате
    • Представление - представление приложения
    • Индекс - индекс приложения в пределах владельца
    • Автор - пользователь, добавивший приложение
    • Дата - дата добавления приложения
    • фВнешнее - приложение является ссылкой на файл
    • ВидПриложения - не используется
    • ПутьКДанным - полное имя файла, где хранится приложение
    • СостояниеПриложения - 1 (захвачено для редактирования), 0 (никем не редактируется)
    • яъКомментарий - комментарий приложения
    • ИндексТипаПриложения - 1 (картинка), 2 (каталог), 3 (URL-ссылка), 0 (всё остальное)?
    • Файл - файл в Base64-строке
    • Расширение - расширение файла
  • Пример вызова
    /GetData?Method=СписокПриложений&Владелец={"id": "e1cib/data/Справочник.яъКультуры?ref=96d5708bcda2156111eef01513b24eef"}&Колонки=Представление,Индекс,Дата,яъКомментарий,Файл&СФайлами=Истина

Пример ответа:

    [
        {
            "Представление": "images.jpeg",
            "Индекс": 1,
            "Дата": "2024-09-17T18:33:57",
            "яъКомментарий": "",
            "Файл": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMTEhUTExMV..."
        }
    ]

СоздатьЗадачу (PostTask)

  • Тип HTTP-запроса: POST
  • Описание: Создание документа «Задача».


ПолучитьСписокЗадач (GetTaskList)

  • Тип HTTP-запроса: GET
  • Описание: Список документов с отбором.


ПолучитьСодержаниеЗадачи (GetTaskContent)

  • Тип HTTP-запроса: GET
  • Описание: Получает все комментарии по документу в формате HTML.


ПервыйКомментарий (GetFirstMessage)

  • Тип HTTP-запроса: GET
  • Описание: Получает первый комментарий по документу. Первый комментарий считается "Содержанием" документа.


ПоследнийКомментарий (GetLastMessage)

  • Тип HTTP-запроса: GET
  • Описание: Получает последний комментарий по документу.


ИзменитьЭтапПроцесса (ChangeProcessStage)

  • Тип HTTP-запроса: GET
  • Описание: Изменение этапа процесса документа.


ДобавитьКомментарий (PostMessage)

  • Тип HTTP-запроса: POST
  • Описание: Добавление комментария к документу.

Кинт: Управление санаторием

Методы

Общие

GetNews

Содержимое ленты новостей.

Необязательные параметры:

  • Параметры: структура параметров, которые используются в шаблонах страницы.
    • Развернуть: если значение «Истина», то новости будут развернуты при загрузке страницы.
    • ОграничитьШирину: если значение «Истина», то новости будут отображаться посередине экрана, образуя «Ленту» новостей.
  • ВКонтейнер: если значение «Истина», то к макетам будет подключена стандартная библиотека.
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=GetNews&raw&Параметры={"Развернуть":true,"ОграничитьШирину":true}
Пример ответа
<script>
function showMoreInfo(el) {
let elDescription = el.children[1];
elDescription.classList.toggle("event-header-description");

let elInfo = el.parentNode.children[1];
elInfo.classList.toggle("hide");		
}
function expandAllNews() {
document.querySelectorAll('.event-container').forEach(function(event){
showMoreInfo(event);
});	
}
</script>

<style>

.news-container
{
margin: 0 auto;
width: 40%;
}

.event-image
{
border-radius: 10px; 
max-width: 100%;
margin: 15px 0px;
}

.no-events
{
text-align: center;
color: #9b9b9b; 	
}

body
{
background-color: #E0E0E0; 
font-family: verdana;
}

.hide
{
display: none;
}

.event-container
{
background-color: white;
border-radius: 15px;
padding: 10px;
box-shadow: -1px 1px 7px -4px #000000;
cursor: pointer;	
} 

.event-shell
{
background-color: #F5F5F5;
box-shadow: -1px 1px 7px -4px #000000;
border-radius: 15px;
width: 100%;
margin-bottom: 15px;
line-height: 1.5;
color: #3F3F3F;		
}

.event-title
{
font-weight: bold;
font-size: 18px;
} 

.event-container .event-title
{
width: 100%;
word-break: break-all;
}

.event-subtitle
{
font-weight: bold;
font-size: 14px;		
}

.event-header
{
display: flex;
}

.event-time
{
border-radius: 6px;
padding: 3px; 	
font-size: 14px;
text-align: center;	
background-color: #33a7d4;
color: white;
font-weight: bold;
white-space: nowrap;
}

.event-description
{	
font-size: 14px;	
} 

.event-header-description
{ 
height: 3em;
overflow: hidden; 
background: linear-gradient(180deg, #3F3F3F 50%, gray 90%, white 97%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;	
} 

.event-more-info
{
padding: 10px;
} 

p
{
margin-bottom: 0px;
margin-top: 5px;
} 

.marks-container
{
white-space: nowrap;
color: white;
font-weight: bold;	
} 

</style> 









<script>
document.addEventListener("DOMContentLoaded", function() {
expandAllNews();
});
</script>



<div class = 'news-container'>

<div>    	
<div>	    	
<div class = "event-shell">
<div class = "event-container" onclick = "showMoreInfo(this)">
<div class = "event-header"> 		 
<span class = "event-title">День "Пролетника"</span> 
<span class = "marks-container">
<span class = "event-time">12 сент.</span>
</span>			
</div>

<p class = "event-description event-header-description">
Сегодня птицы массово улетают на юг! Становится прохладнее, дожди начинают идти чаще. <br>
Самое время собирать травы, которые в столь знаменательный день обладают целебными свойствами!
</p>
</div> 

<div class = "event-more-info hide">


<img src = "https://krasivosti.pro/uploads/posts/2021-07/1627080338_22-krasivosti-pro-p-karavan-ptits-ptitsi-krasivo-foto-25.jpg" class = "event-image">


</div>
</div> 

</div>			
</div>

<div>    	
<div>	    	
<div class = "event-shell">
<div class = "event-container" onclick = "showMoreInfo(this)">
<div class = "event-header"> 		 
<span class = "event-title">День рождения компании "Кинт"!</span> 
<span class = "marks-container">
<span class = "event-time">10 окт.</span>
</span>			
</div>

<p class = "event-description event-header-description">
Ежегодное собрание сотрудников предприятия состоится в октябре!
Приносите себя и мягкие стулья! <br>
Непьющих просьба не приходить - презентации смотреть только под коньяк!


</p>
</div> 

<div class = "event-more-info hide">


<img src = "https://algo-s.ru/upload/iblock/345/f02b34eee0160c1cec0a0819b5.png" class = "event-image">



<div class = "event-title"> 
Выступления руководителей отделов
</div>



<div class = "event-description"> 
Сотрудники от каждого отдела расскажут о поставленных и достигнутых целях. 
</div>



<div class = "event-subtitle"> 
Будут ли мягкие стулья?
</div>



<div class = "event-description"> 
А задачу написали?
</div>


</div>
</div> 

</div>			
</div>

</div>

ИзменитьСтатусУчастникаМероприятия

Изменение статуса участника на мероприятии. Если участник не числился, то он будет добавлен.

Параметры:

  • Участник: участник (карта гостя или физлицо), у которого необходимо изменить статус.
  • Мероприятие: мероприятие, на котором необходимо изменить статус участника.

Необязательные параметры:

  • Статус: требуемый статус участника (ПотенциальныйУчастник, БудетУчаствовать, ПринялУчастие, Отказ). Если не передан, то будет установлен «Принял участие».
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=ИзменитьСтатусУчастникаМероприятия&Участник={"Идентификатор": "e1cib/data/Справочник.яъФизическиеЛица?ref=8e086451060d98bd11e5c8f3aff6f11f"}&Мероприятие={"Идентификатор": "1cib/data/Документ.яъМероприятие?ref=9511a85e4511756911ee74bb0ffc8d41"}&Статус=Отказ
Пример ответа
{
"Success": true,
"Result": {
"Результат": true,
"Описание": "Статус участия изменен на «Отказ»"
},
"Messages": []
}

PaymentStatusByDocument

Состояние оплаты по документа.

Параметры:

  • Document: документ, по которому нужно получить состояние оплаты.

Необязательные параметры:

  • Детализация: в результат будет помещена таблица с расшифровкой состояния оплаты по каждому счету.
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=PaymentStatusByDocument&Document={"Идентификатор": "e1cib/data Документ.НазначениеУслуг?ref=bca2d85ed320709611ed8129e69655fb"}
Пример ответа
{
"Success": true,
"Result": {
"СуммаДокумента": 0,
"Выставлено": 1495,
"Оплачено": 1495
},
"Messages": []
}

КонтактыОрганизации

Контактные данные рабочей организации.

Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=КонтактыОрганизации
Пример ответа
{
[
{
"Владелец": "Санаторий \"Родные просторы\"",
"Свойство": "Портье",
"ТипЗначения": "Контактные данные",
"КодСвойства": "1",
"Период": "2023-03-03T00:00:00",
"_Индекс": 0,
"ЗначениеСвойства": "+7(3412)50-11-99",
"Редактор": "Стеньшина Любовь Александровна (суперюзер)",
"Код": "1"
},
{
"Владелец": "Санаторий \"Родные просторы\"",
"Свойство": "Ресепшен",
"ТипЗначения": "Контактные данные",
"КодСвойства": "23",
"Период": "1980-01-01T00:00:00",
"_Индекс": 0,
"ЗначениеСвойства": "+7(3412)64-68-58",
"Редактор": "Абдулов Юрий Владимирович (директор)",
"Код": "23"
},
{
"Владелец": "Санаторий \"Родные просторы\"",
"Свойство": "Приемная",
"ТипЗначения": "Контактные данные",
"КодСвойства": "тел01",
"Период": "2022-10-25T00:00:00",
"_Индекс": 0,
"ЗначениеСвойства": "+7(3412)69-77-72",
"Редактор": "Абдулов Юрий Владимирович (директор)",
"Код": "тел01"
}
]
}

ПользовательПоНаименованию

Данные пользователя по наименованию.

Параметры:

  • Наименование: наименование пользователя.
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=ПользовательПоНаименованию&Наименование=Администратор
Пример ответа
{
"Ссылка": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Администратор",
"Идентификатор": "e1cib/data/Справочник.яъПользователи?ref=94fca85e4511756911edad038ee22d63"
},
"ПользовательИБ": "Администратор"
}

ОфициальныеОрганы

Список официальных органов.

Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=ОфициальныеОрганы
Пример ответа
[
{
"Код": "200-006",
"Наименование": "ОТДЕЛЕНИЕ УФМС РОССИИ ПО ЧЕЧЕНСКОЙ РЕСПУБЛИКЕ В СТАРОПРОМЫСЛОВСКОМ Р-НЕ Г. ГРОЗНОГО",
"ДатаОкончания": "0001-01-01T00:00:00",
"Идентификатор": "10000",
"КатегорияВладельца":
{
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "ОрганВыдачиДокументов",
"Наименование": "Орган выдачи документов",
"Идентификатор": "e1cib/data/Справочник.яъКатегории?ref=9a4e60a44c379a5b11e9c40aadd85b17"
}
},
{
"Код": "240-011",
"Наименование": "ТП УФМС РОССИИ ПО КРАСНОЯРСКОМУ КРАЮ В КАНСКОМ Р-НЕ",
"ДатаОкончания": "0001-01-01T00:00:00",
"Идентификатор": "10017",
"КатегорияВладельца":
{
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "ОрганВыдачиДокументов",
"Наименование": "Орган выдачи документов",
"Идентификатор": "e1cib/data/Справочник.яъКатегории?ref=9a4e60a44c379a5b11e9c40aadd85b17"
}
}
]

РабочаяОрганизация

Рабочая организация по настройке.

Параметры:

  • стрРеквизиты (не поддерживается): список реквизитов для получения.
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=РабочаяОрганизация&стрРеквизиты=Код,Наименование
Пример ответа
{
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Санаторий \"Родные просторы\"",
"Код": "9999999/2",
"Идентификатор": "e1cib/data/Справочник.Организации?ref=9bc8e4800e39484c4b1e680675db5963"
}

GetHtmlForms

Макеты HTML виджетов.

Параметры:

  • Категория: ссылка на категорию (владельца) или ее полный идентификатор.

Необязательные параметры:

  • Вычислить: если значение «Истина», то макеты будут вычислены на стороне конфигурации.
  • ВКонтейнер: если значение «Истина», то к макетам будет подключена стандартная библиотека.
  • Параметры: структура с параметрами, которые используются в макетах.
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=GetHtmlForms&Категория=Справочник.яъКатегории.ВиджетНовости&Вычислить=Истина&ВКонтейнер=Ложь
Пример ответа
{
"Success": true,
"Result": [
{
"Ссылка": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Распродажа носков",
"Код": 0,
"Идентификатор": "e1cib/data/Справочник.яъПечатныеФормы?ref=9500a85e4511756911edd2da71e3489a"
},
"Code": "РаспродажаНосков",
"Шаблон": "<table> \n\n\u0009<tr>\n\u0009\u0009<th>Материал</th>\n\u0009\u0009<th>Цена</th>\n\u0009</tr> \n\u0009\n\u0009<tr>\n\u0009\u0009<td>Мохровые</td>\n\u0009\u0009<td>199</td>\n\u0009</tr>\n\u0009\n\u0009<tr>\n\u0009\u0009<td>Бархатные</td>\n\u0009\u0009<td>350</td>\n\u0009</tr>\n\u0009\n\u0009<tr>\n\u0009\u0009<td>Дырявые</td>\n\u0009\u0009<td>999999</td>\n\u0009</tr>\n\n</table>\n"
}
],
"Messages": []
}

Модуль «Гостиница»

GetAvailableDates

Доступные интервалы заезда за период.

Параметры:

  • ArrivalFrom/ЗаездС: начало периода заезда.
  • ArrivalTo/ЗаездПо: конец периода заезда.
  • Days/КоличествоДней: желаемое количество дней проживания.

Необязательные параметры:

  • RoomCategory/КатегорияНомера: желаемая категория номера.
  • Block/Корпус: желаемый корпус.
  • QuotaID/Квота: требуемая квота (учитываются только квоты по номерам).
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=GetAvailableDates&ArrivalFrom=30.08.2023&ArrivalTo=05.09.2023&Days=4&RoomCategory={"Идентификатор":%20"e1cib/data/Справочник.НоменклатураПомещений?ref=ac2360a44c379a5b11e565e573e3b690"}&Block={"Идентификатор":%20"e1cib/data/Справочник.Здания?ref=bd4860a44c379a5b11e3a8f481c4453e"}&QuotaID={"Идентификатор":%20"e1cib/data/Справочник.Квоты?ref=9a6860a44c379a5b11eb9d1bc1a84df1"}
Пример ответа
{
"Success": true,
"Result": [
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "102",
"Код": "1102",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c8"
},
"ДатаЗаезда": "2023-08-30T00:00:00",
"ДатаВыезда": "2023-09-03T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "102",
"Код": "1102",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c8"
},
"ДатаЗаезда": "2023-08-31T00:00:00",
"ДатаВыезда": "2023-09-04T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "102",
"Код": "1102",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c8"
},
"ДатаЗаезда": "2023-09-01T00:00:00",
"ДатаВыезда": "2023-09-05T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "102",
"Код": "1102",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c8"
},
"ДатаЗаезда": "2023-09-02T00:00:00",
"ДатаВыезда": "2023-09-06T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "102",
"Код": "1102",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c8"
},
"ДатаЗаезда": "2023-09-03T00:00:00",
"ДатаВыезда": "2023-09-07T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "102",
"Код": "1102",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c8"
},
"ДатаЗаезда": "2023-09-04T00:00:00",
"ДатаВыезда": "2023-09-08T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "102",
"Код": "1102",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c8"
},
"ДатаЗаезда": "2023-09-05T00:00:00",
"ДатаВыезда": "2023-09-09T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "103",
"Код": "1103",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c9"
},
"ДатаЗаезда": "2023-08-30T00:00:00",
"ДатаВыезда": "2023-09-03T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "103",
"Код": "1103",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c9"
},
"ДатаЗаезда": "2023-08-31T00:00:00",
"ДатаВыезда": "2023-09-04T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "103",
"Код": "1103",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c9"
},
"ДатаЗаезда": "2023-09-01T00:00:00",
"ДатаВыезда": "2023-09-05T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "103",
"Код": "1103",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c9"
},
"ДатаЗаезда": "2023-09-02T00:00:00",
"ДатаВыезда": "2023-09-06T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "103",
"Код": "1103",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c9"
},
"ДатаЗаезда": "2023-09-03T00:00:00",
"ДатаВыезда": "2023-09-07T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "103",
"Код": "1103",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c9"
},
"ДатаЗаезда": "2023-09-04T00:00:00",
"ДатаВыезда": "2023-09-08T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "103",
"Код": "1103",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c9"
},
"ДатаЗаезда": "2023-09-05T00:00:00",
"ДатаВыезда": "2023-09-09T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "101",
"Код": "1101",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c7"
},
"ДатаЗаезда": "2023-08-30T00:00:00",
"ДатаВыезда": "2023-09-03T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "101",
"Код": "1101",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c7"
},
"ДатаЗаезда": "2023-08-31T00:00:00",
"ДатаВыезда": "2023-09-04T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "101",
"Код": "1101",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c7"
},
"ДатаЗаезда": "2023-09-01T00:00:00",
"ДатаВыезда": "2023-09-05T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "101",
"Код": "1101",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c7"
},
"ДатаЗаезда": "2023-09-02T00:00:00",
"ДатаВыезда": "2023-09-06T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "101",
"Код": "1101",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c7"
},
"ДатаЗаезда": "2023-09-03T00:00:00",
"ДатаВыезда": "2023-09-07T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "101",
"Код": "1101",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c7"
},
"ДатаЗаезда": "2023-09-04T00:00:00",
"ДатаВыезда": "2023-09-08T00:00:00",
"Свободно": 2
},
{
"Room": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "101",
"Код": "1101",
"ЭтоГруппа": false,
"Идентификатор": "e1cib/data/Справочник.Помещения?ref=a33f60a44c379a5b11e586d5cb31c0c7"
},
"ДатаЗаезда": "2023-09-05T00:00:00",
"ДатаВыезда": "2023-09-09T00:00:00",
"Свободно": 2
}
],
"Messages": []
}

GetPrice

Стоимость проживания за период по различным параметрам.

Необязательные параметры:

  • DateFrom/НачалоПериода/ДатаЗаезда: начало периода проживания. Значение по умолчанию - начало текущего дня.
  • DateTo/КонецПериода/ДатаВыезда: конец периода проживания. Значение по умолчанию - конец текущего дня.
  • ВариантРасчетаЦен: вариант расчета цены. Значение по умолчанию будет получено из настройки.
  • Контекст: структура с различными дополнительными параметрами (Организация, Прайс, Время суток заезда, Время суток выезда, Заезд вечером, Выезд вечером).
  • ВидЦен: Идентификатор или ссылка на вид цены. Значение по умолчанию - цена брони.
  • Details/Расшифровка: развернуть цену по дням.
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=GetPrice&Контекст={"DateFrom": "15.02.2023", "DateTo":"18.02.2023"}
Пример ответа
{
"Success": true,
"Result": [
{
"НомерСтроки": 0,
"Date": "2023-02-15T00:00:00",
"Стоимость": 13000,
"СтоимостьЛечения": 0,
"СтоимостьПитания": 0,
"СтоимостьПроживания": 13000,
"фРучнаяСтоимость": false,
"Скидка": 0,
"СтоимостьБезСкидки": 13000,
"Price": {
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "ОсновнойПрайсПродаж",
"Наименование": "Основной прайс продаж",
"Код": "000000001",
"Идентификатор": "e1cib/data/Справочник.Прайсы?ref=9b7996e6d857ebf811e3a8f3d7479350"
},
"КодСтроки": 0,
"РучнаяСкидка": 0,
"Ответственный": {
"ПометкаУдаления": null,
"Предопределенный": null,
"ИмяПредопределенныхДанных": null,
"Наименование": null,
"Идентификатор": "e1cib/data/Справочник.яъПользователи?ref=00000000000000000000000000000000"
}
},
{
"НомерСтроки": 0,
"Date": "2023-02-16T00:00:00",
"Стоимость": 13000,
"СтоимостьЛечения": 0,
"СтоимостьПитания": 0,
"СтоимостьПроживания": 13000,
"фРучнаяСтоимость": false,
"Скидка": 0,
"СтоимостьБезСкидки": 13000,
"Price": {
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "ОсновнойПрайсПродаж",
"Наименование": "Основной прайс продаж",
"Код": "000000001",
"Идентификатор": "e1cib/data/Справочник.Прайсы?ref=9b7996e6d857ebf811e3a8f3d7479350"
},
"КодСтроки": 0,
"РучнаяСкидка": 0,
"Ответственный": {
"ПометкаУдаления": null,
"Предопределенный": null,
"ИмяПредопределенныхДанных": null,
"Наименование": null,
"Идентификатор": "e1cib/data/Справочник.яъПользователи?ref=00000000000000000000000000000000"
}
},
{
"НомерСтроки": 0,
"Date": "2023-02-17T00:00:00",
"Стоимость": 13000,
"СтоимостьЛечения": 0,
"СтоимостьПитания": 0,
"СтоимостьПроживания": 13000,
"фРучнаяСтоимость": false,
"Скидка": 0,
"СтоимостьБезСкидки": 13000,
"Price": {
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "ОсновнойПрайсПродаж",
"Наименование": "Основной прайс продаж",
"Код": "000000001",
"Идентификатор": "e1cib/data/Справочник.Прайсы?ref=9b7996e6d857ebf811e3a8f3d7479350"
},
"КодСтроки": 0,
"РучнаяСкидка": 0,
"Ответственный": {
"ПометкаУдаления": null,
"Предопределенный": null,
"ИмяПредопределенныхДанных": null,
"Наименование": null,
"Идентификатор": "e1cib/data/Справочник.яъПользователи?ref=00000000000000000000000000000000"
}
},
{
"НомерСтроки": 0,
"Date": "2023-02-18T00:00:00",
"Стоимость": 6500,
"СтоимостьЛечения": 0,
"СтоимостьПитания": 0,
"СтоимостьПроживания": 6500,
"фРучнаяСтоимость": false,
"Скидка": 0,
"СтоимостьБезСкидки": 6500,
"Price": {
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "ОсновнойПрайсПродаж",
"Наименование": "Основной прайс продаж",
"Код": "000000001",
"Идентификатор": "e1cib/data/Справочник.Прайсы?ref=9b7996e6d857ebf811e3a8f3d7479350"
},
"КодСтроки": 0,
"РучнаяСкидка": 0,
"Ответственный": {
"ПометкаУдаления": null,
"Предопределенный": null,
"ИмяПредопределенныхДанных": null,
"Наименование": null,
"Идентификатор": "e1cib/data/Справочник.яъПользователи?ref=00000000000000000000000000000000"
}
}
],
"Messages": []
}

КартыГостя

Список карт гостей физического лица.

Параметры:

  • ФизЛицо: физическое лицо, по которому необходимо получить карты гостя.
  • стрРеквизиты (не поддерживается): список реквизитов для получения.
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=КартыГостя&стрРеквизиты="Дата"&ФизЛицо={"Идентификатор":"e1cib/data/Справочник.яъФизическиеЛица?ref=b20b6451060d98bd11e59cb64e7de21e"}
Пример ответа
[
{
"Дата": "2023-03-14T10:44:55",
"Номер": "23/00083       ",
"Идентификатор": "e1cib/data/Документ.КартаГостя?ref=94fea85e4511756911edc233ba474f2a"
},
{
"Дата": "2021-09-20T14:39:07",
"Номер": "21/00058       ",
"Идентификатор": "e1cib/data/Документ.КартаГостя?ref=9a6d60a44c379a5b11ec19fefb04ce3a"
}
]

ДанныеОбОсновнойКартеЛояльности

Данные об основной карте лояльности гостя.

Параметры:

  • КартаГостя: карта гостя, по которой необходимо получить карту лояльности.

Необязательные параметры:

  • НаДату: дата актуальности бонусов. Если не передана, то будет получено общее количество бонусов на карте.
Пример вызова
http://127.0.0.1/имя_публикации/hs/KintAPI.hs/GetData?Method=ДанныеОбОсновнойКартеЛояльности&КартаГостя={"Идентификатор": "e1cib/data/Документ.КартаГостя?ref=94fda85e4511756911edb98261ada96f"}&НаДату=01.04.2023
Пример ответа
{
"Success": true,
"Result": {
"Ссылка": {
"Дата": "2023-03-06T09:51:55",
"Номер": "22/00000003              ",
"Идентификатор": "e1cib/data/Документ.яъКартаПокупателя?ref=94fda85e4511756911edb9bb423b5329"
},
"ПометкаУдаления": false,
"Number": "22/00000003              ",
"Date": "2023-03-06T09:51:55",
"Проведен": true,
"Client": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Романов Игорь Егорович",
"Код": "dem000026",
"ЭтоГруппа": false,
"Родитель": {
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "ФизическиеЛица",
"Наименование": "Физические лица",
"Код": "000000001",
"ЭтоГруппа": true,
"Идентификатор": "e1cib/data/Справочник.Контрагенты?ref=9b7996e6d857ebf811e3a8f3debae377"
},
"Идентификатор": "e1cib/data/Справочник.Контрагенты?ref=980360a44c379a5b11e6913a7733af63"
},
"ВидСкидки": {
"ПометкаУдаления": null,
"Предопределенный": null,
"ИмяПредопределенныхДанных": null,
"Наименование": null,
"Код": null,
"Идентификатор": "e1cib/data/ПланСчетов.яъЦены?ref=00000000000000000000000000000000"
},
"СрокОкончания": "0001-01-01T00:00:00",
"Номинал": 0,
"БонуснаяПрограмма": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Основная",
"Код": "000000001",
"Идентификатор": "e1cib/data/Справочник.яъБонусныеПрограммы?ref=94fda85e4511756911edb9bb423b5327"
},
"Телефон": "",
"яъАвтор": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Стеньшина Любовь Александровна (суперюзер)",
"Идентификатор": "e1cib/data/Справочник.яъПользователи?ref=b20b6451060d98bd11e5a7eb037adb81"
},
"DocumentType": {
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "_ДисконтнаяКарта",
"Наименование": "Карта лояльности",
"Код": "00081",
"Идентификатор": "e1cib/data/Справочник.яъВидыДокументов?ref=9a4a60a44c379a5b11e935b5799a1a4b"
},
"Comment": "",
"яъОрганизация": {
"ПометкаУдаления": false,
"Предопределенный": false,
"ИмяПредопределенныхДанных": "",
"Наименование": "Санаторий \"Родные просторы\"",
"Код": "9999999/2",
"Идентификатор": "e1cib/data/Справочник.Организации?ref=9bc8e4800e39484c4b1e680675db5963"
},
"МоментВремени": "06.03.2023 9:51:55; Карта лояльности № 22/00000003 от 06.03.2023",
"Основная": true,
"Статус": {
"ПометкаУдаления": false,
"Предопределенный": true,
"ИмяПредопределенныхДанных": "Активна",
"Наименование": "Активирована",
"Идентификатор": "e1cib/data/Справочник.яъКатегории?ref=94fca85e4511756911edad18caf195a8"
},
"Актуальна": true,
"БонусовНаКарте": 0,
"ШтрихКод": "iVBORw0KGgoAAAANSUhEUgAAALQAAAC0AQAAAAAVtjufAAABgklEQVR4Ae2V0W0D\r\nMQxDtYH231IbuHxU7tIW/SuTrzjG9fxSQLFJ0XX+HPPhb+NV1aP3nulTzTLKW7Om\r\ntSp/zYzy6tbf6ecyzmtGs/c3vIAfZmnWC7imdqZXlecfTpYj9Lfxww8JvkPWAs5v\r\nP/+fqw5TwmAtyTNZjuTaCbalLzSy3D0x+hw7S/J0mI/IKdXUsp7nFuLaFyXLr5pX\r\nA+a4JMe9tfL0XTfE2Q6hRzqdfSY5ntVabnLytRUKcsyqTVl8a/P