При работе в 1С:Управление торговлей (редакции 11.4 и 11.5) пользователи часто сталкиваются с системным сообщением: «Обнаружено нулевое количество при пересчете в единицу хранения в строке списка "Товары"». Эта ошибка обычно возникает при попытке провести документы «Возврат товаров от клиента», «Реализация товаров и услуг» или при вводе остатков. Система блокирует проведение, так как после математических операций количество товара превращается в «технический ноль», что недопустимо для складского учета.
Рассмотрим детально причины возникновения этой ситуации и разберем пошагово способы ее решения, опираясь на опыт разработчиков и настройки системы.
Суть проблемы заключается в механизме пересчета единиц измерения. В конфигурации Управление торговлей 11 учет ведется одновременно в двух величинах: единицах хранения (базовых) и упаковках (единицах измерения документа). Когда мы указываем количество в документе, система умножает его на Коэффициент, указанный для выбранной упаковки, чтобы получить значение в базовых единицах для регистра Товары на складах.
Проанализируем типичный пример из практики: пользователь вводит 0,5 кг товара — решается через автоматизация пересчета весовых и габаритных характеристик. Если базовая единица хранения для этого товара — «Штуки» с точностью «0» (целые числа), то система пытается округлить 0,5 до ближайшего целого. В зависимости от настроек округления, результат может стать равным 0. Поскольку складской остаток не может измениться на 0 при фактическом наличии товара в строке, система выдает ошибку, указывая на превышение максимально допустимой погрешности.
Первым делом проанализируем справочник УпаковкиЕдиницыИзмерения. Это наиболее частая причина ошибок, особенно после переноса данных из других систем (например, из УТ 10.3). Выясним, правильно ли настроены связи между единицами:
Единица хранения выбрана корректно. Если товар весовой, базовой единицей должен быть «кг», а не «шт».Если с коэффициентами все в порядке, нам необходимо проверить глобальные настройки точности. Система 1С хранит параметры разрядности для каждой единицы измерения. Посмотрим, как это настроено в вашей базе:
Перейдем в справочник Классификатор единиц измерения. Найдем единицу, в которой возникла ошибка (например, «кг» или «шт»). Проанализируем реквизит Количество десятичных знаков (точность). Если для весовых единиц там стоит «0», то любые дробные значения будут округляться. Для корректной работы с весовым товаром точность должна составлять не менее 3 знаков после запятой.
Рассмотрим ситуацию, когда ошибка массово возникает после перехода с версии 10.3 на 11.5. Часто при программной загрузке через Загрузка данных из табличного документа или стандартные обработки миграции нарушается целостность ссылок. Проанализируем возможные скрытые дефекты:
Иногда в базе создаются «дубли» единиц измерения. Визуально в документе написано «кг», и в справочнике ОКЕИ есть «кг», но это разные элементы с разными внутренними идентификаторами (GUID). В результате система не находит правила пересчета между ними. Для исправления ситуации рекомендуем воспользоваться обработкой Групповое изменение реквизитов и принудительно перезаписать единицы хранения и коэффициенты для проблемных групп номенклатуры.
В некоторых случаях стандартная логика конфигурации может быть слишком строгой для специфических бизнес-процессов. Если отладчик показывает (есть инструмент для отладки кода в режиме «Предприятие»), что переменная КоличествоУпаковка имеет значение 0.5, а Количество при этом становится равным 0, это означает, что срабатывает жесткое округление в коде. Разберем, как это можно поправить на уровне программного кода (требуется создание расширения):
Найдем в общем модуле или модуле менеджера документа место, где происходит расчет количества. Часто проблема кроется в использовании функции Окр() с параметром точности 0. Посмотрим на пример изменения кода:
// Было (округление до целого):
Результат = Окр(ИсходноеЧисло, 0, РежимОкругления.Окр15как20);
// Стало (позволяем 3 знака после запятой):
Результат = Окр(ИсходноеЧисло, 3, РежимОкругления.Окр15как10);
Такое изменение позволит системе учитывать дробные части при пересчете веса в базовые единицы, что исключит появление «нулевого количества» и позволит проводить документы с высокой точностью.
Выясним еще один нюанс: в карточке номенклатуры УТ 11 есть реквизит Вес (на вкладке «Реквизиты»). Если в системе включены функциональные опции по работе с весовым товаром, программа может пытаться сопоставить введенное количество с весом единицы. Если вес заполнен некорректно (например, указано 0 кг для 1 штуки), это также может приводить к конфликтам при расчете итоговых показателей в документе возврата или отгрузки — для этого подойдёт расчет и отображение весо-объемных характеристик.
Резюмируем: для решения проблемы нам необходимо обеспечить три условия: