Почему при продаже маркированных сигарет в 1С:Розница списывается лишнее количество товара и удваивается сумма?

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

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

Анализируем симптомы: расхождение между документом и регистром

Рассмотрим стандартную ситуацию, описанную пользователями: в рабочем месте кассира (РМК) сканируются две пачки сигарет с разными кодами DataMatrix. В самом чеке (документ ЧекККМ) визуально всё выглядит правильно — 2 штуки, верная цена. Однако после закрытия смены и формирования документа ОтчетОРозничныхПродажах начинаются странности. В табличной части отчета указано 2 штуки, но если мы сформируем отчет «Анализ движений номенклатуры» или посмотрим движения по регистру ТоварыНаСкладах, то увидим расход в 3 штуки.

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

Влияние Максимальной Розничной Цены (МРЦ) на расчет скидок

Особенность табачной продукции заключается в том, что цена заложена непосредственно в код маркировки. Проанализируем, как 1С обрабатывает эти данные. В релизах ветки 2.2.12 существовал баг: если цена номенклатуры в базе данных не совпадала с МРЦ, извлеченной из сканированного кода, программа пыталась автоматически скорректировать итоговую сумму.

В некоторых случаях это приводило к следующей логике:

  1. Программа добавляет вторую пачку.
  2. Механизм расчета путается в количестве строк из-за некорректного ключа связи.
  3. Система «считает», что сумма чека должна быть больше, но видит ограничение по МРЦ.
  4. Чтобы «подогнать» итог под фискальные требования, 1С автоматически применяет скидку, равную стоимости одной лишней пачки.

В итоге покупатель платит за 2 пачки, в чеке напечатано 2 пачки, а складской остаток уменьшается на 3. Это критическая ошибка, ведущая к пересортице и убыткам.

Решение 1: Обновление конфигурации и установка патчей

Первоочередное действие — это приведение программного комплекса в соответствие с актуальными исправлениями. Рассмотрим, что именно нужно сделать:

  1. Обновление конфигурации: Проблема была массово зафиксирована в релизе 2.2.12.30. Рекомендуется переход на актуальную версию линейки 2.3. Однако, если переход невозможен, необходимо убедиться, что установлены все критические патчи для текущей версии.
  2. Установка патчей (EF_001xxxx): Фирма 1С выпускала специфические исправления для работы с ИС МП (Честный знак). Найдем в разделе «Обслуживание» -> «Обновление программы» пункт «Установленные исправления» и проверим наличие патчей, связанных с проведением документов ЧекККМ и ОтчетОРозничныхПродажах.

Решение 2: Настройка торгового оборудования и сканера ШК

Часто причиной «двоения» позиций является некорректная передача данных от сканера. Проанализируем режим работы устройства. Если сканер настроен в режиме эмуляции клавиатуры (HID), он передает данные как последовательный набор нажатий клавиш. При высокой скорости передачи 1С может воспринять один скан как два последовательных события: сначала как поиск по штрихкоду EAN-13, а затем как ввод кода маркировки.

Для исправления этой ситуации выполним следующие шаги:

  1. Переведем сканер в режим Native POS (COM-эмуляция).
  2. В настройках «Подключаемое оборудование» в 1С выберем соответствующий драйвер (например, «1С:Сканеры штрихкода»).
  3. Настроим корректные префиксы и суффиксы (обычно суффикс — 13 или CR).

Это позволит программе четко разделять события сканирования и исключит программные «дребезги», которые приводят к появлению лишних строк в фоновых процессах обработки ТЧ.

Решение 3: Проверка программного кода (для разработчиков)

Если конфигурация доработана, стоит обратить внимание на то, как заполняется табличная часть при программном добавлении товаров. Рассмотрим пример того, как НЕЛЬЗЯ допускать дублирования ключей связи. Посмотрим на фрагмент кода, где может скрываться ошибка:


// Ошибка может быть здесь, если КлючСвязи генерируется некорректно
НоваяСтрока = Объект.Товары.Добавить();
НоваяСтрока.Номенклатура = ВыбранныйТовар;
НоваяСтрока.Количество = 1;
// Если забыть инкрементировать или уникализировать КлючСвязи:
НоваяСтрока.КлючСвязи = 1; 

Для корректной работы маркировки необходимо использовать типовые механизмы генерации связи. Разберем правильный подход: при добавлении каждой новой позиции маркированного товара необходимо обеспечивать уникальность поля КлючСвязи в рамках документа, чтобы процедура ДвиженияПоСкладам могла однозначно сопоставить строку товара с его маркой в ТЧ МаркировкаТоваров.

Рекомендации по исправлению последствий

Если вы уже столкнулись с «лишними» списаниями, выполните следующие действия для исправления учета:

  1. Откройте проблемный Отчет о розничных продажах.
  2. Проверьте количество в табличной части. Если оно верное, но движения двоятся — попробуйте перезаполнить документ или вручную пересчитать итоговые суммы (перевыбрать количество).
  3. Очистка кэша: Иногда старые алгоритмы расчета скидок «залипают» в локальном кэше пользователя. Очистите кэш на рабочем месте кассира.
  4. Обновление платформы: Старые версии платформы (ниже 8.3.15) имели ограничения при работе с длинными строками XML, которые используются при обмене с Честным знаком. Рекомендуется использовать платформу версии 8.3.18 и выше.

Таким образом, мы выяснили, что корень проблемы лежит в сложной связке механизмов маркировки, расчета МРЦ и работы торгового оборудования. Последовательное выполнение предложенных шагов позволит стабилизировать работу РМК и вернуть точность складскому учету.

← На главную