Протокол OData: работа с данными 1С. Ценности за порогом современных решений.

Протокол OData (Open Data Protocol) представляет собой стандарт для обмена данными между различными приложениями через веб. Рассмотрим основы работы с протоколом OData и его применение для работы с данными в системе 1С.
26 мая 2025
Автор: Сидоров Александр
Время чтения: 20 мин.

Что такое OData? Open Data Protocol — это набор правил для обмена информацией между разными приложениями через интернет. 
Эти правила помогают разработчикам создавать специальные программы (API), которые могут получать и отправлять данные в виде простых текстовых файлов (JSON или XML).
Как работает протокол OData, и как его можно использовать для работы с данными в популярной системе, подробнее в статье.

Организация доступа

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

Основные шаги:
1) Установка веб-сервера
- Выберите сервер (например, Apache 2.4 для кроссплатформенности).
- Для безопасности используйте Apache с SSL.
2) Публикация информационной базы
- Откройте конфигуратор 1С 8, перейдите в «Администрирование».
- Выберите «Публикация на веб-сервере…».
- Укажите имя публикации, сервер и каталог.
- Отметьте «Публиковать стандартный интерфейс OData».
3) Варианты публикации
- Если сервер на том же ПК, нажмите «Опубликовать» и перезапустите.
- Если сервер на другом ПК или нет прав, сохраните файл конфигурации (default.vrd) и разместите его на сервере.
4) Активация OData
- Активируйте OData для объектов метаданных с помощью метода «УстановитьСоставСтандартногоИнтерфейсаOData».
- Для получения списка объектов используйте функцию «ПолучитьСоставСтандартногоИнтерфейсаOData».
5) Тестирование OData
- Проверьте через веб-браузер по URL-адресу;
- Параметры: сервер, порт, имя публикации, объект метаданных, формат (json или atom).

Чтобы эффективно использовать протокол OData, нужно понять основные понятия и концепции.

Рассмотрим ключевые термины:
Сущность — это уникальный объект, похожий на записи в системе «1С:Предприятие». Все сущности содержат уникальный номер и соответствуют записям в базе данных

Коллекция — это группа сущностей, объединённых общим контекстом. Например, коллекция может быть списком справочников или журналом документов.

Свойство — это характеристика сущности. Свойства могут быть простыми, например, текст или число, или сложными, например, ссылки на другие сущности или другие коллекции.

Связь — это отношение между двумя сущностями, которое позволяет связывать данные. Связи могут быть односторонними или двусторонними.

Функция — это операция, которая выполняется над сущностями или их свойствами. Функции используются для сортировки, фильтрации или объединения данных.

Протокол OData — это мощный инструмент для работы с данными. Он стандартизирует запросы и поддерживает различные форматы данных. Понимание принципов работы с Open Data Protocol и их практическое применение упрощает интеграцию данных в веб-приложения и другие системы.


Протокол OData работает по принципу RESTful-архитектуры. Что означает, что он легко встраивается в экосистему других сайтов и сервисов.
С помощью Open Data Protocol можно делать разные вещи с данными: получать их, обновлять, добавлять новые или удалять. Для каждой из этих задач используются специальные команды, которые отправляются через интернет: GET, POST, PUT или DELETE.
Протокол OData:
- Автоматически создает простой веб-интерфейс для работы с данными, что позволяет избежать написания дополнительного кода для взаимодействия с другими сервисами. Это экономит время и ресурсы, необходимые для интеграции.
- Обладает высокой степенью гибкости и адаптивности. Другие программы могут добавлять новые функции без необходимости изменения основной системы. Это повышает удобство и простоту использования решения.
- Позволяет легко загружать и выгружать данные, что помогает эффективно управлять информацией.
- Предоставляет возможность динамической настройки, что позволяет легко адаптировать систему под нужды пользователей.
- Обеспечивает контроль доступа к данным, что позволяет ограничить доступ к информации и контролировать её использование.
С помощью OData Protocol можно легко добавить новые функции без изменения основной системы. Это делает решение более гибким и легко настраиваемым.
ODP поддерживает загрузку и выгрузку данных, что помогает эффективно управлять информацией.
Метаданные можно изменять "на лету", чтобы адаптировать интерфейс под конкретные нужды пользователей.
1q.jpg
В запросах используются специальные ключевые слова.
3q.jpg

