OData в 1С
Некоторое время назад в 1с 8.3 был реализован механизм универсального доступа к данным — OData. Это стандарт разработанный Microsoft и активно продвигается им в рамках таких продуктов как Axapta. Стандарт представляет из себя своеобразную вариацию SQL запросов, но в виде get запросов к URL на сервере.
То есть к примеру:
Select * From Контрагены where Поставщик = true преобразуется в
OData.standard/catalog_номенклатура/?filter поставщик=true
Таким образом можно создавать выборки данных из 1С и анализировать их во внешних инструментах. Или выводить в нужной форме.
К примеру так можно вывести текущие заказы на сборку на экран не сложным JavaScript запросом.
Помимо выборки данных OData также может выполнять дополнение и обновление существующих данных.
К примеру можно создавать в 1С документ заказа покупателя при формировании этого заказа на вэб сайте. Таким образом можно автоматизировать многие процессы, добавив автоматическое создание документов в 1С.
По умолчанию OData в 1С работает в XML формате, но добавив GET параметр к запросу можно перевести работу в режим обмена JSON, а не XML
Поддержка JSON позволяет упростить работу с OData сервисом из JavaScript, что позволяет работать с данными напрямую из вэб приложений.
Зачем нужен весь этот OData?
На протяжении многих лет 1С представляла из себя замкнутую систему. Все взаимодействие с внешними сервисами сводилось либо к сложным в реализации COM компонентам, либо к обмену примитивными CSV файлами. Это очень сильно ограничивало интеграцию 1С со сторонними сервисами. Постепенно 1С шло навстречу необходимости интегрироваться с веб приложениями, предоставив механизм веб сервисов SOAP, но увы в большинстве случаев этот механизм требовал изменения конфигурации, то есть снятия ее с поддержки + слаженной работы нескольких специалистов, что делало подобные решения дорогими и мало популярными.
OData же это огромный шаг на встречу разработчикам не связанным с 1С. В первую очередь это касается WEB приложений, как-то интернет магазины. К примеру, PHP программист используя CURL может при формировании заказа на сайте сформировать документ заказа и в 1С, заодно и завести нового клиента в базе, если это его первый заказ. Увы, изначально OData в 1С поддерживал лишь XML формат обмена, но в последних версиях добавилась поддержка JSON, с которым ВЭБ разработчику намного легче работать.
То есть основное преимущество OData в том что он не требует участия 1С программиста для интеграции, потому что сразу содержит универсальный и единый механизм доступа к любым объектам в базе, в формате стандартизированном Microsoft, открытом и доступном. Благодаря этому нововведению мы ожидаем целой плеяды интеграции интернет магазинов с 1с — загрузка каталога в магазин, экспорт заказов, синхронизация остатков и прочие плюшки.