Интеграция 1С с внешними системами через OData: как настроить
АйТи Фреш
1С и базы данных

Интеграция 1С с внешними системами через OData без ручной перегрузки

Автор: , директор ООО «АйТи-Фреш» · · ~13 мин чтения
Склад, магазин и офис соединены пневмотрубами с капсулами
OData связывает 1С с сайтом, складом и CRM без ручной перегрузки данных

Бухгалтер, который вечером вручную забивает в 1С заказы, выгруженные из интернет-магазина в Excel, — не редкость, а норма для огромного числа небольших компаний. Я вижу это регулярно. Склад ведёт учёт в одной программе, сайт принимает заказы через свою, а связующим звеном работает человек, который копирует цифры из одного окна в другое. Каждая такая перегрузка — лишний час и источник ошибки, которая всплывёт при сверке остатков или при закрытии месяца. При этом интеграция 1С с внешними системами через OData — штатная возможность платформы, доступная начиная с версии 8.3.5, и для типовых сценариев обмена писать с нуля ничего не нужно.

Самый дорогой интерфейс обмена данными — это человек с двумя открытыми окнами и кружкой кофе.

Что такое OData и почему это не экзотика

OData — открытый веб-протокол для запроса и обновления данных через обычные HTTP-команды. Платформа 1С:Предприятие поддерживает его с версии 8.3.5 в виде автоматического REST-интерфейса (используется OData версии 3.0, форматы atom-xml и JSON). Простыми словами: внешняя программа — сайт, CRM, складская система, мобильное приложение — может «спросить» у базы 1С данные или «передать» ей данные без прямого доступа к базе данных и без костылей в виде файлов обмена, которые кто-то должен вручную запускать.

REST-интерфейс формируется автоматически на основе объектов конфигурации. Это принципиально отличается от старых схем обмена через выгрузку XML по расписанию: OData работает по запросу, в момент события, через обычный HTTP. Без человека посередине.

Три уровня, на которых 1С разговаривает с внешним миром

Для интеграции платформа предлагает несколько технологий, и разницу между ними нужно понимать до того, как подрядчик начнёт выставлять счета:

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

Как включить OData: три шага, а не проект на полгода

Схема на практике выглядит так:

  1. База публикуется на веб-сервере (IIS или Apache) из Конфигуратора: «Администрирование» → «Публикация на веб-сервере», флажок «Публиковать стандартный интерфейс OData». На вкладке авторизации можно сразу создать отдельного пользователя для REST-сервиса — и сделать это стоит обязательно.
  2. Настраивается состав интерфейса: какие объекты видны снаружи. В конфигурациях на базе типовой библиотеки для этого есть обработка «Настройка стандартного интерфейса OData» — загрузили метаданные, отметили нужные справочники и документы, сохранили.
  3. Внешняя система делает обычные HTTP-запросы: GET — получить данные, POST — добавить запись, PATCH — изменить существующую. Тело запроса и ответа — JSON.

Это тот же принцип, по которому работает огромное число современных веб-сервисов, поэтому с OData справляются и 1С-разработчики, и обычные веб-программисты на стороне сайта или CRM. Никакой магии. Ни одного «уникального модуля за отдельные деньги».

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

Мастер открывает латунный вентиль на готовой системе труб
Стандартный интерфейс OData включается в публикации базы, а не пишется с нуля

Что можно интегрировать

Типичные сценарии, которые закрывает OData без разработки с нуля:

Внешняя системаЧто передаётся
Интернет-магазин / сайтЗаказы с сайта в 1С, остатки и цены из 1С на сайт
Складская система / ТСДДвижения товара, остатки, приёмки и отгрузки
CRMКонтрагенты, сделки, статусы оплаты
МаркетплейсыОстатки, цены, статусы заказов
Аналитика и хранилища данныхВыгрузка оборотов и остатков для отчётности руководству

С банками история другая: выписки и платёжки идут через специализированный обмен с клиент-банком, OData туда обычно не лезет. А вот там, где у внешней системы есть выбор между REST и файлами по FTP, выбор очевиден: меньше точек отказа, меньше ручных операций, обмен происходит сразу, а не «по расписанию в три ночи, если сработало».

Что OData не умеет — и где начинаются деньги подрядчика

Честно о границах. Через стандартный OData недоступны отчёты — для них нужен HTTP-сервис в расширении. Сложная бизнес-логика «перед записью заказа проверить скидку, лимит дебиторки и остаток на трёх складах» — тоже не задача OData, это задача программиста. Глубоко вложенные структуры ресурсов делают сложные запросы неинтуитивными: тот, кто пишет их впервые, помучается.

Вот здесь и проходит граница между «включили за день» и «проектом на три месяца». Если подрядчик на простой обмен заказами с сайтом выставляет смету как на внедрение ERP — спросите, зачем он пишет HTTP-сервис там, где достаточно поставить галочку.

