API для 1С
API – это программный интерфейс, доступ к которому может осуществляться извне – из других программ и приложений.
API для 1С представляет собой набор готовых функций и процедур, необходимых для связи 1С с внешним миром, например с платежными системами, торговыми площадками и другими интернет-сервисами или настольными приложениями.
Посредством API можно получать и передавать в 1С любую информацию, вот лишь несколько примеров:
Обмен заказами с интернет-магазинами или системами доставки. У нас есть опыт интеграции 1С с Пони Экспресс и подобными площадками.
Выгрузка номенклатуры на торговые площадки. Примером может быть реализованная нами 1С-выгрузка данных в Яндекс.Маркет.
Загрузка совершенных платежей в 1С для перерасчета скидок и выгрузка новых значений обратно во внешний сервис.
Моментальная загрузка платежей из вашего банка в 1С по системе директ-банк.
Интеграция с мессенджерами, например с Telegram.
Интеграция с телефонией, например с 1С-телефонией от Телфин, или СМС-порталами.
Обмен сведениями с рекламными системами, например с яндекс-директ.
Хранение данных в облаке. Чтобы не захламлять свой жесткий диск или не обременять вашу 1С лишними файлами вы можете воспользоваться хранением данных на Яндекс.диске.
Автоматическое создание счетов по запросу внешних систем.
Набор функций API безграничен. Все зависит от стоящих перед бизнесом задач.
API для 1С можно сделать открытым. Это означает, что вы сможете предоставить определенный функционал вашей 1С в пользование неограниченному (или условно-ограниченному) кругу лиц. Это может значительно расширить возможности вашего бизнеса!
Так, например, наша компания внедрила API для конфигурации 1С «Моя МФО». Мы научили ее возвращать информацию о сумме и сроках платежей по номеру договора. Теперь сайт заказчика может в личном кабинете показывать актуальные данные из 1С для всех клиентов, которые брали кредиты в данной микрофинансовой организации.
А вот так API выглядит изнутри.
На картинке представлен результат передачи информации во внешнюю систему средствами API 1С.
Хотите, чтобы ваша 1С умела также?
Обратитесь к нашим консультантам и они объяснят вам все возможности API, которые принесут прибыль вашему бизнесу!
Общие положения
API серверов позволяет внешней системе запрашивать и отправлять данные в 1С-Коннект, а также осуществлять рассылки.
API серверов предоставляет возможность обмена данными на уровне серверов . Все действия при этом выполняются пользователем с правами администратора Личного кабинета 1С-Коннект.
В части оперирования данными 1С-Коннект, API серверов предназначен для синхронизации базы данных информационной системы клиента с "облаком" 1С-Коннект, в том числе в условиях больших объемов данных.
API серверов обеспечивает передачу внешней системе списка измененных объектов данных с указанного момента времени, а не полного списка объектов. Это позволяет существенно экономить вычислительные ресурсы и сетевой трафик, но требует от внешней стороны вести учет меток актуальности данных 1С-Коннект.
Основные возможности
API серверов поддерживает следующие действия с объектами системы 1С-Коннект:
Создание, изменение, удаление и выгрузку списков следующих видов объектов:
сотрудник своей организации;
компетенция сотрудника по линии;
подключение линии поддержки потребителю (сотруднику своей организации/ сотруднику клиента);
обращение по линии поддержки;
заявка на обслуживание.
Выгрузку истории коммуникации пользователей.
Получение статистики показов/просмотров по стартовым заставкам и продуктам витрины.
Создание, изменение и отправку рассылок и уведомлений пользователям.
Отправку сообщений и файлов в чат по линии поддержки.
Доступ к API серверов , а также настройка часового пояса, в соответствии с которым будет показана информация, полученная с помощью web-сервисов, настраиваются в Личном кабинете в разделе "Администрирование" подраздел "Настройки API". Также в этом подразделе вы можете посмотреть статистику по использованию web-сервисов.
Реализация
API серверов основан на механизмах Web-сервисов в реализации "1С: Предприятие 8.3".
Все операции манипулирования данными сгруппированы по-объектно.
Добавление, изменение и удаление объектов определенного вида можно делать пакетно, т.е. "пачкой за 1 раз".
Все входные параметры вызова ws-операции передаются одной переменной-массивом (XDTO-совместимой с типом «Структура» прикладного языка "1С: Предприятие 8") — это позволяет впоследствии расширять перечень передаваемых параметров, сохраняя совместимость с ранее написанными клиентами внешними алгоритмами.
У всех ws-операций единая структура ответа, она позволяет при успехе выполнения передать результат, а при ошибке выполнения — сведения об ошибке и месте её возникновения.
Во избежание непреднамеренной DDoS-атаки путём беспрерывной бесконечной цепочки запросов к API, на каждый вид ws-операции наложено ограничение по максимальному количеству вызовов операции в час. Параметры ограничений указаны в таблице.
Пример реализации на платформе 1С
Обработка-пример вызова операции GetHistoryOfServiceCalls: ВызовОперацийPartnerAPI2.epf
Структура результата ws-операции
Каждая операция на выходе выдает структуру из двух полей: ResultCode, ResultData. ResulеCode содержит код выполнения, если код = SUCCESS, то в поле ResultData результат операции, иначе текстовое описание ошибки. Необработанная ошибка вызовет исключение, и операция вернет исключение с текстом ошибки.
При пакетной передаче данных поле ResultData будет содержать таблицу значений. Объекты в пакете обрабатываются построчно. При этом номер строки входного параметра будет соответствовать номеру строки, соответствующей этому запросу на выходе.При возникновении ошибки выполнение операции не прекратится, пока не обработаются все содержимое пакета, либо не будет достигнут лимит.
REST интерфейс OData в 1C
В технологической платформе версии 8.3.5 была реализована возможность автоматически формировать REST интерфейс OData для всего прикладного решения. Таким образом у нас появилась возможность предоставить полный доступ стороннему приложению к базе 1С буквально за пару кликов.
Данный механизм предназначен для решения нескольких часто встречающихся задач:
- Выгрузка/загрузка данных в/из прикладного решения;
- Интеграция с интернет-сайтами (интернет-магазинами);
- Наращивание функциональности прикладного решения без изменения конфигурации;
- Интеграция с другими корпоративными системами (иногда и без дополнительного программирования).
REST интерфейс OData можно использовать для обмена данными между базами 1С, но так как для этого уже существуют другие, более удобные, механизмы, то основное предназначение REST интерфейса OData видится в интеграции со сторонними системами.
И это действительно удобно, если учесть, что клиенты OData существуют на всех основных платформах, соответствующие библиотеки можно скачать тут.
В этой статья я попробую подробно рассказать о том, что такое REST интерфейс OData и как его можно использовать.
Публикация REST интерфейса OData
Для использования интерфейса OData его нужно опубликовать, а для этого нам потребуется веб-сервер — Apache 2.2 или IIS (начиная с версии платформы 8.3.8 еще и Apache 2.4). Затем, нужно зайти в меню «Администрирование»->»Публикация на веб-сервере…».
В открывшемся окне заполняем нужные поля и жмем «Опубликовать»:
Публикация интерфейса OData
После этого нужно будет определить состав интерфейса OData, т.е. указать — какие объекты конфигурации в него входят, а какие нет (изначально в составе нет ни одного объекта).
Сделать это можно примерно так:
На Инфостарте есть отличная обработка на эту тему.
Если конфигурация работает в режиме совместимости с версией 8.3.4 и ниже, то установить состав интерфейса OData нельзя — в это случае автоматически доступны все объекты конфигурации.
Все, стандартный интерфейс OData настроен, запущен и ожидает клиентских подключений.
Пример использования
Для различных операций используются различные HTTP-методы:
- Получение данных — GET;
- Создание объектов — POST;
- Обновление данных — PATCH/PUT (в зависимости от того, сколько свойств объекта нужно обновить);
- Удаление данных — DELETE.
Проверить состав стандартного интерфейса можно, получив описание этого самого интерфейса при помощи браузера:
http://localhost/HTTPTest/odata/standard.odata/$metadata
Описание интерфейса OData
Для проверки получения данных, введем вот такой запрос:
http://localhost/HTTPTest/odata/standard.odata/Catalog_Товары?$format=json
- HTTPTest — имя при публикации;
- odata/standard.odata/ — обязательная часть, признак обращения к интерфейсу OData;
- Catalog_Товары — имя ресурса сформированное по правилу (об этом чуть ниже);
- ?$format=json — необязательный параметр обращения к ресурсу.
Результат выполнения запроса выглядит так:
Результат выполнения запроса
Правила доступа к ресурсам
Имя ресурса формируется по следующему правилу:
ПрефиксИмени_ИмяОбъектаКонфигурации_СуффиксИмени.
С помощью стандартного интерфейса OData можно получить доступ к следующим объектам (ПрефиксИмени):
- Справочник — Catalog;
- Документ — Document;
- Журнал документов — DocumentJournal;
- Константа — Constant;
- План обмена — ExchangePlan;
- План счетов — ChartOfAccounts
- План видов расчета — ChartOfCalculationTypes;
- План видов характеристик — ChartOfCharacteristicTypes;
- Регистр сведений — InformationRegister;
- Регистр накопления — AccumulationRegister;
- Регистр расчета — CalculationRegister;
- Регистр бухгалтерии — AccountingRegister;
- Бизнес-процесс — BusinessProcess;
- Задача — Task.
ИмяОбъектаКонфигурации — свойство «Имя» объекта конфигурации так, как оно задано в конфигураторе.
СуффиксИмени — нужен для уточнения имени ресурса, необязателен, может принимать следующие значения:
- Имя табличной части объекта;
- Имя виртуальной таблицы объекта;
- RowType — строка табличной части объекта;
- RecordType — отдельная запись регистра.
Параметры обращения к ресурсам
После формирования имени ресурса нужно определить параметры обращения к ресурсу, некоторые из параметров доступны только начиная с релиза платформы 8.3.8.1652:
- $format — указывает формат возвращаемых данных, вариантов два:
- $format=atom — данные в формате atom-xml;
- $format=json — данные в формате json;
Арифметические и логические операции
Для задания отбора параметром $filter могут быть использованы следующие операции, логические:
- eq — Равно; /Catalog_Города?$filter=Наименование eq ‘Главный’;
- ne — Не равно; /Catalog_Города?$filter=Наименование ne ‘Пермь’;
- gt — Больше; /Catalog_Товары?$filter= Цена gt 10;
- ge — Больше или равно; /Catalog_Товары?$filter=Цена ge 10;
- lt — Меньше; /Catalog_Товары?$filter=Цена lt 10;
- le — Меньше или равно; /Catalog_Товары?$filter=Цена le 10;
- or — Логическое ИЛИ; /Catalog_ Товары ?$filter= Цена lt 10 or Цена gt 100;
- and — Логическое И; / Catalog _Товары?$ filter =Цена g t 10 and Цена l t 100;
- not — Отрицание; /Catalog_ Товары ?$filter=not ( Цена eq 10);
- add — Сложение; /Catalog_Товары?$filter=Цена add 5 gt 10;
- sub — Вычитание; /Catalog_Товары?$filter=Цена sub 5 gt 10;
- mul — Умножение; /Catalog_ Товары ?$filter= Цена mul 5 gt 1000;
- div — Деление; /Catalog_Товары?$filter=Цена div 4 gt 2;
Кроме этого, для обозначения приоритета операции могут использоваться «скобки».
Формируя условия отбора важно не забывать о том, что логические и арифметические операции имеют разный приоритет, при этом операции с одинаковым приоритетом исполняются слева направо. Ниже приведен список логических и арифметических операций в порядке уменьшения приоритета:
- ( ) — повышение приоритета операции;
- / — навигация;
- «-» — арифметическое отрицание;
- not — логическое отрицание;
- mul — умножение;
- div — деление;
- add — сложение;
- sub -вычитание;
- gt — больше;
- ge — больше или равно;
- lt — меньше;
- le — меньше или равно;
- eq — равно;
- ne — не равно;
- and — логическое «И»;
- or — логическое «ИЛИ».
Функции
При формировании условий запроса (filter) или формировании реквизита по которому выполняется сортировка (orderby) могут применяться следующие функции. Все функции доступны только начиная с релиза 8.3.8.1652.
Строковые функции
Функции работы с датами:
Функции работы с датами
Прочие функции
Коды ошибок
При возникновении ошибочных ситуаций возвращается ответ с HTTP-статусом 4XX или 5XX. Статус 5XX означает ошибку на стороне сервера (само собой исправлять эту ошибку нужно тоже на сервере), а вот статус 4XX означает ошибку на нашей, клиентской, стороне и в ряде случаев вместе со статусом может быть предан код ошибки и информационное сообщение. Ниже перечислены внутренние коды ошибок и их описание:
Коды ошибок
На этом все, обзор основных моментов использования технологии OData в 1С завершен. Надеюсь что данный материал Вам помог.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 15, средняя оценка: 5,00 из 5)
Доступ к api что это в 1с
Если при обмене электронными документами у пользователя возникает сообщение «Абоненту запрещён доступ к 1С:Хаб API», это означает, что Учётная запись абонента заблокирована оператором ЭДО. Для просмотра причины блокировки следует перейти по гиперссылке «Журнал регистрации». В откры.
1. 1С — ЭДО. Код ошибки 3103. Сертификат не связан ни с одним абонентом системы HUB API. Если при тестировании профиля настроек 1C — ЭДО или при нажатии «Отправить и получить» выходит сообщение «Ошибка аутентификации в сервисе 1С-ЭДО Код ошибки 3103. &nbs.
Подписка на рассылку:
на новости на техподдержку
© ООО «1С-Софт». Все права защищены.
Все торговые марки являются собственностью их правообладателей.