Как исправить ошибку «поле remainsImport является обязательным для заполнения» при маркировке остатков обуви в 1С:УТ 11

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При маркировке остатков обувной продукции в программе «1С:Управление торговлей» (начиная с релиза 11.4.11.65 и смежных версий) пользователи часто сталкиваются с системной ошибкой при попытке заказать коды эмиссии в Станции управления заказами (СУЗ). В логах обмена ГИС МТ или на экране появляется сообщение следующего содержания:

«Начиная с 01.03.2020 для товарной группы "Обувные товары" при маркировке остатков поле remainsImport является обязательным для заполнения при заказе на эмиссию кодов». Код состояния HTTP: 400.

В этой статье мы подробно разберем причины возникновения данной ошибки, проанализируем изменения в интеграционном API «Честного Знака» (ЦРПТ) и рассмотрим пошаговые методы решения проблемы как для обычных пользователей, так и для разработчиков 1С.

---

Выясняем причину возникновения ошибки

Для того чтобы понять суть проблемы, проанализируем изменения, которые произошли на стороне ГИС МТ «Честный Знак». В ночь с 29 февраля на 1 марта 2020 года оператор ЦРПТ обновил рабочий стенд по обуви. Согласно новым требованиям API СУЗ, при выборе способа ввода в оборот REMAINS (Маркировка остатков) для товарной группы «Обувь» обязательными для передачи стали два новых флага (логического типа boolean):

  1. remainsImport — признак того, что импортный товар был ввезен на территорию Российской Федерации после 01.03.2020 (дата начала действия запрета на оборот немаркированных товаров).
  2. remainsAvailable — признак того, что маркируемый товар был произведен или приобретен на территории РФ до 01.03.2020.

Поскольку используемые на тот момент релизы конфигураций 1С (например, 1С:УТ 11.4.11.65, 1С:Розница 2.3.3.19) отправляли пакеты данных по старой структуре API, СУЗ возвращала ошибку 400 (Bad Request), так как обязательное поле remainsImport в структуре JSON-запроса попросту отсутствовало.

---

Способ 1. Установка официального корректирующего расширения

Фирма 1С оперативно отреагировала на изменения в СУЗ и выпустила временное корректирующее расширение remainsImport.cfe, которое автоматически добавляет необходимые параметры в тело запроса при обмене данными.

Рассмотрим по шагам процесс установки данного расширения в «1С:Управление торговлей 11»:

  1. Запустите информационную базу в режиме «1С:Предприятие» под учетной записью с правами администратора.
  2. Перейдите в раздел меню НСИ и администрирование, далее выберите пункт Печатные формы, отчеты и обработки.
  3. В открывшемся окне найдите ссылку Расширения и кликните по ней.
  4. В панели инструментов списка нажмите кнопку Добавить из файла.... Программа может вывести предупреждение системы безопасности — согласитесь с ним и продолжите работу.
  5. В диалоговом окне выбора файла укажите путь к предварительно скачанному файлу расширения remainsImport.cfe.
  6. После загрузки расширения в список обязательно снимите флаг Безопасный режим в строке с добавленным расширением. Если этого не сделать, расширение не сможет получить доступ к серверным процедурам интеграции.
  7. Перезапустите сеанс работы с программой 1С.

Важное примечание для пользователей программы «1С:Розница»: при установке расширения в конфигурацию «Розница» (например, релиз 2.3.3.19) может возникнуть конфликт языковых метаданных, из-за чего расширение откажется подключаться. Чтобы решить эту проблему, выполните следующие действия:

  1. Откройте информационную базу в режиме Конфигуратор.
  2. Перейдите в меню Конфигурация -> Расширения конфигурации.
  3. Откройте свойства загруженного расширения, найдите раздел Языки, найдите там конфликтующий язык (обычно Русский) и удалите его из расширения (основная конфигурация при этом не пострадает).
  4. Сохраните изменения и запустите базу в режиме предприятия.

