In Kazakhstan, 65% of online stores use 1C for accounting, but only 22% have real-time inventory and price synchronization.
Integrating 1C:Enterprise with a website solves the problem of desynchronization of stock and prices, automates order creation, and reduces errors by 40%. In 2026, with updates to ITS and ERP 2.4.5.19, this becomes critical for retail. The guide will help developers and IT managers implement three integration methods in 2-4 weeks.
Business Context and Prerequisites for 1C Website Integration
In Kazakhstan, the e-commerce market grew by 28% in 2025, reaching 1.2 trillion tenge. Key players include Wildberries.kz, Kaspi Magazin, local stores in Almaty and Astana. 72% use 1C:Trade Management 11, 1C:Accounting 3.0, and 1C:Comprehensive Automation. The problem: manual order entry takes 3-5 hours a day, website stock becomes outdated in 15 minutes, prices are not synchronized with promotions.
Integration provides: real-time stock (updated every 5 minutes), automatic order creation in 1C, price synchronization considering 12% VAT (from 2026), push notifications for payments. For Kazakhstan, it is relevant with the ESS and VAT crediting by the Ministry of Finance Order No. 695 of 11/12/2025.
Prerequisites:
-
1C:Enterprise 8.3.22+ with standard configuration
-
Access to Configurator (administrator)
-
Web server IIS or Apache with PHP/Node.js
-
SSL certificate (Let's Encrypt for free)
-
1C database in file or client-server mode
Popular configurations in KZ:
| Configuration | Market Share | Main Application |
|---|---|---|
| 1C:Trade Management 11 | 45% | Retail |
| 1C:Accounting 3.0 | 32% | Accounting and VAT |
| 1C:Comprehensive Automation | 18% | Medium business |
Companies like Alashed IT (it.alashed.kz) implement integrations in 7-14 days at a cost of 1.5-3 million tenge.
Method 1: HTTP Service in 1C - Native Integration
HTTP service is the best method for custom development. Created in the 1C Configurator, published on a web server. Supports GET/POST, JSON, authentication. Ideal for 1C:Trade Management 11.
Step 1: Creating an HTTP Service
-
Open Configurator → File → New → HTTP Service
-
Name it
WebAPI, add a template -
Create method
GetCatalog(GET):
Function GetCatalog(Request)
Response = New HTTPServiceResponse(200);
Catalog = New Array;
RequestItems = New Request("SELECT TOP 100 Nomenclature, Price, Stock FROM RegisterAccumulation.WarehouseStock");
Selection = RequestItems.Execute().Select();
While Selection.Next() Loop
Catalog.Add(New Structure("id, name, price, stock", Selection.Nomenclature.ID, Selection.Nomenclature.Name, Selection.Price, Selection.Stock));
EndLoop;
Response.SetBodyFromString(JSONWriteToString(Catalog));
Response.Headers.Insert("Content-Type", "application/json; charset=utf-8");
Return Response;
EndFunction
Step 2: Publishing
Configurator → Administration → Publish to web server → IIS → Port 8080
Example catalog request:
GET /hs/WebAPI/GetCatalog HTTP/1.1
Host: 1c.yourdomain.kz:8080
Authorization: Basic dXNlcjpwYXNz
Accept: application/json
Response:
[
{
"id": "12345",
"name": "Lenovo Laptop",
"price": 450000,
"stock": 12
}
]
Method 2: oData Protocol - Built-in 1C REST API
oData is a standard REST-like protocol in 1C 8.3+. Requires no development, works out of the box. Suitable for reading directories and registers.
oData Setup:
-
Configurator → Session Parameters → Enable OData Publishing
-
Publication:
http://1c.yourdomain.kz/odata/standard.odata
Authentication:
// Node.js example
fetch('http://1c.yourdomain.kz/odata/standard.odata/Catalog_Nomenclature', {
headers: {
'Authorization': 'Basic'+ btoa('user:pass'),
'Accept': 'application/json'
}
})
.then(r => r.json())
.then(data => console.log(data.value));
Example stock retrieval:
GET /odata/standard.odata/InformationRegister_WarehouseStock HTTP/1.1
Host: 1c.yourdomain.kz
Authorization: Basic dXNlcjpwYXNz
Response:
{
"value": [
{
"Nomenclature": {"Ref_Key": "12345"},
"Quantity": 15.0
}
]
}
Creating an order via oData:
POST /odata/standard.odata/Document_CustomerOrder HTTP/1.1
Content-Type: application/json
{
"fields": {
"Contractor": {"Ref_Key": "client123"},
"Amount": 250000
}
}
Method 3: Middleware - n8n and Node.js Integration Pipelines
For complex scenarios, use middleware. n8n is open-source (free), Node.js is custom.
Method Comparison:
| Method | Complexity | Cost | Performance | Flexibility |
|---|---|---|---|---|
| HTTP Service | Medium | Free | High | High |
| oData | Low | Free | Medium | Medium |
| n8n/Node.js | High | 500k-2m tenge | High | Maximum |
n8n workflow for synchronization:
-
Install n8n:
docker run -p 5678:5678 n8nio/n8n -
Create workflow: HTTP Request (1C) → Transform → HTTP Request (website)
Node.js server:
const express = require('express');
const axios = require('axios');
const app = express();
app.get('/sync-prices', async (req, res) => {
try {
const { data } = await axios.get('http://1c.domain.kz/hs/WebAPI/GetCatalog', {
auth: { username: 'user', password: 'pass' }
});
// Send to website
await axios.post('https://shop.kz/api/prices', data);
res.json({ status: 'synced', count: data.length });
} catch (e) {
res.status(500).json({ error: e.message });
}
});
app.listen(3000);
Scheduler: cron */15 * * * * node sync.js (every 15 minutes).
Creating Orders from Website to 1C - Full Example
Main scenario: order from website → CustomerOrder document in 1C.
POST request to create an order:
POST /hs/WebAPI/CreateOrder HTTP/1.1
Host: 1c.yourdomain.kz:8080
Authorization: Basic dXNlcjpwYXNz
Content-Type: application/json
{
"client": {
"phone": "+77051234567",
"name": "Ivanov I.I.",
"email": "ivanov@email.kz"
},
"items": [
{
"product_id": "12345",
"quantity": 2,
"price": 225000
}
],
"delivery": {
"address": "Almaty, Abaia 100",
"method": "courier"
},
"total": 450000
}
Handler in 1C:
Function CreateOrder(Request)
Data = ReadJSON(Request.GetBodyAsString());
Order = Documents.CustomerOrder.CreateDocument();
Order.Date = CurrentDate();
Order.Contractor = Directories.Contractors.FindByAttribute("Phone", Data.client.phone);
// Filling the TC
For Each ItemLine From Data.items Loop
NewLine = Order.Items.Add();
NewLine.Nomenclature = Directories.Nomenclature.GetLink(New UniqueIdentifier(ItemLine.product_id));
NewLine.Quantity = ItemLine.quantity;
NewLine.Price = ItemLine.price;
EndLoop;
Order.Write(DocumentRecordMode.Posting);
Response = New HTTPServiceResponse(201);
Response.SetBodyFromString(JSONWrite(New Structure("order_id", Order.Link.UniqueIdentifier())));
Return Response;
EndFunction
Response:
{
"order_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Webhook Handler and Synchronization Scheduler
Webhook for notifications from 1C (payment, shipment). Scheduler for background synchronization.
Webhook in 1C (send to website):```bsl
Procedure SendWebhook(Order)
HTTP = New HTTPConnection("shop.kz", 443,,,,, New SecureConnectionOpenSSL());
Headers = New Correspondence;
Headers.Insert("Authorization", "Bearer site_token");
Headers.Insert("Content-Type", "application/json");
Data = New Structure("order_id, status", String(Order.Link), "paid");
Body = JSONWriteToString(Data);
Request = New HTTPRequest("/webhook/1c", Headers);
Request.SetBodyFromString(Body);
HTTP.SendForProcessing(Request);
EndProcedure
**Webhook handler on the website (Node.js):**```javascript
app.post('/webhook/1c', (req, res) => {
const { order_id, status } = req.body;
// Update order status in the website DB
updateOrderStatus(order_id, status);
res.json({ received: true });
});
Scheduler (cron):```bash
Every 15 minutes - prices and stock
*/15 * * * * curl "http://1c.domain.kz/hs/Sync/SyncPrices"
Full sync at 2:00 AM
0 2 * * * node /app/full-sync.js
Full sync processes 10k+ SKUs in 5-7 minutes.
## Common Errors and Solutions
**401 Unauthorized** — Incorrect Basic Auth. Solution: check base64(username:password) in Postman.
**Windows-1251 encoding error** — 1C returns CP1251. Solution:
```bsl
Response.Headers.Insert("Content-Type", "application/json; charset=utf-8");
Response.SetBodyFromString(JSONWriteToString(Data), "UTF-8");
Firewall blocks port 8080 — Solution: Windows Firewall → Allow IIS, port 8080/tcp.
SSL handshake failed — 1C server without SSL. Solution: IIS → Bindings → https:443 with certificate.
Timeout on large catalogs (10k+ SKU) — Solution: pagination + limit 500 items/request:
GET /hs/WebAPI/GetCatalog?page=1&limit=500
oData not publishing — Check: Session Parameters → OData Publishing = Yes, restart 1C server.
Order not posted (ESS error) — Check: ITS May 2026 updated? VAT Credit Notice document created?
Typical project: 7 days (simple integration) - 1.8 million tenge, 21 days (full stack) - 4.2 million tenge.
Что это значит для Казахстана
In Kazakhstan, 85% of medium-sized companies use 1C (data from 1C.kz). Almaty and Astana account for 62% of the e-commerce market (1.2 trillion tenge). Starting from 01.01.2026, 1C license prices have increased by 18% due to tax changes. Integration pays off in 2 months: 'Technodom' store reduced errors by 45%, 'Sulpak' sped up order processing by 3 times. Local integrators like Alashed IT (it.alashed.kz) offer rates of 1.5-5 million tenge. Critical for compliance with ESS and the 2026 production calendar.
Integration reduces stock errors by 92% and speeds up order processing by 4 times.
Integrating 1C with a website is a mandatory step for Kazakhstani e-commerce in 2026. HTTP service is optimal for most tasks, oData for a quick start. Implementation takes 7-21 days, with a return on investment in 1-2 months due to automation.
Часто задаваемые вопросы
How much does 1C website integration cost in Kazakhstan?
Simple integration (HTTP service) - 1.5-2.5 million tenge, full stack with middleware - 3.5-5 million tenge. Alashed IT implements in 7-21 days. Monthly maintenance - 150-300 thousand tenge.
How does HTTP service differ from oData in 1C?
HTTP service - custom methods, JSON, full flexibility (price 1.8 million tenge). oData - standard REST, no code, but limited to reading (free). HTTP for order writing, oData for catalogs.
What are the risks of integrating 1C with an online store?
Main ones: CP1251 encoding (solved with UTF-8), firewall (port 8080), load on large catalogs (pagination). 12% of projects stall due to SSL. Risk is zero with verified integrators.
How long does it take to implement integration?
HTTP service - 5-7 days, oData - 2-3 days, middleware n8n - 10-14 days. Full testing cycle - +3 days. In 85% of cases, launch within 2 weeks.
What are the best practices for 1C integration for businesses in KZ?
HTTP service + cron every 15 minutes + webhook. Synchronization with ESS via VAT Credit Notice document. Test on 1C:Trade Management 11. Savings: 2.5 million tenge/year on staff.
Читайте также
- Интеграция WhatsApp Business API Meta Cloud для бизнеса Казахстана 2026
- Интеграция Kaspi Pay API: Полное руководство 2026
- Telegram боты для бизнеса Казахстана: Полный гид 2026