Стандартный интерфейс OData отдаёт данные 1С по HTTP в формате JSON. Дорабатывать конфигурацию для этого не нужно. Ниже как его включить и забирать в n8n документы и справочники.
Что понадобится
- 1С:Предприятие 8.3. Стандартный интерфейс OData появился в версии 8.3.5.
- Веб-сервер Apache или IIS с модулем расширения веб-сервера 1С. Либо облачная 1С:Фреш, там публикация уже сделана.
- Сетевой доступ от сервера n8n к адресу публикации по HTTPS.
- Полные права в базе 1С для настройки.
Шаг 1. Опубликовать базу на веб-сервере
В Конфигураторе откройте Администрирование → Публикация на веб-сервере. Укажите имя публикации латиницей, веб-сервер и каталог, отметьте публикацию стандартного интерфейса OData и нажмите Опубликовать. Порядок действий для вашей версии платформы есть в документации 1С.
Если сервер 1С стоит в офисе, не открывайте публикацию всему интернету. Безопаснее связать сервер n8n и офис через VPN или разрешить доступ только с IP-адреса сервера n8n.
Шаг 2. Включить OData и создать пользователя
В типовых конфигурациях на БСП откройте Администрирование → Синхронизация данных → Настройки стандартного интерфейса OData. В некоторых программах раздел называется Администрирование и НСИ или Настройки. Настройка доступна пользователю с полными правами.
- На вкладке Авторизация создайте отдельного пользователя с логином и паролем. Учётную запись администратора для интеграции не используйте.
- На вкладке Состав отметьте только нужные объекты, например документ «Реализация товаров и услуг» и справочник «Контрагенты». Планы обмена не включайте.
- Нажмите Записать и закрыть.
Для доступа по OData пользователю нужна роль УдаленныйДоступOData или полные права. Какие данные он увидит, определяют его роли в 1С.
В нетиповой конфигурации состав задаёт программист методом УстановитьСоставСтандартногоИнтерфейсаOData().
Шаг 3. Проверить адрес
Адрес интерфейса строится так:
https://СЕРВЕР/ИМЯ_ПУБЛИКАЦИИ/odata/standard.odata/
По адресу .../odata/standard.odata/$metadata 1С отдаёт описание всех доступных объектов и полей. Имена объектов начинаются с префикса типа: Catalog_ для справочников, Document_ для документов, InformationRegister_ и AccumulationRegister_ для регистров. Дальше идёт имя объекта из конфигурации, например Catalog_Контрагенты.
Шаг 4. Настроить запрос в n8n
Создайте доступ типа Basic Auth с логином и паролем пользователя из шага 2. Узел HTTP Request:
- Method:
GET - URL:
https://1c.example.ru/buh/odata/standard.odata/Catalog_Контрагенты - Authentication: Generic Credential Type → Basic Auth
- Send Query Parameters:
$format=json$select=Ref_Key,Description,ИНН,КПП$filter=DeletionMark eq false$top=100
Без $format=json 1С отвечает в XML. Записи приходят в массиве value. Разложите его узлом Split Out. Параметры удобнее задавать полями Send Query Parameters: n8n сам закодирует пробелы и кавычки.
Имена реквизитов зависят от конфигурации. Примеры в статье даны для 1С:Бухгалтерии 3.0. Сверяйте имена по $metadata своей базы.
Шаг 5. Читать документы за период
Проведённые реализации за вчера и сегодня с названием контрагента:
Document_РеализацияТоваровУслуг
?$format=json
&$filter=Date ge datetime'2026-10-08T00:00:00' and Posted eq true and DeletionMark eq false
&$select=Ref_Key,Number,Date,СуммаДокумента,Контрагент/Description
&$expand=Контрагент
&$orderby=Date
Даты в фильтре пишутся как datetime'...', ссылки как guid'...'. В n8n дату удобно собрать выражением:
Date ge datetime'{{ $now.minus({ days: 1 }).startOf('day').toFormat("yyyy-MM-dd'T'HH:mm:ss") }}' and Posted eq true
Другие полезные запросы:
- один объект по ссылке:
Catalog_Контрагенты(guid'...'); - отбор по ссылке на контрагента:
$filter=Контрагент_Key eq guid'...'; - табличная часть документа:
Document_РеализацияТоваровУслуг(guid'...')/Товары; - постраничная выборка:
$top=500и$skipсо смещением. В пагинации n8n это параметр$skip={{ $pageCount * 500 }}и условие окончания{{ $response.body.value.length === 0 }}.
Если пользователю настроены ограничения доступа на уровне записей, добавьте параметр allowedOnly=true. Без него запрос может завершиться ошибкой.
Шаг 6. Запускать по расписанию
Каждый запрос OData нагружает сервер 1С и СУБД. Не опрашивайте базу каждую минуту. Для отчётов хватает Schedule Trigger раз в час или раз в сутки. Результат сохраняйте в свою базу, например PostgreSQL, и стройте по ней отчёты. Как это сделать, описано в статье про дашборд в DataLens.
OData фильтрует по дате документа. Изменения задним числом в старых документах такой фильтр не увидит. Для точной синхронизации изменений нужен план обмена или HTTP-сервис.
Альтернатива: HTTP-сервисы
OData отдаёт справочники, документы и регистры. Отчёты, пользователей и журнал регистрации через него не получить. Если нужна выборка со своей логикой, например остатки с расчётом или готовая сверка, программист 1С делает HTTP-сервис. Его можно добавить в расширение конфигурации, не меняя типовую. Адрес выглядит так:
https://СЕРВЕР/ИМЯ_ПУБЛИКАЦИИ/hs/КОРНЕВОЙ_URL/МЕТОД
HTTP-сервис отдаёт ровно те данные, которые нужны сценарию. Зато его нужно разрабатывать и обновлять вместе с конфигурацией.
Если у базы нет доступа снаружи и опубликовать её нельзя, остаётся выгрузка в файл или программный робот. Плюсы и минусы разобраны в статье RPA или API.
Облачная 1С
1С:Фреш. По документации сервиса все приложения опубликованы с поддержкой OData. Включите доступ в приложении: Администрирование → Синхронизация данных → Настройки стандартного интерфейса OData, создайте служебного пользователя и выберите состав. Адрес интерфейса равен адресу приложения из браузера плюс /odata/standard.odata/, например https://1cfresh.com/a/sbm/12345/odata/standard.odata/. Авторизация Basic. В 1С:Фреш удаление через OData физическое, без пометки на удаление. Заголовок 1C_OData-DataLoadMode сервис не поддерживает.
1С:Готовое рабочее место и аренда 1С у партнёров. Официального описания доступа по OData для этих сервисов мы не нашли. Возможность веб-публикации уточните у поддержки вашего сервиса.
Частые ошибки
- 401. Неверный логин или пароль, у пользователя нет роли УдаленныйДоступOData, или включены ограничения на уровне записей без
allowedOnly=true. - Пустой
value. Объект не отмечен на вкладке «Состав» или у пользователя нет прав на него. Описание в$metadataпри этом может быть. - Ответ в XML. Не указан
$format=json. - Ошибка в
$filter. Дата безdatetime'...', ссылка безguid'...'или опечатка в имени реквизита. - Сценарий молча перестал получать данные. Настройте уведомления об ошибках n8n, чтобы узнавать о сбоях сразу.
Частые вопросы
Нужен ли программист 1С, чтобы включить OData?
В типовых конфигурациях на БСП обычно нет, состав объектов настраивается в интерфейсе программы. Публикацию на веб-сервере делает администратор сервера 1С. Программист нужен для нетиповой конфигурации или своего HTTP-сервиса.
Можно ли через OData записывать данные в 1С?
Да, интерфейс умеет создавать, изменять и удалять объекты и проводить документы. Начинайте с чтения. Ошибка записи в учётную базу обходится дороже ошибки чтения.
Работает ли OData в 1С:Фреш?
Да. По документации сервиса все приложения в 1С:Фреш опубликованы с поддержкой OData. Нужно включить доступ и выбрать состав объектов в самом приложении.