При работе с маркированной продукцией в программе «1С:Розница» версии 2.3 пользователи часто сталкиваются с неприятной ситуацией: при попытке открыть окно проверки поступившей табачной продукции система аварийно завершает процесс или выводит сообщения об ошибках соединения с сервером. Чаще всего на экранах появляются коды состояния HTTP: 500 (Internal Server Error), 502 (Bad Gateway) или 503 (Service Unavailable).
В этой статье мы подробно разберем, почему возникают эти ошибки, как они связаны с изменениями на серверах государственной информационной системы маркировки товаров (ГИС МТ «Честный Знак»), и какими способами можно оперативно решить проблему, чтобы не останавливать приемку и розничные продажи табака.
Для начала проанализируем, что именно происходит под капотом программы в момент проверки кодов. Ошибка HTTP 500 — это внутренняя ошибка сервера. Она означает, что запрос от «1С» дошел до веб-сервера «Честного Знака» (ЦРПТ), но сервер не смог его корректно обработать.
Главная причина кроется в переходе ГИС МТ на новую версию программного интерфейса (API). Оператор маркировки полностью отключил поддержку устаревших методов работы по протоколу версии V2. В старых релизах «1С:Розница» (в частности, в ветках 2.3.3 и 2.3.4) механизмы проверки агрегированных кодов табачной продукции жестко завязаны на отправку веб-запросов по старому адресу:
private-office-api/private/v2/cis/aggregated?cis=%1
Поскольку данный шлюз со стороны серверов маркировки теперь заблокирован или отсутствует, сервер «Честного Знака» моментально возвращает ошибку 500. Программа «1С» не получает ожидаемой структуры данных и прерывает операцию проверки.
Что касается ошибок 502 и 503, они обычно появляются при обработке объемных документов (накладных, содержащих более 20 позиций в блоках или коробах). Новый протокол True API V3 обрабатывает запросы на агрегацию кодов гораздо строже. Когда «1С» пытается одним тяжелым запросом проверить структуру сотен кодов (коробка -> блоки -> пачки), сервер ЦРПТ попросту не успевает сформировать ответ в рамках установленного лимита времени (таймаута) и сбрасывает соединение, возвращая ошибку шлюза.
---
Самый надежный и правильный способ устранить проблему раз и навсегда — это обновить вашу базу данных «1С:Розница» до актуального релиза. Разработчики фирмы «1С» оперативно реагируют на изменения законодательства и протоколов обмена.
Начиная с версии 2.3.5.24 (и выше), механизмы интеграции с ИС МП были полностью переписаны под использование актуального формата True API V3. В новой версии запросы отправляются по правильному адресу:
api/v3/true-api/cises/aggregated/list?codes=%1
После обновления конфигурации и платформы (рекомендуется использовать стабильные релизы платформы 8.3.16 или выше) функционал проверки кодов накладных начнет работать в штатном режиме без дополнительных доработок.
---
Если ваша база «1С:Розница» находится на поддержке с доработками (измененная конфигурация), и вы не можете оперативно обновить ее целиком, проблему можно решить локально. Для этого мы можем создать небольшое расширение конфигурации, не снимая основную программу с поддержки.
Давайте рассмотрим пример переопределения функции, отвечающей за формирование пути запроса к серверу маркировки. В общем модуле интеграции с ИС МП нам необходимо перехватить формирование URL-адреса и подставить туда актуальный путь для API V3.
Примерный шаблон кода в расширении может выглядеть следующим образом:
&Вместо("ПутьКСервисуПроверкиКодов")
Функция Расш1_ПутьКСервисуПроверкиКодов(Знач ИдентификаторЗапроса)
// Перенаправляем запросы со старого адреса V2 на новый True API V3
НовыйПуть = "api/v3/true-api/cises/aggregated/list?codes=" + ИдентификаторЗапроса;
Возврат НовыйПуть;
КонецФункции
Использование расширения позволит восстановить работоспособность обмена с ГИС МТ без глобального обновления всей конфигурации и сохранит все ваши персональные доработки. При необходимости можно использовать готовое расширение для запроса кодов маркировки из «Честного Знака» для «1С:Розница 2.3».
---
Если у вас нет штатного программиста, а обновить базу прямо сейчас невозможно, мы можем временно отключить интерактивную проверку кодов при приемке, чтобы не блокировать работу склада и кассиров. Вся фактическая проверка статусов марок в таком случае перейдет на фискальный накопитель ККТ непосредственно в момент продажи (в соответствии с требованиями ФФД 1.2).
Давайте разберем по шагам, как отключить контроль статусов в настройках программы:
Важное предупреждение: при таких настройках программа позволит вам принимать входящие накладные по ЭДО без предварительной сверки кодов внутри «1С». Вы будете принимать продукцию «на веру». Настоятельно рекомендуем визуально проверять целостность марок на коробках.
Кроме того, некоторые пользователи используют «костыль» в виде копирования накладной через клавишу F9. Помните, что копирование документа лишь визуально обходит ошибку в интерфейсе программы, но фактической проверки кодов в системе маркировки при этом не происходит.
---
Если вы обновили программу, но при проверке очень больших накладных от крупных дистрибьюторов (например, «Мегаполис») все равно продолжают проскакивать ошибки 502 и 503, дело в объеме единовременно передаваемых данных. Сервер ГИС МТ не справляется с обработкой сотен кодов в рамках одного сеанса связи.
В этой ситуации мы рекомендуем использовать следующие организационные решения:
Применяя данные инструкции, вы сможете оперативно восстановить процесс приемки табачной продукции и избежать штрафов за простой торговой точки.