OData в 1С: как подключить приложение, бота или ИИ без расширения
Стандартный интерфейс OData включается при публикации базы 1С и даёт внешнему приложению, боту или нейросети чтение и запись без расширения конфигурации. Как его опубликовать, какие объекты видны, где ломаются PATCH и PUT, фильтры, права и лицензии, и когда всё же нужен HTTP-сервис. На примере двух моих проектов.
Коротко (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С такой:
- Поставить и настроить веб-сервер, Apache или IIS.
- В конфигураторе опубликовать базу на веб-сервере и включить публикацию стандартного интерфейса OData.
- Задать состав интерфейса: какие объекты будут видны снаружи. 1С предлагает для этого обработку, после неё базу публикуют заново, иногда перезапускают веб-сервер.
- Открыть адрес 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С и включаю там OData скриптом. На рабочей базе заказчика не экспериментирую.
- Список объектов. Выписываю, какие объекты нужны приложению, и включаю только их. Для приложения задач хватило трёх.
- Проверка записи. На копии прогоняю создание, изменение, проведение и удаление и смотрю, как сервер отвечает на PATCH и PUT. Если зависает или теряет поля, ставлю таймаут и запасной путь.
- Тесты на живой базе и на заглушке. В приложении задач было 6 тестов на живой 1С и 16 тестов экранов на заглушке, которая изображает 1С. Тестовые записи помечены приставкой и в конце помечаются на удаление.
- Откат. Всё, что создаёт интеграция, пишу в журнал. В ИИ-бухгалтере откат по журналу убирает ровно то, что создало демо, и не трогает чужие документы. Сквозной тест полного цикла проходит примерно за 12 секунд.
- Пакет заказчику. Скрипт включения 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 минут.


