С переходом на формат фискальных данных ФФД 1.2 обязательным требованием стала проверка кодов маркировки в режиме реального времени через ТС ПИОТ (Транспортную систему приема и обработки товаров). Для пользователей «старых» конфигураций, таких как 1С:Управление производственным предприятием (УПП), этот процесс часто вызывает сложности, так как интерфейс настройки маркировки в обычных формах существенно отличается от современных решений на управляемых формах. В данной статье мы подробно разберем, как связать вашу систему с ТС ПИОТ, используя как стандартные механизмы, так и альтернативные методы интеграции.
Для начала проанализируем состояние вашей конфигурации. Поддержка ТС ПИОТ была добавлена в 1С:УПП в рамках обновлений для работы с ИС МП (Информационной системой маркировки товаров). Если вы не видите соответствующих настроек, первым делом необходимо проверить версию конфигурации и, при необходимости, обновить ее до актуального релиза.
Разберем, где именно в системе хранятся настройки подключения. В актуальных релизах УПП за это отвечают специфические объекты метаданных. Нам необходимо проверить наличие и заполнение следующих объектов:
Проанализируем процесс настройки внутри конфигурации. Перейдем в настройки интеграции с ИС МП. Если в интерфейсе упоминание ТС ПИОТ отсутствует, попробуйте найти эти объекты через «Все функции» (или «Операции» в обычном интерфейсе). Основные параметры, которые нам потребуются:
https://prod01.prod.crpt.ru.Если штатные механизмы УПП работают нестабильно или конфигурация сильно доработана и обновление затруднено, рассмотрим альтернативный и очень популярный в среде разработчиков путь — использование KkmServer. Это специализированное ПО выступает посредником между 1С и кассовым аппаратом, беря на себя всю сложную логику общения с серверами ЦРПТ.
Разберем преимущества этого подхода. Вместо того чтобы настраивать сложные цепочки вызовов внутри 1С, мы можем отправлять на локальный HTTP-сервер простые JSON-пакеты. Рассмотрим пример того, как организовать взаимодействие. Для этого в 1С используется объект HTTPСоединение.
Посмотрим на логику формирования запроса. Программисту 1С необходимо сформировать структуру данных, содержащую команду для ККТ и код маркировки. Пример кода для отправки запроса на печать чека с проверкой кода может выглядеть следующим образом:
// Пример формирования JSON для отправки на KkmServer
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Command", "RegisterCheck");
СтруктураДанных.Вставить("NumDevice", 0);
СтруктураДанных.Вставить("InnCustomer", "1234567890");
// Добавление позиции с маркировкой
Товар = Новый Структура;
Товар.Вставить("Name", "Наименование товара");
Товар.Вставить("Quantity", 1);
Товар.Вставить("Price", 100);
Товар.Вставить("MarkingCode", "010460...[код маркировки]"); // Передача кода в ПИОТ
// Отправка JSON через HTTP
HTTPЗапрос = Новый HTTPЗапрос("/Execute", СтруктураЗаголовков);
HTTPЗапрос.УстановитьТелоИзСтроки(ДанныеJSON);
Ответ = Соединение.ОтправитьДляОбъекта(HTTPЗапрос);
В этой схеме KkmServer самостоятельно связывается с ТС ПИОТ, проверяет статус кода (не выбыл ли он, принадлежит ли данной организации) и передает фискальному регистратору команду на пробитие чека с признаком «М+» (проверка пройдена) или «М-» (ошибка проверки).
Независимо от выбранного способа, существует ряд критических условий, без выполнения которых ТС ПИОТ не заработает. Разберем их по порядку:
ATOLGTK_5.epf), которые содержат логику взаимодействия с драйвером.Проанализируем ситуацию, если справочники в 1С есть, но связь не устанавливается. Часто причина кроется в таймаутах. Если ваша сеть имеет ограничения или используется прокси-сервер, запросы к ПИОТ могут не укладываться в отведенное время. В настройках 1С необходимо четко прописать параметры прокси, если они используются в вашей корпоративной сети.
Подводя итог, можно сказать, что для связки 1С:УПП и ТС ПИОТ наиболее надежным является либо полное обновление системы до последних патчей от «1С», либо переход на использование промежуточного слоя в виде KkmServer, что особенно актуально для сильно кастомизированных баз, где типовое обновление невозможно. Рассмотрим этот путь как наиболее гибкий для разработчика, позволяющий полностью контролировать процесс обмена данными через JSON.