Сценарий: как ручная перегрузка превращается в хроническую проблему

Возьмём интернет-магазин с оборотом в несколько миллионов рублей в месяц. Заказы приходят через сайт, учёт — в 1С. Пока заказов было десять в день, администратор переносил каждый руками: ФИО, адрес, товары, суммы. Справлялся.

Потом заказов стало пятьдесят-семьдесят в день. Администратор начал переносить их раз в день пачкой, затем — раз в два дня. Остатки на сайте и реальные остатки на складе разошлись: покупатель заказал товар, которого физически уже не было, потому что 1С об этом «не знала» двое суток. Отмены, извинения, возвраты предоплат. Разбор одной такой недели отнял больше времени, чем заняла бы настройка интеграции с самого начала.

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

Ручная перегрузка данных масштабируется ровно до того дня, когда человек заболел.

На что обратить внимание при настройке

Чем это отличается от экспорта в Excel

Многие уверены: раз данные можно выгрузить в Excel или CSV и загрузить в другую программу, это и есть «интеграция». Нет. Это более медленная и менее надёжная версия того же процесса, только с файлом посередине. У файлового обмена всегда есть задержка — выгрузка идёт по расписанию или вручную, а не в момент события. У него нет обратной связи: если загрузка на другой стороне не удалась, об этом узнают при следующей сверке остатков. И он всегда требует человека: кто-то запускает выгрузку, кто-то — загрузку, и при первом же отпуске цепочка рвётся.

OData убирает посредника. Запрос идёт напрямую между системами в момент события: заказ создан, остаток изменился, оплата поступила. Для редких операций раз в месяц файл — нормально. Для операций, которые происходят десятки раз в день, файл — заведомо хрупкое решение, и держаться за него — значит платить за ошибки регулярно.

Безопасность данных при открытом доступе снаружи

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

Последний пункт я повторяю каждому клиенту. Подрядчик, который настраивал обмен, давно ушёл, а логин и пароль от вашей базы у него остались. Это не «техническая мелочь». Это открытая дверь в вашу бухгалтерию, и закрывать её нужно сегодня, а не когда появится повод.

Интеграция, настроенная под администратором базы, — это не интеграция. Это ключ от сейфа, оставленный в замке.

Охранник проверяет пропуск курьера у служебного люка хранилища
Открытый наружу доступ к базе требует отдельной учётной записи с минимальными правами

Что делаем мы и чем это отличается

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

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

Чек-лист: готовы ли вы к интеграции 1С через OData

Если ваша бухгалтерия до сих пор переносит заказы или остатки вручную между 1С и сайтом — напишите нам в АйТи Фреш. Мы обслуживаем серверы и базы 1С от 7 000 ₽/мес и в рамках обслуживания находим, где ручной труд в учёте убирается стандартными средствами платформы, без разработки с нуля и без счетов «за уникальный модуль».

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

Нужно ли нанимать программиста 1С для настройки OData?

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

Безопасно ли открывать базу 1С для внешних систем через OData?

Да, при правильной настройке: доступ открывается к выбранным объектам метаданных под отдельным пользователем с ограниченными правами, по HTTPS. Риск возникает, когда доступ открывают «для простоты» под администратором и забывают сузить после тестов.

Чем OData отличается от обычного файлового обмена?

Файловый обмен — выгрузка в файл по расписанию и загрузка на другой стороне, с задержкой и риском потери синхронизации. OData работает по запросу через HTTP в момент обращения, без промежуточных файлов и без человека, который должен «нажать кнопку».

Можно ли через OData интегрировать 1С с банком?

Для банковских выписок используются специализированные протоколы обмена с клиент-банком. OData применяется для сайтов, CRM, складских и аналитических систем, а не для банков.

Что делать, если после настройки интеграции данные расходятся между 1С и сайтом?

Смотреть логи обмена с обеих сторон и коды HTTP-ответов. Если сервис не возвращает внятный код ошибки, расхождение накапливается незаметно. Нужна регулярная сверка остатков и настроенное оповещение об ошибках, а не разовая проверка при запуске.

Работает ли OData с облачной версией 1С (1С:Фреш)?

Да, в 1С:Фреш OData доступен как штатный REST API для чтения и записи данных приложений.

Сколько времени занимает настройка типовой интеграции?

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

Столкнулись с похожей задачей? Обращайтесь — решим

Если у вас происходит что-то из описанного в этой статье — или любая другая проблема с ИТ-инфраструктурой, — обращайтесь в любое время. Мои специалисты и я лично разберём ситуацию, найдём настоящую причину и доведём до решения.

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

© ООО «АйТи-Фреш» · Москва · Все статьи