Что такое OData? Это набор правил, которые говорят компьютеру, как получать доступ к информации в системе учета, опираясь на настройки безопасности и разрешения.
Для каждого кусочка информации (ресурса) устанавливаются настройки, которые определяют, кто может его видеть и использовать. Это помогает защитить данные от посторонних.
2q.jpg
URL в протоколе - это адрес, по которому можно найти нужный ресурс или совершить с ним действие. Например, URL может включать путь к ресурсу, дополнительные параметры и данные для входа в систему. 
n15nwwD3T1A.jpg
Понимание формата URL важно для правильного запроса информации.

Чтобы получить данные через OData, нужно отправить запрос на сервер. В запросе нужно указать адрес нужного ресурса, дополнительные параметры и, если нужно, данные для входа.

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

В адресе сайта содержится:

  • основной адрес сайта;
  • путь к разделу (например, /odata/v4/);
  • название группы или объекта (например, Клиенты); 
  • дополнительные настройки (например, ?фильтруем=Имя eq 'Иван').

На веб-страницах есть обозначения, которые помогают найти разные элементы. Вот некоторые из них:

  • Catalog_имяСправочники — это список вещей или предметов.
  • Document_имяДокументы — это документы, например, письма или отчеты.
  • DocumentJournal_имяЖурналы — это записи о документах.
  • Constant_имяКонстанты — это постоянные значения или числа.
  • ExchangePlan_имяПланы — это планы обмена, например, планы по обмену данными.
  • ChartOfAccounts_имяПланы счетов — это список счетов для учета денег.
  • ChartOfCalculationTypes_имяПлан видов расчета — это план для расчета чего-либо, например, зарплаты.
  • ChartOfCharacteristicTypes_имяПлан видов характеристик — это план для описания характеристик чего-либо.
  • InformationRegister_имяРегистр сведений — это место, где хранятся данные.
  • AccumulationRegister_имяРегистр накопления — это место для накопления данных.
  • CalculationRegister_имяРегистр расчета — это место для расчета данных.
  • AccountingRegister_имяРегистр бухгалтерии — это место для ведения бухгалтерии.
  • BusinessProcess_имяБизнес процесс — это бизнес-процессы, то есть шаги, которые выполняются в бизнесе.
  • Task_имяЗадача — это задачи, которые нужно выполнить.

Эти обозначения помогают быстро найти нужную информацию на веб-странице.

В запросе Open Data Protocol:

  • Слова заключаются в одинарные кавычки. Например: 'Конфеты'.
  • Уникальные идентификаторы помечаются как guid'строка'. Например: guid'27b04ad1-302f-45ed-b661-9f300183c9b1'.
  • Даты записываются как datetime'yyyy-mm-ddThh:mm:ss'. Например: datetime'2024-10-03T12:30:59'. 

После того как вы выбрали тип и название объекта, можно добавить к нему суффикс, который начинается с подчёркивания.


Вот несколько примеров:

  • Catalog_Организации(guid’c2c7fe20-dbde-41d1-9753-c74a0f23d4da’) — это способ найти запись в списке "Организации" с определённым уникальным кодом.
  • InformationRegister_КурсыВалют(Period='2024-02-20T00:00:00', Валюта_Key=guid'7ba35875-8c6b-4d9d-8826-3b6ac165be5a') — это способ найти конкретную запись в списке "Курсы валют" за определённую дату и для определённой валюты.
  • Catalog_Орган. 

Установка отборов по ресурсам

В протоколе можно задавать фильтры, чтобы получать только нужные данные. Например, можно фильтровать по номеру, дате или значению какого-то поля.

Фильтры помогают получать только важную информацию и уменьшают объем передаваемых данных.

Чтобы использовать фильтры, нужно добавить специальные параметры в запрос. Например, можно указать, что нужны данные с определенным значением или в определенном диапазоне значений. Это позволяет получить только те данные, которые нужны для конкретной задачи.

Оба стандарта (REST и OData) обеспечивают создание эффективных веб-сервисов, способных обслуживать множество клиентов.

REST — это набор правил, которые помогают разработчикам создавать такие программы.

OData — это специальный язык, который делает использование этих правил проще. Он помогает упорядочить и управлять данными, что очень удобно для тех, кто создает и соединяет разные интернет-сервисы.

