How to Draft a Technical Specification for Integrating an Online Store with 1C: What to Describe Before Development
A practical template for a technical specification for data exchange between an online store and 1C: data sources, identifiers, conflict resolution rules, error handling, and acceptance criteria.

In this article
Фраза «нужно связать сайт с 1С» звучит как задача, но для оценки и разработки в ней почти нет данных. В одном проекте из учётной системы передают только остатки, в другом — весь каталог, цены и изображения, а заказы возвращают обратно. Даже одинаковое слово «цена» может означать розницу, опт, цену по соглашению или расчёт после авторизации.
Хорошее техническое задание не обязано описывать программный код. Оно должно снять неопределённость: какие данные участвуют в обмене, где находится их источник, как сопоставляются объекты и что должно произойти при ошибке.
Сначала нарисуйте карту обмена
Начинать удобнее не со списка полей, а с таблицы потоков. Для каждого объекта укажите источник, получателя, направление, частоту и ответственного владельца данных.
Например:
товары и характеристики: из 1С на сайт;
цены: из 1С на сайт, отдельно по каждому типу цены;
остатки: из 1С на сайт по складам;
изображения и SEO-тексты: из сайта или PIM, в 1С не возвращаются;
заказы: с сайта в 1С;
статус оплаты, сборки и отгрузки: из 1С на сайт;
данные доставки: источник зависит от используемой службы и схемы оформления заказа.
Эта карта сразу обнаруживает конфликты. Если менеджер может менять цену и в 1С, и на сайте, нужно заранее определить, чьё изменение имеет приоритет. Иначе обмен будет исправно перезаписывать работу одного из сотрудников.
Зафиксируйте постоянные идентификаторы
Название и артикул не всегда подходят для связи объектов. Название редактируют, артикулы иногда повторяются, а один товар на сайте может иметь несколько торговых предложений по цвету и размеру.
В ТЗ следует указать:
какой идентификатор связывает товар в 1С и элемент каталога на сайте;
как связываются характеристики и торговые предложения;
что происходит при смене артикула или переносе товара в другую группу;
можно ли создать товар вручную на сайте и кто присвоит ему внешний идентификатор;
как система поступает с объектом без идентификатора или с повторяющимся значением.
Для обмена через CommerceML обычно важны внешние идентификаторы объектов, но само наличие стандарта не отменяет проектирования. Доработанные конфигурации 1С, несколько инфоблоков или каталог поставщика могут менять схему сопоставления.
Опишите каталог на уровне реальных данных
Фраза «выгружать карточки товаров» слишком широка. Перечислите поля и правила для каждой сущности: название, артикул, ставка НДС, единица измерения, бренд, свойства, вес, размеры, штрихкоды, изображения, категории, цены и остатки.
Отдельно ответьте на вопросы:
какие свойства создают варианты товара;
можно ли автоматически создавать новые свойства и значения;
как передаются несколько изображений и их порядок;
что делать с товаром, удалённым или помеченным на удаление в 1С;
показывать ли товар с нулевым остатком;
суммировать ли остатки складов или показывать доступность по регионам;
как округлять цены и какая система считает скидку.
Чем точнее эти правила, тем меньше ручной уборки после первой полной выгрузки.
Разберите жизненный цикл заказа
Заказ — не один документ, а последовательность изменений. В ТЗ полезно описать весь путь: создание на сайте, передача в 1С, резервирование, оплата, сборка, отгрузка, отмена и возврат.
Для каждого этапа укажите, какие данные передаются и кто может их менять. Особенно важны сценарии, в которых заказ редактируют после обмена: покупатель сменил адрес, менеджер заменил товар, платёж пришёл позже, служба доставки разделила отправление.
Нужно заранее определить соответствие статусов. Статус «выполнен» на сайте и документ реализации в 1С могут отражать разные моменты процесса. Простое сопоставление по похожим названиям часто даёт ложные уведомления покупателю.
Не выбирайте транспорт раньше задачи
CommerceML, REST API, очереди сообщений и файловый обмен — это способы доставки данных, а не цель проекта. Выбор зависит от объёма каталога, допустимой задержки, версии продуктов, возможностей конфигурации 1С и требований к устойчивости.
В техническом задании стоит зафиксировать ограничения: сколько товаров и предложений передаётся, как часто должны обновляться остатки, допустимо ли полное обновление, есть ли несколько сайтов или баз, какие порты и адреса доступны, требуется ли шифрование и ограничение по IP.
Для частого обмена небольшими изменениями важна инкрементальная передача. Для больших выгрузок — разбиение на части и продолжение после сбоя. Если эти требования не указать, рабочая на тестовом каталоге схема может не выдержать боевой объём.
Опишите ошибки как часть продукта
Интеграция работает долго, поэтому редкий сбой неизбежен. Вопрос не в том, будет ли ошибка, а в том, заметят ли её и сможет ли обмен продолжиться без дублей.
В ТЗ должны быть ответы:
где хранится журнал обмена;
какие ошибки считаются временными, а какие требуют вмешательства;
сколько раз повторяется операция;
сохраняется ли номер пакета и последний успешно обработанный объект;
кто получает уведомление и с какой задержкой;
можно ли безопасно повторить пакет;
как восстановить обмен после частично загруженного файла.
Сообщение «обмен завершён» недостаточно. Полезный журнал показывает время, направление, количество прочитанных, созданных, обновлённых и отклонённых объектов, а также понятную причину отказа.
Сразу запишите критерии приёмки
Формулировка «данные синхронизируются корректно» непроверяема. Замените её конкретными сценариями. Например: изменение остатка в 1С появляется на сайте не позднее чем через десять минут; повторная загрузка того же пакета не создаёт второй товар; оплаченный заказ передаётся в 1С один раз; неизвестное значение свойства попадает в журнал и не останавливает остальные позиции.
Для приёмки нужен набор контрольных товаров и заказов: простой товар, вариантный товар, нулевой остаток, несколько цен, скидка, отмена, частичная отгрузка и возврат. Ожидаемый результат фиксируют до теста, а не объясняют после него.
Короткий каркас ТЗ
Практичное задание можно собрать из девяти разделов:
Цель интеграции и границы проекта.
Системы, версии и ответственные стороны.
Схема потоков данных.
Состав сущностей и полей.
Идентификаторы и правила сопоставления.
Расписание, объёмы и требования к скорости.
Конфликты, ошибки, журналирование и уведомления.
Безопасность и доступы.
Сценарии испытаний и критерии приёмки.
Такой документ не отменяет обследование, но переводит разговор из области «связать две системы» в набор проверяемых решений. Это помогает точнее оценить проект и, главное, не обнаруживать бизнес-правила уже после запуска.
The phrase "connect the website to 1C" sounds like a task, but it contains almost no data for estimation or development. In one project, the accounting system transmits only stock levels; in another, it sends the entire catalog, prices, and images, while orders are returned. Even the same word "price" can mean retail price, wholesale price, contract price, or a price calculated after authorization.
A good technical specification does not need to describe source code. It must eliminate ambiguity: which data participates in the exchange, where the source is located, how objects are matched, and what should happen in case of an error.
First, draw an exchange map
It is better to start not with a list of fields, but with a flow table. For each object, specify the source, recipient, direction, frequency, and the responsible data owner.
For example:
products and attributes: from 1C to the website;
prices: from 1C to the website, separately for each price type;
stock levels: from 1C to the website by warehouse;
images and SEO texts: from the website or PIM, not returned to 1C;
orders: from the website to 1C;
payment, assembly, and shipping status: from 1C to the website
delivery data: the source depends on the service used and the checkout scheme.
This map immediately detects conflicts. If a manager can change prices both in 1C and on the website, you must determine in advance whose change takes priority. Otherwise, the exchange will reliably overwrite the work of one of the employees.
Fix permanent identifiers
The name and article number are not always suitable for linking objects. Names are edited, article numbers sometimes repeat, and one product on the website can have multiple product variants by color and size.
The technical specification should specify:
which identifier links a product in 1C to a catalog item on the website;
how characteristics and product variants are linked;
what happens when an SKU is changed or a product is moved to another group;
whether a product can be created manually on the website and who assigns it an external identifier;
how the system handles an object without an identifier or with a duplicate value.
For exchange via CommerceML, external object identifiers are usually important, but the mere existence of the standard does not eliminate the need for design. Modified 1C configurations, several information blocks, or a supplier catalog can change the mapping scheme.
Describe the catalog at the level of real data
The phrase "export product cards" is too broad. List the fields and rules for each entity: name, article number, VAT rate, unit of measurement, brand, properties, weight, dimensions, barcodes, images, categories, prices, and stock.
Separately answer the following questions:
which properties create product variants;
whether new properties and values can be created automatically
how multiple images are transmitted and their order
what to do with a product deleted or marked for deletion in 1C
whether to display products with zero stock
whether to sum warehouse stock levels or show availability by region
how to round prices and which system calculates the discount
The more precise these rules are, the less manual cleanup is required after the initial full export.
Analyze the order lifecycle
An order is not a single document but a sequence of changes. The technical specification should describe the entire path: creation on the website, transfer to 1C, reservation, payment, picking, shipping, cancellation, and return.
For each stage, specify which data is transferred and who can modify it. Scenarios where an order is edited after synchronization are especially critical: the buyer changes the address, the manager replaces an item, payment arrives late, or the delivery service splits the shipment.
You must define status mapping in advance. The "completed" status on the website and the sales document in 1C may reflect different stages of the process. Simple matching by similar names often triggers false notifications for buyers.
Do not select a carrier before defining the task
CommerceML, REST API, message queues, and file exchange are methods of data delivery, not the project goal. The choice depends on catalog volume, acceptable latency, product versions, 1C configuration capabilities, and reliability requirements.
The technical specification should document constraints: how many products and variants are transferred, how frequently stock levels must update, whether full updates are allowed, if there are multiple websites or databases, which ports and addresses are available, and whether encryption and IP restrictions are required.
For frequent exchange of small changes, incremental transfer is essential. For large exports, split into parts and resume after a failure. If these requirements are not specified, a scheme working on a test catalog may not withstand production volume.
Describe errors as part of the product
Integration runs for a long time, so rare failures are inevitable. The question is not whether an error will occur, but whether it will be noticed and whether the exchange can continue without duplicates.
The technical specification must include answers to:
where the exchange log is stored
which errors are considered temporary and which require intervention
how many times the operation is repeated;
whether the package number and the last successfully processed object are preserved;
who receives the notification and with what delay;
whether the package can be safely repeated;
how to restore the exchange after a partially uploaded file.
The message "exchange completed" is insufficient. A useful log shows the time, direction, count of read, created, updated, and rejected objects, as well as a clear reason for rejection.
Immediately record acceptance criteria
The formulation "data synchronizes correctly" is untestable. Replace it with specific scenarios. For example: a stock change in 1C appears on the site no later than ten minutes later; re-uploading the same package does not create a second product; a paid order is transferred to 1C only once; an unknown property value goes into the log and does not stop other items.
Acceptance testing requires a set of control products and orders: a simple product, a variant product, zero stock, multiple prices, a discount, cancellation, partial shipment, and a return. The expected result is fixed before the test, not explained after it.
Short Requirements Framework
A practical assignment can be assembled from nine sections:
The goal of the integration and the project boundaries.
Systems, versions, and responsible parties.
Data flow diagram.
Composition of entities and fields.
Identifiers and matching rules.
Schedule, volumes, and speed requirements.
Conflicts, errors, logging, and notifications.
Security and access controls.
Test scenarios and acceptance criteria.
Such a document does not replace an audit, but shifts the discussion from the abstract concept of 'connecting two systems' to a set of verifiable solutions. This helps evaluate the project more accurately and, most importantly, prevents discovering business rules only after launch.





Discussion 0
Share your experience and ask questions. Comments without links appear after editorial review.
No comments yet. Start the discussion.