---

Способ 2. Ручная модификация программного кода (для разработчиков)

Если по каким-то причинам использование расширений в вашей базе ограничено или конфигурация находится на доработке и сильно кастомизирована, вы можете внести изменения в код вручную через Конфигуратор. Нам необходимо принудительно добавить обязательные параметры в исходящую структуру JSON.

Выясним точное местонахождение нужного фрагмента кода. Изменения необходимо вносить в механизм формирования запроса на эмиссию. Чаще всего этот код расположен в общем модуле интеграции с ИС МП или непосредственно внутри объекта документа ЗаказНаЭмиссиюКодовМаркировкиСУЗ.

Рассмотрим пример доработки кода в процедуре формирования JSON-запроса:


// Находим функцию создания структуры запроса, например, ЗаявкаНаЭмиссиюКодовМаркировкиJSON
// Позиционируемся после заполнения основных реквизитов шапки документа, например:
ТелоЗапроса.Вставить("productionOrderId", Шапка.ИдентификаторПроизводственногоЗаказа);

// Вставляем обязательные параметры для обхода ошибки remainsImport:
ТелоЗапроса.Вставить("remainsImport", Ложь); // Истина — если импортный товар ввезен после 01.03.2020
ТелоЗапроса.Вставить("remainsAvailable", Истина); // Истина — если товар произведен/приобретен в РФ до 01.03.2020

После внесения данных изменений выполните обновление конфигурации базы данных. Теперь при отправке запроса СУЗ будет видеть заполненные реквизиты и успешно генерировать коды маркировки.

---

Способ 3. Обновление конфигурации до актуального релиза

Установка расширений и ручные правки программного кода — это временные меры (костыли), призванные оперативно восстановить работоспособность складских и торговых процессов. Единственным полностью корректным долгосрочным решением является обновление вашей базы данных 1С до штатного релиза, в котором эта ошибка исправлена на уровне вендора.

Фирма 1С выпустила официальные патчи и обновления для конфигураций, начиная с марта 2020 года:

В обновленных релизах логика заполнения данных параметров вынесена на форму документа заказа кодов маркировки, где пользователь может самостоятельно управлять флагами происхождения остатков с помощью интерактивных галочек.

---

Связанные проблемы: оплата кодов и баланс в Личном Кабинете

Даже после успешного внедрения расширения или исправления кода вы можете столкнуться с ситуацией, когда коды маркировки успешно заказываются из 1С, но не выводятся на печать или система выдает ошибку недостаточного баланса. Разберем этот нюанс подробнее.

С 1 марта 2020 года эмиссия кодов маркировки на остатки обуви стала платной на основании Постановления Правительства РФ № 577. Стоимость одного кода составляет 50 копеек без учета НДС (60 копеек с НДС).

Проанализируем основные проблемы, возникающие из-за этого требования:

  1. Задержка обновления баланса в 1С. При отправке первого запроса 1С может успешно заказать и даже эмитировать коды (так как сам заказ в СУЗ может проходить предварительную обработку), но при попытке получить и распечатать готовые файлы PDF или CSV программа выдает ошибку о нулевом или недостаточном балансе. Списание средств происходит именно в момент забора готовых кодов из СУЗ.
  2. Отсутствие лицевого счета в Личном Кабинете ГИС МТ. Из-за технических сбоев на стороне самого «Честного Знака» в начале марта 2020 года у многих участников оборота в профиле не отображался виртуальный лицевой счет для товарной группы «Обувь» (рядом с номером счета должна отображаться иконка обуви). В этом случае кнопка «Пополнить баланс» или «Выставить счет» в ЛК была неактивна. При возникновении подобного сбоя необходимо обратиться в техническую поддержку ЦРПТ, предоставив HAR-лог вашей веб-сессии в браузере для оперативного ручного исправления профиля специалистами ГИС МТ.
← На главную