Разберем типичную и крайне неприятную проблему, с которой сталкиваются разработчики и аналитики при доработке конфигурации «Управление торговлей 10.3»: при оформлении документа РеализацияТоваровИУслуг на основании документа ЗаказПокупателя итоговые суммы или суммы НДС перестают сходиться на несколько копеек.
Проанализируем механику работы типовых документов, выясним, почему простое изменение точности реквизитов в табличной части приводит к ошибкам, и рассмотрим надежные способы решения этой задачи.
Когда в конфигурации увеличивают точность реквизита Цена (например, задают тип Число(15, 3) вместо типового Число(15, 2)), разработчики часто меняют этот тип только в табличных частях Товары соответствующих документов. Однако при этом забывают про внутреннюю архитектуру типовой торговли.
Рассмотрим, как происходит заполнение накладной при вводе на основании:
РеализацияТоваровИУслуг в большинстве случаев не копирует напрямую строки из табличной части документа ЗаказПокупателя.ЗаказыПокупателей (через виртуальную таблицу Остатки).ЗаказыПокупателей измерение или ресурс Цена оставлен со стандартной точностью Число(15, 2), то в момент проведения заказа точная трехзначная цена принудительно обрезается и округляется до 2 знаков.Если специфика бизнеса действительно требует хранения цен с тремя или более знаками после запятой, выполним сквозную доработку структуры данных.
Разберем по шагам, какие объекты метаданных необходимо проверить и скорректировать:
ЗаказыПокупателей.Цена и приведем его тип к точному соответствию с табличной частью документа — например, Число(15, 3).Товары обоих документов — ЗаказПокупателя и РеализацияТоваровИУслуг. Длина дробной части у реквизитов Цена, Сумма и СуммаНДС должна быть согласована.Формат элемента формы жестко задано ЧДЦ=2, форма будет визуально усекать введенное значение и может передавать в объект искаженные данные.ЗаказыПокупателей перезаписались с новой точностью.Увеличение разрядности реквизита цены в метаданных влечет за собой риски при формировании регламентированных печатных форм (ТОРГ-12, Счет-фактура, УПД), где по законодательству предусмотрено только 2 знака после запятой. При наличии трех знаков в печатных формах неизбежно возникает арифметическая несостыковка: произведение количества на цену визуально не дает итоговую сумму строки.
Поэтому рассмотрим методологически правильный способ обхода проблемы без изменения типовой конфигурации:
Если заказ согласуется с контрагентом на фиксированную сумму, используем подход с приоритетом суммы над ценой:
Цена = Сумма / Количество.