Разработка 8 мин чтения

OData в 1С: как подключить приложение, бота или ИИ без расширения

Стандартный интерфейс OData включается при публикации базы 1С и даёт внешнему приложению, боту или нейросети чтение и запись без расширения конфигурации. Как его опубликовать, какие объекты видны, где ломаются PATCH и PUT, фильтры, права и лицензии, и когда всё же нужен HTTP-сервис. На примере двух моих проектов.

1СODataинтеграциямобильное приложениеИИ

Коротко (TL;DR)

  • Стандартный интерфейс OData есть в платформе 1С из коробки. Его включают при публикации базы на веб-сервере, и внешняя программа читает и пишет данные по HTTP без единой строки кода в конфигурации.
  • Так я подключил ИИ-бухгалтера к типовой базе для стенда на форуме и приложение задач для Android к живой 1С. В обоих проектах расширение не понадобилось.
  • Ограничения есть: изменение объектов на разных серверах 1С ведёт себя по-разному, фильтры по составным полям требуют явного типа, права и лицензии надо решить до старта.
  • Когда нужна своя логика на стороне 1С, штатный расчёт или один запрос вместо десяти, пишу HTTP-сервис в расширении. Автоматизация процессов у меня от 60 000 ₽, срок от 2 недель.
Хотите внедрить это у себя?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Автоматизация бизнеса

OData в 1С это стандартный REST-интерфейс, который платформа строит сама по метаданным конфигурации. Его включают галочкой при публикации базы на веб-сервере, отмечают, какие справочники, документы и регистры отдать наружу, и дальше мобильное приложение, бот или ИИ работают с типовой базой по HTTP: читают списки, создают документы, меняют реквизиты. Конфигурацию трогать не нужно, поэтому обновления типовой проходят как раньше. Для первой версии интеграции этого часто хватает целиком.

Что такое стандартный интерфейс OData в 1С

У фирмы 1С эта технология называется «Автоматический REST-интерфейс (OData)», ей посвящён раздел в документации «Технологии интеграции 1С:Предприятия 8.3» на ИТС (полный текст доступен по подписке). Слово «автоматический» здесь главное: интерфейс не пишет программист. Платформа сама даёт адрес для каждого включённого объекта, а внешняя система обращается к нему обычными HTTP-запросами.

В базе знаний 1С по публикации стандартного REST API операции расписаны так: чтение запросом GET, создание запросом POST, изменение запросом PATCH или PUT в зависимости от того, сколько свойств объекта меняется, удаление запросом DELETE.

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

Как опубликовать OData и включить нужные объекты

Порядок по той же инструкции 1С такой:

  1. Поставить и настроить веб-сервер, Apache или IIS.
  2. В конфигураторе опубликовать базу на веб-сервере и включить публикацию стандартного интерфейса OData.
  3. Задать состав интерфейса: какие объекты будут видны снаружи. 1С предлагает для этого обработку, после неё базу публикуют заново, иногда перезапускают веб-сервер.
  4. Открыть адрес OData в браузере и проверить, что объекты на месте.

Третий шаг самый неудобный. Искать галочки по сотням объектов руками долго, и легко забыть один регистр. В проекте ИИ-бухгалтера я включал OData скриптом: сначала на своей копии типовой базы, потом тот же скрипт ушёл заказчику в пакет, чтобы он включил ровно те объекты, что нужны, без ручного поиска. Подробно это описано в кейсе про ИИ-бухгалтера над 1С для стенда на форуме.

Какие объекты видны и что с ними можно делать

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

  • Чтение. Списки с отбором, один объект по ссылке, остатки и обороты из регистров. На этом построены акты сверки по должникам в ИИ-бухгалтере.
  • Создание. Новые документы и элементы справочников. В том же проекте кнопка «навести беспорядок» создаёт 8 документов с типовыми ошибками, а 7 проверок их находят.
  • Изменение и проведение. Исправление реквизитов, проведение документа. Перед созданием копии оплаты на новой дате я делал пробное проведение, потому что проводились они не всегда.
  • Задачи и бизнес-процессы. В типовых на Библиотеке стандартных подсистем уже есть бизнес-процесс «Задание» и задача исполнителя. Приложение для Android из кейса про задачи сотрудникам из 1С в телефоне работает только с ними: показывает мои задачи, принимает к исполнению, выполняет с комментарием и создаёт новые. Для этого в OData включены три объекта: пользователи, «Задание» и задача исполнителя.

Чего OData сам не умеет: вызывать вашу бизнес-логику. Зарплату через него штатным механизмом 1С не посчитать, поэтому в демо НДФЛ и взносы считал сам продукт. Для демо этого хватило, для реального учёта нужен штатный расчёт, и тут уже нужен код на стороне 1С.

Ограничения: PATCH и PUT, фильтры, права, лицензии

Изменение объектов ведёт себя по-разному

На бумаге PATCH меняет только переданные поля. На практике у меня было так: автономный сервер 1С 8.5 на PATCH через OData зависал, а PUT в проекте ИИ-бухгалтера обнулял ссылочные поля, которые я не передал. Я поставил PATCH с таймаутом 10 секунд, а при отказе документ из демо пересоздаётся с тем же номером. Чужие документы при отказе не трогаются вообще.

