Как исправить ошибку «должно быть указано количество 1, а подобрано — 0» при выводе из оборота меховых изделий в 1С?

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

При работе с маркированными товарами, особенно из категории натурального меха (КИЗ), пользователи часто сталкиваются с ситуацией, когда при оформлении документа «Вывод из оборота» программа выдает ошибку: «Для номенклатурной позиции ... в строке 1 должно быть указано количество 1, а подобрано — 0». При этом физически код маркировки отсканирован, и в форме подбора он отображается как успешно проверенный. Рассмотрим причины возникновения этой коллизии и разберем по шагам способы её устранения.

Почему возникает ошибка при наличии отсканированного кода?

Проблема кроется в механизме сопоставления данных. В момент проведения документа 1С выполняет сверку между табличной частью Товары и списком подобранных марок (упаковок). Если хотя бы один реквизит в записи о штрихкоде не совпадает с данными в строке товара, система считает, что марка относится к другой позиции, и «обнуляет» результат подбора для текущей строки. Основными виновниками обычно выступают Серии, Характеристики или скрытые реквизиты упаковки.

Способ 1. Проверка серий в справочнике «Штрихкоды упаковок товаров»

Наиболее распространенная причина для изделий из меха — использование серийного учета (для безболезненного перехода на учет без серий подойдёт обработка очистки серий в проведенных документах 1С). Даже если в самой номенклатуре серии не используются активно, при генерации или импорте КИЗ система могла зафиксировать серию в справочнике штрихкодов. Разберем, как это проверить (в том числе используя инструменты для переноса штрихкодов и упаковок из одной номенклатуры в другую):

  1. Откроем «Функции для специалиста» (через главное меню — Настройки).
  2. Найдем в списке справочник Штрихкоды упаковок товаров.
  3. В поле поиска введем номер проблемного КИЗ или отсканируем его.
  4. Откроем карточку штрихкода и проанализируем поле «Серия».

Если в справочнике серия указана (например, Серия: 000000001), а в документе «Вывод из оборота» в колонке «Серия» стоит пустое значение или выбрана другая серия, сопоставление не произойдет. Проанализируем ситуацию: для исправления нужно либо заполнить соответствующую серию в документе, либо очистить её в справочнике штрихкодов.

Способ 2. Заполнение скрытого реквизита «КоличествоУпаковок»

В некоторых релизах конфигураций «1С:Розница» и «1С:Бухгалтерия» встречается баг, при котором визуально колонка «Количество» заполнена, но скрытый программный реквизит КоличествоУпаковок остается равным нулю. Рассмотрим, как это влияет на проведение:

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


Для Каждого СтрокаТовара Из Объект.Товары Цикл
    Если СтрокаТовара.КоличествоУпаковок = 0 Тогда
        СтрокаТовара.КоличествоУпаковок = СтрокаТовара.Количество;
    КонецЕсли;
КонецЦикла;

После принудительного заполнения этого поля попробуйте провести документ повторно.

Способ 3. Проверка соответствия Характеристик и GTIN

Выясним причину возможного расхождения через характеристики. Меховые изделия часто имеют сложные характеристики (цвет, размер, тип меха). Если КИЗ был привязан к одной характеристике, а в документе выбрана другая (даже с идентичным названием, но другим внутренним идентификатором GUID), проверка выдаст ошибку.

Посмотрим на пример: в справочнике Штрихкоды упаковок товаров код привязан к характеристике «Черный, 44», а в документе выбрана характеристика «Черный, 44», созданная заново как дубль. Для системы это разные объекты. Рекомендуется удалять строку из документа и добавлять её не через подбор товара, а сразу сканированием КИЗ в табличную часть — тогда 1С сама подтянет нужную номенклатуру и характеристику, связанные с этим кодом.

Способ 4. Очистка кэша данных ГИС МТ

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

  1. Перейдем в регистр сведений Кэш данных из ГИС МТ.
  2. Найдем записи по проблемным кодам маркировки.
  3. Удалим эти записи.
  4. В документе вывода из оборота снова нажмем «Подобрать и проверить» и выполним запрос статуса. Кэш обновится актуальными данными.

Технический анализ для разработчика

Если вышеперечисленные методы не помогают, проанализируем ситуацию на уровне программного кода. Основная проверка в типовых решениях (УТ 11, Розница 2.3) происходит в общем модуле ИнтеграцияИСМПСлужебный.

Найдем функцию ТаблицаТоварыСоответствуетСпискуУпаковокМаркируемойПродукции (обычно район 17000-й строки). Поставим точку останова в месте сравнения структуры ПараметрыСличения. Как правило, там можно увидеть, какой именно параметр (Серия, Статус или Владелец) вызывает расхождение между строкой Товары и данными в СписокУпаковок.

Важный нюанс по релизам: В версиях 1С:Розница 2.3.13.30 — 2.3.16.27 наблюдались ошибки в алгоритмах обработки меховых изделий после их перехода в общую систему ИС МП с 01.09.2022. Убедитесь, что у вас установлены все актуальные патчи (исправления) через раздел Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи). Ищите патчи с префиксами EF_..., в описании которых фигурирует «Маркировка» или «ГИСМТ».

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

← На главную