Чтобы получить информацию в формате OData, нужно отправлять специальные запросы. Эти запросы строятся по определённым правилам и включают параметры. Информация, которую вы получите, может быть представлена в разных форматах, например, в виде списка или таблицы.

Для взаимодействия с протоколом OData необходимо понимание правил формирования запросов.

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

/odata/v4/Customers. 
В ответ сервер вернёт список объектов Customer, где каждый объект содержит информацию о клиенте, такую как имя, адрес и телефон.

Структурирование данных в OData

Для систем, использующих OData Protocol, требуется описание структуры данных. Эта информация включает сведения о существующих элементах, их типах и возможных действиях.

Поддерживаются два варианта представления структуры: XML либо JSON.

Чтобы увидеть схему данных, отправьте запрос на этот адрес:

https://api.timetta.com/odata/$metadata
Этот адрес ведёт к основному разделу сервиса.

Типы данных в OData


В OData есть несколько основных типов данных. Эти типы обозначаются словом "Edm". Они используются для хранения и передачи информации.

DaL4RRrL3mw.jpg

EntityType похож на сущность в модели предметной области. Это сущность, содержащая информационные данные и уникальный ID.


EntityType состоит из нескольких компонентов:
  1. Property — это данные, такие как строки или числа. У каждого свойства есть название и тип. Также может быть указано, что значение может быть пустым.

  2. NavigationProperty — это ссылки на другие объекты. У неё тоже есть название и тип.

  3. ReferentialConstraint показывает, как одна сущность связана с другой. Он включает два свойства: Property и ReferencedProperty. Property указывает на поле в текущей сущности, а ReferencedProperty — на поле в связанной сущности.

  4. Key — это уникальный идентификатор объекта. Значения ключей могут быть только простыми типами данных, такими как числа, и не могут быть пустыми.

Коды ошибок

При работе с OData могут возникнуть сложности: от настроек доступа до параметров запросов и других технических аспектов. Чтобы быстро понять, в чём проблема, и исправить её, нужно знать коды ошибок и их значение.

Ошибки могут выглядеть как числа или текстовые сообщения. Чтобы разобраться с ними, нужно смотреть на ответы сервера и анализировать их. 

Например, если сервер отвечает кодом 404, это значит, что он не нашёл запрошенный ресурс. А код 500 указывает на ошибку на самом сервере.
OData помогает делать масштабируемые и эффективные решения. В данной технологии используются метаданные в форматах XML или JSON.
XiiI2q-iUBs.jpg
Это делает его гибким и совместимым, что нравится разработчикам и интеграторам.

Интеграция с другими системами – важная часть работы компании. OData позволяет выгружать данные из 1С, что упрощает и ускоряет сбор информации.
OData – это протокол, разработанный Microsoft для доступа к данным. Он помогает соединять разные системы и приложения, что полезно для решения оперативных задач. OData автоматически формирует запросы, что облегчает работу администраторов и разработчиков.

OData имеет свои серьёзные ограничения:    

  • Он может не справляться с большими объёмами данных, так как рассчитан на работу с небольшими наборами. 

  • OData не всегда хорошо подходит для сложных запросов с фильтрами и логикой.

  • Ещё один момент – для работы с OData нужно знать T-SQL. Это язык запросов для работы с базами данных SQL Server. Не все умеют им пользоваться, что может стать проблемой.

  • OData – это полезный инструмент для выгрузки данных, но нужно учитывать его ограничения. В некоторых случаях лучше использовать другие методы и инструменты.

Важно знать:

OData — это технология, которая помогает легко извлекать данные из 1С и использовать их в других программах, например, в Power BI. Она может загружать данные из интернета в свою базу данных, что делает работу с информацией проще и удобнее.

Но, например, Yandex DataLens не может напрямую работать с OData. Чтобы решить эту проблему, можно создать скрипт с помощью Yandex Cloud Function. Этот скрипт будет регулярно переносить данные в облачную систему Clickhouse, а затем их можно будет показать с помощью специальных инструментов. Однако для этого нужен опытный программист. P6E8e2n8P5w.jpg


Решение для автоматизированного извлечения данных из системы 1С – Экстрактор данных 1С

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

qRsuydD7Z34.jpg

