AccountingSuite Integration capabilities is based on 1C:Enterprise Platform API and it offers a wide range of integration capabilities, enabling seamless connectivity with external systems, cloud services, and custom applications. Below is a structured overview of key integration types and tools.
Integration overview #
Standard Integration Methods #
REST API & OData
- Purpose: Exchange data with web apps, mobile apps, or third-party services (e.g., CRM, ERP).
- Features:
- Supports CRUD operations (Create, Read, Update, Delete) for 1C objects (documents, catalogs).
- OData protocol for standardized queries (e.g.,
http://your_server/odata/standard.ibm/Catalog_Products
).
- Use Cases:
- Integration with 1C:Analytics, Power BI, Tableau for analytics.
- Connecting to e-commerce platforms (Shopify, WooCommerce).
SOAP & Web Services
- Purpose: Legacy enterprise integrations (e.g., Headquarters ERP system based on SAP, Oracle).
- Features:
- WSDL-based SOAP endpoints for strict data contracts.
- Use Cases:
- Government systems (tax reporting, EDI, e-Invoice).
- Banks (payment processing, exchange rates).
Native 1C Language (1C:Script)
- Purpose: Custom integrations using built-in 1C scripting.
- Features:
- Direct access to 1C objects via
COM
,HTTP
, orJSON
modules. - Example: Automate Excel exports or email notifications.
- Direct access to 1C objects via
Industry-Specific Integrations #
E-Commerce
- Connectors with:
- Marketplaces: e.g., Amazon (via 1C:DataExchange).
- CMS: e.g., Bitrix, WordPress (plugins like 1C-Bitrix Integration).
- Custom Solutions: Sync product catalogs, orders, inventory.
Payment Systems
- Supported:
- e.g., PayPal.
- Cryptocurrency gateways (custom APIs).
Logistics & Shipping
- Services:
- Post services e.g., DHL, FedEx.
- Track shipments, print labels.
Cloud & Middleware Integrations #
1C:EDI
- Protocols: AS2, FTP, VAN.
- With ERPs: SAP, Microsoft Dynamics.
1C:Cloud
- Native Integrations:
- Google Workspace, Microsoft 365 (calendars, emails).
- Telegram/Slack bots for alerts.
IPaaS Platforms
- Tools:
- Zapier, Make (Integromat) for no-code workflows.
- Apache Kafka for event-driven architectures.
Custom Development Options #
External Data Sources
- Database Connectors:
- MS SQL, PostgreSQL, MySQL (via 1C:Query).
- Big Data: Hadoop, Spark (custom drivers).
Mobile & IoT
- Bluetooth/RFID: Warehouse scanners, IoT sensors.
- Android/iOS SDKs: Build hybrid mobile apps.
AI & Automation
- Computer Vision: Integrate OpenCV for invoice scanning.
- ChatGPT/GigaChat: Add AI chatbots.
Authentication & Security #
- OAuth 2.0: For cloud APIs (e.g., Google, X).
- VPN/SSL: Secure on-premise connections.
- 1C:Enterprise Authentication: Role-based access control (RBAC).
How to use data exchange on the 1C:Enterprise platform #
1. Client-Side Preparation (POST Request)
- Purpose: To send data (e.g., documents) to the server.
- Actions:
- Prepare data for sending. Serialize data objects (e.g.,
SalesInvoice
documents) into JSON usingXDTOSerializer.WriteJSON()
.
- Place the serialization results into an array.
- Insert this array into a structure (e.g., with the
"invoices"
property) and serialize this structure into a final JSON string.
- Establish a connection to the server using
HTTPConnection
.
- Create an
HTTPRequest
, specifying the URL that matches the template and method of the HTTP service on the server (e.g.,"ourAPI/hs/ourAPI/V1/post_invoices"
).
- Set the request body using
SetBodyFromString()
, passing the prepared JSON string.
- Send the request using the
Post()
method.
- Prepare data for sending. Serialize data objects (e.g.,
2. Server-Side Handling (POST Request)
- Purpose: To receive and process data from the client.
- Actions:
- Create an HTTP service, specifying the
Root URL
(e.g.,ourAPI
).
- Add a URL template (e.g.,
V1/{MethodName}
) for request routing.
- Add a method (e.g.,
post_invoices
) with thePOST
type and write its handler.
- In the handler:
- Get the method name from the URL parameters:
MethodName = Request.URLParameters.Get("MethodName")
.
- Extract the request body as a string:
stringResult = Request.GetBodyAsString("UTF-8")
.
- Deserialize the received string into a structure using
ReadJSON()
.
- Extract the data array from the structure.
- For each element in the array, deserialize the JSON string into a data object (document) using
XDTOSerializer.ReadJSON()
.
- Write and post the received object using the
Write()
method.
- Get the method name from the URL parameters:
- Create an HTTP service, specifying the
3. Server-Side Preparation (GET Request)
- Purpose: To send data (e.g., catalogs) upon client request.
- Actions:
- In the same HTTP service, add a method (e.g.,
list
) with theGET
type.
- In the method handler:
- Prepare data for sending (e.g., execute a query to the
Products
catalog).
- Place the result in a structure or array.
- Serialize the data into a JSON string using
WriteJSON()
.
- Return a response with status 200 and a body containing the JSON string, setting the appropriate headers (
Content-Type
,charset=utf-8
).
- Prepare data for sending (e.g., execute a query to the
- In the same HTTP service, add a method (e.g.,
4. Client-Side Retrieval (GET Request)
- Purpose: To request and receive data from the server.
- Actions:
- Establish a connection to the server using
HTTPConnection
.
- Create an
HTTPRequest
, specifying the URL corresponding to the GET method on the server (e.g.,"ourAPI/hs/ourAPI/V1/list"
).
- Send the request using the
Get()
method.
- Receive the response (
HTTPAnswer
). Check the response status (200).
- Extract the response body as a string:
result = HTTPAnswer.GetBodyAsString()
.
- Deserialize the JSON string into a structure or array using
ReadJSON()
.
- Process the received data (e.g., create or update objects in the client database based on the received data).
- Establish a connection to the server using
General Requirements:
- The server configuration must be published on a web server for the exchange to work.
- Metadata objects (documents, catalogs) on the client and server must be identical for correct object serialization/deserialization.
- The transfer is implemented using the 1C:Enterprise platform’s HTTP services.
- You must be a developer, study and know how the system works from the code side.