При маркировке остатков обувной продукции в программе «1С:Управление торговлей» (начиная с релиза 11.4.11.65 и смежных версий) пользователи часто сталкиваются с системной ошибкой при попытке заказать коды эмиссии в Станции управления заказами (СУЗ). В логах обмена ГИС МТ или на экране появляется сообщение следующего содержания:
«Начиная с 01.03.2020 для товарной группы "Обувные товары" при маркировке остатков поле remainsImport является обязательным для заполнения при заказе на эмиссию кодов». Код состояния HTTP: 400.
В этой статье мы подробно разберем причины возникновения данной ошибки, проанализируем изменения в интеграционном API «Честного Знака» (ЦРПТ) и рассмотрим пошаговые методы решения проблемы как для обычных пользователей, так и для разработчиков 1С.
---
Для того чтобы понять суть проблемы, проанализируем изменения, которые произошли на стороне ГИС МТ «Честный Знак». В ночь с 29 февраля на 1 марта 2020 года оператор ЦРПТ обновил рабочий стенд по обуви. Согласно новым требованиям API СУЗ, при выборе способа ввода в оборот REMAINS (Маркировка остатков) для товарной группы «Обувь» обязательными для передачи стали два новых флага (логического типа boolean):
remainsImport — признак того, что импортный товар был ввезен на территорию Российской Федерации после 01.03.2020 (дата начала действия запрета на оборот немаркированных товаров).remainsAvailable — признак того, что маркируемый товар был произведен или приобретен на территории РФ до 01.03.2020.Поскольку используемые на тот момент релизы конфигураций 1С (например, 1С:УТ 11.4.11.65, 1С:Розница 2.3.3.19) отправляли пакеты данных по старой структуре API, СУЗ возвращала ошибку 400 (Bad Request), так как обязательное поле remainsImport в структуре JSON-запроса попросту отсутствовало.
---
Фирма 1С оперативно отреагировала на изменения в СУЗ и выпустила временное корректирующее расширение remainsImport.cfe, которое автоматически добавляет необходимые параметры в тело запроса при обмене данными.
Рассмотрим по шагам процесс установки данного расширения в «1С:Управление торговлей 11»:
remainsImport.cfe.Важное примечание для пользователей программы «1С:Розница»: при установке расширения в конфигурацию «Розница» (например, релиз 2.3.3.19) может возникнуть конфликт языковых метаданных, из-за чего расширение откажется подключаться. Чтобы решить эту проблему, выполните следующие действия:
---
Если по каким-то причинам использование расширений в вашей базе ограничено или конфигурация находится на доработке и сильно кастомизирована, вы можете внести изменения в код вручную через Конфигуратор. Нам необходимо принудительно добавить обязательные параметры в исходящую структуру JSON.
Выясним точное местонахождение нужного фрагмента кода. Изменения необходимо вносить в механизм формирования запроса на эмиссию. Чаще всего этот код расположен в общем модуле интеграции с ИС МП или непосредственно внутри объекта документа ЗаказНаЭмиссиюКодовМаркировкиСУЗ.
Рассмотрим пример доработки кода в процедуре формирования JSON-запроса:
// Находим функцию создания структуры запроса, например, ЗаявкаНаЭмиссиюКодовМаркировкиJSON
// Позиционируемся после заполнения основных реквизитов шапки документа, например:
ТелоЗапроса.Вставить("productionOrderId", Шапка.ИдентификаторПроизводственногоЗаказа);
// Вставляем обязательные параметры для обхода ошибки remainsImport:
ТелоЗапроса.Вставить("remainsImport", Ложь); // Истина — если импортный товар ввезен после 01.03.2020
ТелоЗапроса.Вставить("remainsAvailable", Истина); // Истина — если товар произведен/приобретен в РФ до 01.03.2020
После внесения данных изменений выполните обновление конфигурации базы данных. Теперь при отправке запроса СУЗ будет видеть заполненные реквизиты и успешно генерировать коды маркировки.
---
Установка расширений и ручные правки программного кода — это временные меры (костыли), призванные оперативно восстановить работоспособность складских и торговых процессов. Единственным полностью корректным долгосрочным решением является обновление вашей базы данных 1С до штатного релиза, в котором эта ошибка исправлена на уровне вендора.
Фирма 1С выпустила официальные патчи и обновления для конфигураций, начиная с марта 2020 года:
В обновленных релизах логика заполнения данных параметров вынесена на форму документа заказа кодов маркировки, где пользователь может самостоятельно управлять флагами происхождения остатков с помощью интерактивных галочек.
---
Даже после успешного внедрения расширения или исправления кода вы можете столкнуться с ситуацией, когда коды маркировки успешно заказываются из 1С, но не выводятся на печать или система выдает ошибку недостаточного баланса. Разберем этот нюанс подробнее.
С 1 марта 2020 года эмиссия кодов маркировки на остатки обуви стала платной на основании Постановления Правительства РФ № 577. Стоимость одного кода составляет 50 копеек без учета НДС (60 копеек с НДС).
Проанализируем основные проблемы, возникающие из-за этого требования: