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:

ConfigurationMarket ShareMain Application
1C:Trade Management 1145%Retail
1C:Accounting 3.032%Accounting and VAT
1C:Comprehensive Automation18%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

  1. Open Configurator → File → New → HTTP Service

  2. Name it WebAPI, add a template

  3. 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:

  1. Configurator → Session Parameters → Enable OData Publishing

  2. 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:

MethodComplexityCostPerformanceFlexibility
HTTP ServiceMediumFreeHighHigh
oDataLowFreeMediumMedium
n8n/Node.jsHigh500k-2m tengeHighMaximum

n8n workflow for synchronization:

  1. Install n8n: docker run -p 5678:5678 n8nio/n8n

  2. 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.

Читайте также

Источники