При создании документа Поступление товаров на основании входящей ТТН ЕГАИС (Товарно-транспортной накладной) пользователи конфигурации 1С:Розница иногда сталкиваются с ошибкой: в табличной части накладной колонка Количество заполняется некорректными дробными значениями либо многократно завышенными числами. При этом в самом документе ЕГАИС количество указано верно (например, целое число штук или кег).
Разберем детально, почему возникает такая ошибка, по какой формуле система рассчитывает значения и как правильно настроить учет номенклатуры или скорректировать программный код для устранения проблемы.
Проанализируем ситуацию, которая возникает при обработке алкогольной продукции. В системе ЕГАИС учет разливных напитков (пиво, сидр, медовуха) часто ведется в декалитрах (1 дал = 10 литров) либо в штуках емкостей с указанием их физического объема. В типовых механизмах конфигурации 1С:Розница алгоритм сопоставления номенклатуры пытается автоматически перевести пришедший объем в единицы учета базы данных.
Выясним причину искажения данных. В модулях обработки накладных ЕГАИС для номенклатуры, у которой в карточке Вид номенклатуры установлен признак «Продается в розлив», срабатывает внутренняя формула пересчета:
КоличествоПоступления = КолВоШтИзТТН * 10 / ЕмкостьТары
Рассмотрим пример, когда на склад поступает фасованная продукция (или кеги небольшого объема), по ошибке отнесенная к разливной номенклатуре:
30 * 10 / 0.25 = 1200.Количество записывается значение 1200 вместо 30.Аналогично, при несовпадении базовых единиц измерения (штуки вместо литров) при делении на емкость тары в документе появляются бесконечные периодические дроби с сотыми и тысячными долями.
Разберем по шагам, как исправить классификацию товаров в информационной базе без доработки программного кода:
Если товар является штучным (бутылочное или баночное пиво, крепкий алкоголь), флаг «Продается в розлив» должен быть обязательно снят. Данный параметр предназначен исключительно для кегового пива и напитков, списываемых при продаже порционно (в миллилитрах или литрах).
Для разливного алкоголя базовой единицей измерения в карточке номенклатуры должны быть Литры (л), а не штуки.
Посмотрим на правила ведения учета тарного разливного алкоголя. Чтобы программа корректно принимала кеги из ЕГАИС и пересчитывала их в литры, настроим механизм упаковок:
30).При таких настройках при создании документа на основании ТТН реквизит КоличествоУпаковок заполнится реальным числом кег, а в реквизит Количество будет записан правильный объем в литрах.
Если ошибка вызвана сбоем релиза конфигурации, рассмотрим программное исправление через расширение конфигурации или изменение типового кода.
Найдем функцию заполнения табличной части документа ПоступлениеТоваров на основании ТТНВходящаяЕГАИС в общем модуле интеграции с ЕГАИС (например, ИнтеграцияЕГАИС или ФормированиеДокументовЕГАИС). Проанализируем фрагмент кода, выполняющий расчет количества:
// Пример корректировки расчета количества при заполнении накладной
Если СтрокаТТН.Номенклатура.ВидНоменклатуры.ПродаетсяВРозлив Тогда
Если ЗначениеЗаполнено(СтрокаТТН.Упаковка) И СтрокаТТН.Упаковка.Коэффициент <> 0 Тогда
СтрокаПоступления.КоличествоУпаковок = СтрокаТТН.Количество;
СтрокаПоступления.Количество = СтрокаТТН.Количество * СтрокаТТН.Упаковка.Коэффициент;
ИначеЕсли СтрокаТТН.ЕмкостьТары <> 0 Тогда
// Исключаем ошибочный пересчет с умножением на 10 для штучных позиций
СтрокаПоступления.Количество = СтрокаТТН.Количество * СтрокаТТН.ЕмкостьТары;
СтрокаПоступления.КоличествоУпаковок = СтрокаТТН.Количество;
Иначе
СтрокаПоступления.Количество = СтрокаТТН.Количество;
СтрокаПоступления.КоличествоУпаковок = СтрокаТТН.Количество;
КонецЕсли;
Иначе
СтрокаПоступления.Количество = СтрокаТТН.Количество;
СтрокаПоступления.КоличествоУпаковок = СтрокаТТН.Количество;
КонецЕсли;
Внедрив эту проверку, мы предотвратим деление на объем тары и некорректное умножение на декалитры, когда товар приходит сопоставленным со штучной единицей.
Для устранения проблемы с дробным количеством при создании поступлений из ТТН ЕГАИС необходимо: