При работе в программах 1С, особенно в конфигурациях, связанных с торговлей и складским учетом (УТ, КА, ERP), пользователи могут столкнуться с ошибкой при проведении документов, таких как «Реализация товаров и услуг» или «Перемещение товаров». Текст ошибки обычно выглядит так: «После округления количество товара будет равно X... при этом погрешность округления составит Y... что превышает максимальную погрешность Z». Для устранения других распространенных сбоев при проведении таких документов, связанных с нехваткой остатков по налогообложению, можно использовать инструмент автоматического исправления ошибок проведения реализации.
Эта ошибка часто ставит в тупик, поскольку на первый взгляд все данные в документе кажутся корректными. Попытка изменить глобальные настройки допустимого отклонения, как правило, не дает результата. Рассмотрим по шагам, в чем заключается корень проблемы и как ее решить, не прибегая к изменению типовой конфигурации.
В большинстве случаев проблема кроется не в математике округления, а в скрытой несогласованности данных, а именно — в некорректно указанной единице измерения для товарной позиции. Давайте разберемся, как это происходит.
В системе 1С существует общий классификатор единиц измерения, где хранятся «эталонные» единицы, например, «шт.», «кг», «м». Однако для каждой конкретной номенклатурной позиции создаются свои собственные единицы измерения, которые, хоть и могут называться так же («шт.»), но являются подчиненными элементами справочника «Номенклатура». Простыми словами, «штука» из общего классификатора и «штука», принадлежащая товару «Гвоздь строительный» — это для системы два разных объекта.
Ошибка возникает, когда в документ по какой-либо причине попадает «общая» единица измерения вместо «частной», принадлежащей конкретному товару. Это часто случается, если документ заполняется не вручную, а с помощью:
Когда система пытается провести документ, она не может правильно сопоставить количество в упаковках с количеством в базовых единицах хранения, так как не находит связи между «общей» единицей измерения и номенклатурой. Это приводит к сбою в расчетах и появлению ошибки о превышении погрешности. При необходимости массово исправить подобные несоответствия в информационной базе можно использовать обработку для автоматического создания индивидуальных упаковок номенклатуры.
Если вам нужно срочно провести документ и нет времени разбираться с причинами, есть простой и эффективный способ, который помогает в 99% случаев. Этот метод заставляет систему заново пересчитать все данные в проблемной строке, подтянув корректные значения.
После этого действия система заново инициализирует строку, обращается к справочнику номенклатуры, находит ее «родную» единицу измерения и корректно пересчитывает все связанные величины. Как правило, после этого документ проводится без ошибок.
Почему это работает? При ручном перевыборе значения в строке запускается внутренний механизм обновления данных. Система видит, что вы работаете с конкретной номенклатурой, и автоматически подставляет правильную, «привязанную» к ней единицу измерения, даже если изначально в поле стояла некорректная «общая».
Чтобы ошибка не повторялась, необходимо найти и устранить ее источник. Для этого нужно проверить, какая именно единица измерения указана в документе.
Шаг 1. Проверяем владельца единицы измерения
Откройте проблемный документ и выполните следующие действия:
Если в поле «Владелец» указано «Базовые единицы измерения» или оно пустое — вы нашли причину проблемы. Правильное значение в этом поле — это наименование вашей номенклатуры.
Шаг 2. Ищем источник некорректных данных
Проанализируйте, как создавался этот документ. Если он был загружен из внешнего файла или создан обработкой, то необходимо исправить логику этой обработки. Программист должен убедиться, что при заполнении поля ЕдиницаИзмерения используется не поиск по наименованию в общем классификаторе, а получение единицы непосредственно из реквизитов или табличных частей самой номенклатуры.
Если же документы создаются вручную, но ошибка все равно появляется, стоит проверить настройки пользователя или настройки создания документов на основании (если используется этот механизм).
Если вы разработчик и хотите разобраться в механизме подробнее, то проверка, вызывающая ошибку, обычно находится в общем модуле, отвечающем за проверки при проведении документов. В конфигурации «Управление торговлей» это, как правило, функция ПроверитьЗаполнениеКоличества в общем модуле ОбщегоНазначенияУТ. Анализ кода этой функции поможет понять, какие именно параметры система не может сопоставить.
Хотя проблема с владельцем единицы измерения является самой частой, в редких случаях ошибка может быть вызвана другими факторами:
НСИ и администрирование -> Настройка НСИ и разделов -> Номенклатура -> Допустимое отклонение при автоматическом округлении. Установка небольшого значения (например, 1-3%) может помочь в некоторых пограничных случаях, хотя обычно не решает проблему, описанную выше.Таким образом, столкнувшись с ошибкой округления, не спешите менять код конфигурации. В первую очередь, попробуйте перевыбрать количество или единицу измерения в проблемной строке. Если это помогло, ищите причину в способе заполнения документа, чтобы устранить проблему на системном уровне.