Товарная прослеживаемость в Беларуси — уже не будущее, а рабочая реальность. С каждым кварталом перечень товаров расширяется, а штрафы за нарушения растут. Мы интегрировали 1С с порталом СТТ для ресторанного холдинга с 15 точками и 8 складами. Рассказываем, что пошло не по плану и как это решили.
Что такое СТТ и зачем 1С нужна интеграция
Система товарной прослеживаемости (СТТ) — государственный портал, через который участники рынка обмениваются электронными товарно-транспортными накладными. Формат обмена — XML-документы DESADV (отгрузка) и RECADV (подтверждение приёмки).
Каждый документ подписывается электронной подписью. Без неё портал его не примет. И вот тут начинается интересное: 1С из коробки не умеет подписывать документы для СТТ. Нужна интеграция с криптопровайдером.
У заказчика ситуация типичная: 15 точек, 8 складов, 4 юридических лица. Каждый день — десятки накладных. Вручную загружать XML на портал и подписывать — это потерянный рабочий день кладовщика. Задача — автоматизировать полностью: от формирования документа в 1С до подписания и отправки на портал.
Архитектура решения: 1С, CryptoProxy, портал
Прямое взаимодействие 1С с порталом СТТ технически возможно, но на практике упирается в криптографию. Платформа 1С не поддерживает алгоритмы подписи, которые требует белорусский портал. Нужен посредник.
Мы выбрали SC-CryptoProxy — REST-сервис, который запускается как служба Windows и принимает HTTP-запросы на порту 9998. Эндпоинт один: /SCCrypto/ra/signa. Отправляешь XML — получаешь подписанный XML. Всё.
Итоговая архитектура трёхзвенная:
- 1С — формирует XML-документы DESADV/RECADV, хранит настройки, отслеживает статусы
- CryptoProxy — подписывает документы электронной подписью через REST API
- Портал СТТ — принимает подписанные документы, возвращает статусы обработки
Важный момент: CryptoProxy работает локально, на том же сервере, где 1С. Никаких облачных криптосервисов — данные не покидают периметр компании.
Настройки: кто, откуда и с каким ключом
Главная сложность — не криптография, а маппинг. У каждого пользователя на портале СТТ свой UserID. У каждого склада — свой код. У каждой организации — свои реквизиты подписи. И всё это нужно связать в 1С.
Мы создали регистр сведений НастройкиЭДО для глобальных параметров: адрес CryptoProxy, таймаут, сертификат по умолчанию. А в справочник Пользователи добавили табличную часть ЭДОНастройки с полями:
UserID— идентификатор пользователя на портале СТТОрганизация— ссылка на справочник организацийСклад— ссылка на справочник складовСертификат— какой ключ использовать для подписи
Для управления доступом добавили реквизит ДоступКСТТ. Не каждый пользователь 1С должен работать с порталом. Кладовщик на складе — да. Бухгалтер в центральном офисе — нет. Разграничение простое, но без него кнопки отправки в СТТ мешают тем, кому они не нужны.
Отдельная история — массовое заполнение. Когда у тебя 40 пользователей и 8 складов, заполнять настройки по одному — мучение. Мы добавили кнопку «Заполнить по шаблону»: выбираешь организацию, склад, шаблон UserID — и настройки копируются всем пользователям с нужной ролью. Десять минут вместо двух часов.
Формирование документов: DESADV и RECADV
DESADV — электронная накладная на отгрузку. Формируется на основании документа реализации в 1С. В XML уходят: номенклатура, количество, цены, коды ТНВЭД, данные отправителя и получателя, и главное — UserID того, кто отправляет.
Первый подводный камень ждал именно здесь. UserID в XML должен соответствовать пользователю на портале СТТ. А у заказчика часть товаров проходит через транзитный склад: физически принимает один человек, а в 1С документ проводит другой. Пришлось добавить логику: если склад-получатель транзитный, UserID берётся не от текущего пользователя, а из настроек склада.
RECADV — подтверждение приёмки. Формируется в ответ на входящий DESADV. Тут проще: принял товар — 1С автоматически генерирует RECADV с привязкой к исходному документу по номеру и дате.
Оба типа документов хранятся в справочнике ЭДОДокумент с реквизитами: тип (DESADV/RECADV), статус, дата отправки, дата подписания, XML-содержимое, ссылка на документ-основание. Отдельный справочник ЭДОПозицияСПТ хранит связку номенклатуры с кодами прослеживаемости — при формировании DESADV коды подставляются автоматически, списание идёт по FIFO.
Подписание и отправка: два подводных камня
Процесс подписания сводится к одному HTTP-запросу:
POST http://localhost:9998/SCCrypto/ra/signa
Content-Type: application/xml
<XML-документ DESADV>
В ответ — подписанный XML с вложенной электронной подписью. Его уже можно отправлять на портал СТТ.
Второй подводный камень: таймауты. CryptoProxy при первом запросе после перезагрузки сервера инициализирует криптопровайдер. Это занимает 5-15 секунд. Стандартный таймаут HTTP-запроса в 1С — 5 секунд. Первая отправка после рестарта всегда падала.
Решение: увеличили таймаут до 30 секунд и добавили «прогревающий» запрос при старте регламентного задания. Пустой ping на эндпоинт статуса — CryptoProxy инициализируется, и дальше всё работает штатно.
Третий камень — асинхронная валидация на стороне портала. Документ может получить статус «Доставлен», а через час измениться на «Отклонён». Причина — портал валидирует XML не при приёме, а в очереди. Мы добавили повторную проверку статусов для документов со статусом «Доставлен» старше двух часов.
Отслеживание статусов и уведомления
Каждый документ ЭДО проходит через цепочку статусов: Черновик — Подписан — Отправлен — Доставлен — Принят (или Отклонён). В форме списка — цветовое кодирование: серый, жёлтый, синий, зелёный, красный. Кладовщик открывает список и сразу видит, какие документы требуют внимания.
Регламентное задание раз в 10 минут опрашивает портал на предмет обновления статусов. Если документ отклонён — пользователю приходит уведомление в центр оповещений 1С с причиной отклонения. Не нужно мониторить вручную — система сама сообщит о проблеме.
Для руководителя — отчёт по СКД: количество документов по статусам, среднее время обработки, процент отклонений за период. Раз в месяц приходит сводка — можно оценить, насколько стабильно работает обмен.
Результат и цифры
После внедрения интеграции:
- Формирование и отправка накладной — 15-20 секунд вместо 10-15 минут вручную
- Ошибки при заполнении реквизитов — 0 случаев (раньше 3-5 отклонений в неделю из-за опечаток в UserID и кодах ТНВЭД)
- Время кладовщика на работу с порталом — сократилось с 2 часов в день до 15 минут на проверку статусов
- За 6 месяцев работы — более 4 000 документов ЭДО без единого сбоя на стороне интеграции
Три раза за это время портал СТТ менял формат XML. Каждый раз обновляли шаблоны за 1-2 дня — заказчик простоя не почувствовал.
Если ваша компания работает с прослеживаемыми товарами и до сих пор обменивается документами вручную — стоит задуматься об автоматизации. Это не вопрос удобства, а вопрос масштаба: когда документов больше десяти в день, ручной режим создаёт риски ошибок и отнимает время, которое можно потратить на основную работу.


