Почему в 1С:Розница неправильно заполняется количество при создании поступления на основании ТТН ЕГАИС?

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

При создании документа Поступление товаров на основании входящей ТТН ЕГАИС (Товарно-транспортной накладной) пользователи конфигурации 1С:Розница иногда сталкиваются с ошибкой: в табличной части накладной колонка Количество заполняется некорректными дробными значениями либо многократно завышенными числами. При этом в самом документе ЕГАИС количество указано верно (например, целое число штук или кег).

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

Анализ механизма проблемы и логики пересчета

Проанализируем ситуацию, которая возникает при обработке алкогольной продукции. В системе ЕГАИС учет разливных напитков (пиво, сидр, медовуха) часто ведется в декалитрах (1 дал = 10 литров) либо в штуках емкостей с указанием их физического объема. В типовых механизмах конфигурации 1С:Розница алгоритм сопоставления номенклатуры пытается автоматически перевести пришедший объем в единицы учета базы данных.

Выясним причину искажения данных. В модулях обработки накладных ЕГАИС для номенклатуры, у которой в карточке Вид номенклатуры установлен признак «Продается в розлив», срабатывает внутренняя формула пересчета:

КоличествоПоступления = КолВоШтИзТТН * 10 / ЕмкостьТары

Рассмотрим пример, когда на склад поступает фасованная продукция (или кеги небольшого объема), по ошибке отнесенная к разливной номенклатуре:

  1. По ТТН поступило 30 штук товара объемом 0.25 л.
  2. Алгоритм пересчитывает количество: 30 * 10 / 0.25 = 1200.
  3. В документ Поступление товаров в колонку Количество записывается значение 1200 вместо 30.

Аналогично, при несовпадении базовых единиц измерения (штуки вместо литров) при делении на емкость тары в документе появляются бесконечные периодические дроби с сотыми и тысячными долями.

Шаг 1. Проверка и корректировка настроек видов номенклатуры

Разберем по шагам, как исправить классификацию товаров в информационной базе без доработки программного кода:

  1. Перейдем в раздел НСИ → Виды номенклатуры.
  2. Найдем вид номенклатуры, назначенный для проблемного товара, и откроем его форму.
  3. Проверим признак «Продается в розлив»:

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

  4. Если товар действительно является разливным, проверим базовую единицу измерения:

    Для разливного алкоголя базовой единицей измерения в карточке номенклатуры должны быть Литры (л), а не штуки.

Шаг 2. Настройка упаковок для кеговой продукции

Посмотрим на правила ведения учета тарного разливного алкоголя. Чтобы программа корректно принимала кеги из ЕГАИС и пересчитывала их в литры, настроим механизм упаковок:

  1. В карточке номенклатуры включим использование упаковок (индивидуальный набор или общий для вида номенклатуры).
  2. Создадим упаковки для каждого типа кег (например, «Кег 20 л», «Кег 30 л», «Кег 50 л»).
  3. Для каждой упаковки укажем коэффициент пересчета относительно базовой единицы (для кега 30 л коэффициент равен 30).
  4. В форме сопоставления алкогольной продукции классификатора ЕГАИС с номенклатурой 1С обязательно укажем соответствующую упаковку.

При таких настройках при создании документа на основании ТТН реквизит КоличествоУпаковок заполнится реальным числом кег, а в реквизит Количество будет записан правильный объем в литрах.

Шаг 3. Программная корректировка в общем модуле (для программистов)

Если ошибка вызвана сбоем релиза конфигурации, рассмотрим программное исправление через расширение конфигурации или изменение типового кода.

Найдем функцию заполнения табличной части документа ПоступлениеТоваров на основании ТТНВходящаяЕГАИС в общем модуле интеграции с ЕГАИС (например, ИнтеграцияЕГАИС или ФормированиеДокументовЕГАИС). Проанализируем фрагмент кода, выполняющий расчет количества:


// Пример корректировки расчета количества при заполнении накладной
Если СтрокаТТН.Номенклатура.ВидНоменклатуры.ПродаетсяВРозлив Тогда
    Если ЗначениеЗаполнено(СтрокаТТН.Упаковка) И СтрокаТТН.Упаковка.Коэффициент <> 0 Тогда
        СтрокаПоступления.КоличествоУпаковок = СтрокаТТН.Количество;
        СтрокаПоступления.Количество = СтрокаТТН.Количество * СтрокаТТН.Упаковка.Коэффициент;
    ИначеЕсли СтрокаТТН.ЕмкостьТары <> 0 Тогда
        // Исключаем ошибочный пересчет с умножением на 10 для штучных позиций
        СтрокаПоступления.Количество = СтрокаТТН.Количество * СтрокаТТН.ЕмкостьТары;
        СтрокаПоступления.КоличествоУпаковок = СтрокаТТН.Количество;
    Иначе
        СтрокаПоступления.Количество = СтрокаТТН.Количество;
        СтрокаПоступления.КоличествоУпаковок = СтрокаТТН.Количество;
    КонецЕсли;
Иначе
    СтрокаПоступления.Количество = СтрокаТТН.Количество;
    СтрокаПоступления.КоличествоУпаковок = СтрокаТТН.Количество;
КонецЕсли;

Внедрив эту проверку, мы предотвратим деление на объем тары и некорректное умножение на декалитры, когда товар приходит сопоставленным со штучной единицей.

Резюме

Для устранения проблемы с дробным количеством при создании поступлений из ТТН ЕГАИС необходимо:

  1. Снять признак «Продается в розлив» у всей штучной и фасованной продукции.
  2. Для разливного алкоголя перевести базовую единицу учета в литры и настроить упаковки с коэффициентами емкости кег.
  3. Обновить конфигурацию до актуального релиза ветки 2.3 или применить исправление в модуле формирования документов.
← На главную