В приложении задач для Android запрос на частичное изменение на автономном сервере тоже зависал. Там запасной путь другой: приложение читает объект целиком и записывает его заново со всеми полями. Вывод для заказчика простой: как ваш сервер обрабатывает изменения, я проверяю на копии базы до того, как писать в рабочую.

Фильтры по составным полям

Если поле может ссылаться на объекты разных типов, например контрагент в платёжке, в запросе нужно явно привести ссылку к типу справочника. Без этого отбор не срабатывает. Мелочь, на которую уходит полдня, если не знать заранее.

Права

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

Публикация и лицензии

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

Когда нужен HTTP-сервис или расширение

OData хорош, пока внешней системе хватает объектов в том виде, в каком они лежат в базе. Свой код в 1С нужен в четырёх случаях:

  • Нужен штатный расчёт или проведение со сложной логикой, которую нельзя повторить снаружи, как с зарплатой выше.
  • Для одного экрана приложения нужно десять запросов к разным объектам. Один метод HTTP-сервиса отдаст всё сразу, и телефон в поле не будет ждать.
  • Наружу нельзя отдавать объект целиком, только часть полей или готовый расчёт.
  • Нужны данные, которых в типовой нет: фото к задаче, свои статусы, отметки о геопозиции.

Тогда я пишу HTTP-сервис в расширении конфигурации, и типовая всё так же обновляется. Как устроен такой сервис, есть в статье про HTTP-сервис в 1С для приложения. Если задача в отчётности по нескольким базам, OData для этого неудобен, и лучше подходит выгрузка из 1С в SQL и BI. Для связки с CRM есть отдельный разбор, как связать 1С и Битрикс24.

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

Как я это делаю

  1. Копия базы у себя. Поднимаю копию типовой на автономном сервере 1С и включаю там OData скриптом. На рабочей базе заказчика не экспериментирую.
  2. Список объектов. Выписываю, какие объекты нужны приложению, и включаю только их. Для приложения задач хватило трёх.
  3. Проверка записи. На копии прогоняю создание, изменение, проведение и удаление и смотрю, как сервер отвечает на PATCH и PUT. Если зависает или теряет поля, ставлю таймаут и запасной путь.
  4. Тесты на живой базе и на заглушке. В приложении задач было 6 тестов на живой 1С и 16 тестов экранов на заглушке, которая изображает 1С. Тестовые записи помечены приставкой и в конце помечаются на удаление.
  5. Откат. Всё, что создаёт интеграция, пишу в журнал. В ИИ-бухгалтере откат по журналу убирает ровно то, что создало демо, и не трогает чужие документы. Сквозной тест полного цикла проходит примерно за 12 секунд.
  6. Пакет заказчику. Скрипт включения OData, настройки без пароля 1С и короткая инструкция. Пароль заказчик вводит сам.

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

Сколько стоит подключить приложение или бота к 1С

Цены по моему прайсу:

  • Автоматизация процессов и документов: от 60 000 ₽, срок от 2 недель. Сюда попадает связка 1С с внешним сервисом или ИИ через OData.
  • Бот в мессенджере: от 30 000 ₽, от 1 недели. Бот для бизнеса с оплатой, записью и CRM: от 80 000 ₽, от 2 недель.
  • PWA-приложение для сотрудников: от 150 000 ₽, от 1 месяца.
  • Технический аудит текущей интеграции: от 50 000 ₽, от 1 недели.
  • Разработка по часам: от 3 000 ₽ в час. Поддержка после запуска: от 20 000 ₽ в месяц.

Точную сумму называю после разбора: сколько объектов, есть ли запись, нужен ли HTTP-сервис в расширении. Если интеграция уже есть и работает плохо, начните с аудита, это дешевле переделки вслепую.

Частые вопросы

Нужен ли программист 1С, чтобы включить OData?

Для публикации и состава объектов нужен доступ к конфигуратору и веб-серверу. Это делает администратор или я по скрипту. Конфигурацию при этом не меняют.

OData сломается после обновления типовой?

Сама конфигурация для OData не меняется, поэтому обновление идёт как обычно. Если в новом релизе переименовали или убрали реквизит, приложение придётся поправить. Состав объектов после обновления я проверяю тем же скриптом.

Можно ли подключить нейросеть к 1С через OData?

Да, так работает ИИ-бухгалтер из кейса: чат на DeepSeek вызывает проверки, а данные из 1С перед отправкой в модель заменяются метками. Обезличивание лучше заложить сразу.

Это безопасно, база же торчит в интернет?

База открыта только по защищённому адресу и только для пользователя с узкими правами. Без этих двух условий я интеграцию не запускаю.

Коротко о главном

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

Если хотите подключить к своей 1С приложение, бота или нейросеть, напишите мне в Telegram слово «ODATA». Скажите, какая у вас конфигурация и что должно происходить снаружи, и я отвечу, хватит ли стандартного интерфейса.

Обсудим вашу задачу

Подключение приложения, бота или ИИ к 1С

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Публикация стандартного OData и состав объектов скриптом
  • Приложение сотрудника или бот поверх типовой 1С
  • ИИ-помощник над данными 1С с обезличиванием
  • HTTP-сервис в расширении, когда OData мало
Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх