Как выгрузить часть данных из 1С:Fresh на сайт?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Столкнулись с задачей: необходимо организовать выгрузку данных, например, счетов из облачной "1С:Бухгалтерии", работающей в сервисе 1С:Fresh, на внешний сайт, разработанный на PHP. Это типичная задача интеграции, которая требует регулярного обмена информацией между учетной системой и веб-ресурсом. Давайте подробно разберем, какие существуют пути решения и какой из них выбрать в вашей ситуации.

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

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

Решение 1: Использование стандартного интерфейса OData

Это наиболее современный и рекомендуемый фирмой "1С" способ для организации обмена данными с внешними системами. OData (Open Data Protocol) — это открытый протокол, который позволяет получать и изменять данные из 1С с помощью стандартных HTTP-запросов. По сути, 1С предоставляет готовый REST API для работы со своими данными.

Принцип работы:
Ваш сайт на PHP будет отправлять HTTP-запросы к специальному адресу в сервисе 1С:Fresh. В ответ 1С будет возвращать данные в стандартизированном формате, чаще всего JSON. Это позволяет легко обрабатывать полученную информацию на стороне сайта.

Разберем по шагам, как это настроить:

  1. Активация OData в 1С:Fresh. В приложении "1С:Бухгалтерия" необходимо зайти в настройки (обычно в разделе администрирования или синхронизации данных) и активировать опцию "Стандартный интерфейс OData".
  2. Настройка состава данных. После активации вам нужно будет указать, какие именно объекты базы данных будут доступны через этот интерфейс. Вы можете опубликовать справочники (например, "Контрагенты", "Номенклатура") и документы (например, "Счет на оплату покупателю"). Это позволяет гибко управлять тем, что именно "видит" внешняя система.
  3. Настройка безопасности. Для подключения к OData нужно создать отдельного пользователя в базе 1С. Крайне важно настроить для него ограниченные права доступа. Например, если сайт должен только читать данные, предоставьте этому пользователю права только на чтение нужных объектов. Это гарантирует, что сайт случайно или злонамеренно не изменит и не удалит важную информацию в вашей бухгалтерии.
  4. Подключение со стороны сайта. Со стороны PHP вы будете использовать библиотеки для работы с HTTP-запросами (например, cURL или Guzzle) для отправки запросов к 1С и получения данных. Авторизация обычно происходит по логину и паролю созданного пользователя.

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

Решение 2: Разработка собственного HTTP-сервиса через расширение

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

Принцип работы:
Вы создаете специальное расширение конфигурации. Расширения — это механизм платформы 1С, который позволяет добавлять новый функционал, не изменяя саму типовую конфигурацию. Это критически важно для облачного сервиса 1С:Fresh, так как прямое изменение конфигурации там запрещено. В этом расширении вы разрабатываете собственный HTTP-сервис, который будет "слушать" запросы с вашего сайта, выполнять нужные действия в 1С и возвращать результат.

Процесс разработки:

  1. Создание расширения. В режиме "Конфигуратор" вы создаете новое расширение и подключаете его к вашей базе данных.
  2. Разработка HTTP-сервиса. Внутри расширения вы добавляете новый объект метаданных — HTTP-сервис. Вы определяете шаблон URL, по которому он будет доступен, и создаете методы для обработки разных типов запросов (GET, POST и т.д.). В коде этих методов вы пишете логику на встроенном языке 1С: формируете запросы к базе данных, обрабатываете результаты и сериализуете их в нужный формат (чаще всего JSON).
  3. Публикация сервиса. После разработки HTTP-сервис необходимо опубликовать на веб-сервере, чтобы он стал доступен извне.

Ключевая особенность для 1С:Fresh — обязательный аудит!
Любое расширение, которое вы хотите загрузить в свою базу в сервисе 1С:Fresh, должно пройти обязательный аудит со стороны специалистов фирмы "1С". Они проверяют ваш код на соответствие стандартам безопасности, отсутствие вредоносных алгоритмов и оптимальность с точки зрения производительности. Этот процесс может занять несколько рабочих дней. Если вы вносите изменения в расширение, каждую новую версию придется отправлять на аудит заново. Это важный момент, который нужно учитывать при планировании сроков разработки.

Решение 3: Стандартные обмены с сайтами (CommerceML)

Этот способ стоит упомянуть, хотя он может не подойти для вашей конкретной задачи по выгрузке счетов. Механизмы обмена в формате CommerceML встроены во многие типовые конфигурации (например, "1С:Управление торговлей" или "1С:Управление нашей фирмой") и предназначены в первую очередь для интеграции с интернет-магазинами.

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

Решение 4: Ручная выгрузка полной копии базы данных

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

Как это работает:
Администратор абонента в 1С:Fresh может выгрузить полную копию информационной базы в виде файла (*.dt). Этот файл затем можно загрузить в локальную версию "1С:Предприятие".

Ограничения:

Когда это полезно? Для создания резервных копий или для полного "переезда" из облака 1С:Fresh на собственный сервер. Для задач оперативной интеграции этот способ не используется.

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

← На главную