После установки Экстрактора в программу 1С и небольшой настройки, оно автоматически выгружает данные. Это обеспечивает постоянный обмен информацией.

Полученные данные можно легко использовать в аналитических системах, таких как Yandex Datalens, Power BI, Visiology и прочих BI системах.


wI2JZy05S7Y.jpg

Преимущества этого инструмента:

  1. Совместим с любой конфигурацией 1С.

  2. Быстро и безопасно выгружает данные, не видя их.

  3. Автоматически обновляет любые данные.

  4. Обеспечивает безопасность в процессе выгрузки данных.

  5. Легко настраивается и не требует узких знаний.

  6. Имеется бесплатная техническая поддержка на начальных этапах.

  7. Продукт позволяет создавать разные отчеты.

  8. Продукт включен в реестр российского ПО.

Этот инструмент помогает упростить работу с данными, сделать ее более эффективной и снизить риски, связанные с ошибками человека.

Что такое OData простыми словами?
OData (Open Data Protocol) — это открытый веб‑протокол, который позволяет получать, добавлять, изменять и удалять данные через обычные HTTP‑запросы. Его часто используют как стандартный REST‑API‑слой поверх приложений и баз данных, чтобы внешние системы могли работать с данными в форматах JSON или XML.
В 1С платформа автоматически поднимает OData‑сервис, через который внешние приложения могут обращаться к справочникам и документам по URL‑запросам. Достаточно включить веб‑доступ и настроить права, после чего можно считывать и выгружать данные (например, продажи, остатки, контрагентов) в BI‑системы, хранилища данных или внешние сервисы аналитики.
OData поддерживает стандартные CRUD‑операции через HTTP: чтение (GET), создание (POST), изменение (PUT/PATCH) и удаление (DELETE) ресурсов. В запросах можно использовать фильтрацию, сортировку, выбор полей, пагинацию и работу со связями между объектами (expand), что делает работу с данными похожей на SQL, но поверх HTTP‑интерфейса.
Главное преимущество — стандартизованный REST‑подход: разработчикам не нужно писать кастомные API, так как OData задает единый формат URL‑запросов и ответов. Это упрощает интеграцию 1С, CRM, ERP и других систем с BI‑платформами, мобильными приложениями и веб‑сервисами, ускоряя обмен данными и снижая стоимость разработки.
OData не всегда дает доступ ко всем объектам системы: в 1С, например, через стандартный интерфейс нельзя получить отчеты, регламентные задания, пользователей и ряд служебных сущностей. Кроме того, слишком гибкие запросы (сложные фильтры, expand по нагруженным связям, сортировка по неиндексированным полям) могут отрицательно влиять на производительность, поэтому при проектировании интеграции важно ограничивать и оптимизировать допустимые запросы.
Автор:
Сидоров Александр
Интернет-маркетолог
Продуктовый маркетолог линейки инфраструктуры Denvic Tools, event-маркетолог

Возникли вопросы?

Напишите нам — мы подскажем и поможем подобрать лучшее решение под вашу задачу.
Оставьте заявку

Другие статьи

От быстрой аналитики и первых дашбордов к масштабному контуру данных
От быстрой аналитики и первых дашбордов к масштабному контуру данных
Тернистый путь от View к Экстрактору 1С.
История начинается одинаково почти у всех
В компании появляется запрос на аналитику,...
Подробнее
Очистка данных: инструменты и особенности процесса
Очистка данных: инструменты и особенности процесса
Очистка данных — обязательный этап подготовки информации перед анализом и отчётностью.  В статье разбираем, какие проблем...
Подробнее
Импортозамещение SAP: переезд на 1С. Архитектура решения
Импортозамещение SAP: переезд на 1С. Архитектура решения
Как выстроить промышленный переезд с SAP на 1С: сценарии миграции, выгрузка данных через SAP ODP, подготовка и загрузка в 1С без рисков д...
Подробнее
Эволюция работы с данными в 1С: от Экстрактора 1C к единой экосистеме Denvic Visual Tools
Эволюция работы с данными в 1С: от Экстрактора 1C к единой экосистеме Denvic Visual Tools
Как мы прошли путь от создания инструмента для выгрузки данных из 1С до построения целостной экосистемы? В этой статье — эволюция Denvic ...
Подробнее
Все статьи