Как исправить ошибку «Товар ранее продан» при возврате маркированной продукции в 1С:УТ 11?

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

Часто в работе с маркированными товарами в 1С:Управление торговлей 11 возникают ситуации, когда товар фактически возвращен покупателем, в системе «Честный ЗНАК» статус товара числится как «в обороте», однако сама база 1С упорно отказывается проводить повторную продажу, выдавая ошибку о том, что товар уже продан. Давайте разберем, почему это происходит и как устранить данную проблему.

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

Основная причина такого поведения системы кроется в рассинхронизации данных. Когда мы оформляем Чек ККМ на возврат, информация о коде маркировки должна корректно отразиться в системе. Если по техническим причинам (сбой при сканировании, ошибка закрытия кассовой смены или программный сбой) марка не попала в табличную часть Акцизные марки документа Отчет о розничных продажах, программа продолжает считать её выбывшей.

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

Способ №1: Проверка документа «Возврат в оборот ИС МП»

Первым делом проанализируем штатные механизмы. Если статус товара в 1С не обновился, прежде всего, воспользуемся документом Возврат в оборот ИС МП. Этот документ предназначен для корректировки статусов в информационной системе маркировки.

  1. Откройте рабочее место Обмен с ИС МП.
  2. Создайте документ Возврат в оборот ИС МП с видом операции Возврат при розничной продаже.
  3. Убедитесь, что в табличную часть документа подтянуты нужные коды маркировки.
  4. Проведите документ и выполните обмен с системой для отправки сведений в Честный ЗНАК.

Способ №2: Исправление табличной части «Отчета о розничных продажах»

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

Разберем алгоритм, который позволяет удалить «зависшую» марку из документа, чтобы освободить её для дальнейших операций:


// Получаем ссылку на проблемный отчет о розничных продажах
ОбДок = ОтчетОРозничныхПродажах.ПолучитьОбъект();

// Настраиваем отбор для поиска конкретной марки
Отбор = Новый Структура();
Отбор.Вставить("АкцизнаяМарка", АкцизнаяМарка);

// Ищем строку с маркой в табличной части
Строки = ОбДок.АкцизныеМарки.НайтиСтроки(Отбор);

// Если марка найдена в таблице, удаляем её, чтобы разблокировать статус
Если Строки.Количество() > 0 Тогда
    ОбДок.АкцизныеМарки.Удалить(Строки[0]);
КонецЕсли;

// Записываем изменения в базу
ОбДок.Записать();

После выполнения данного кода статус марки будет скорректирован. Важно помнить: ручное редактирование документов — это крайняя мера. Мы всегда рекомендуем сначала проверять, не заполнена ли некорректно табличная часть Акцизные марки в документе Чек ККМ Возврат, так как именно оттуда данные должны переноситься в отчет при закрытии смены.

Рекомендации по предотвращению проблемы

Чтобы избежать подобных ситуаций в будущем, проанализируем следующие моменты:

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

← На главную