Как загрузить цены поставщика с точностью до 4 знаков после запятой в 1С:ERP без доработок конфигурации?

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

При закупке мелкой номенклатуры (крепеж, электронные компоненты, сырье) или при расчетах в валюте поставщики нередко выставляют прайс-листы с ценами, имеющими 3 или 4 знака после запятой (например, 0,0125 EUR за штуку). При попытке загрузить такой прайс-лист в 1С:ERP Управление предприятием пользователи сталкиваются с тем, что система автоматически округляет значения до сотых долей, приводя к существенным погрешностям при расчете сумм партий.

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

Почему в типовой 1С:ERP нельзя просто ввести 4 знака цены?

Проанализируем структуру метаданных программы. В типовой 1С:ERP для всех реквизитов, отвечающих за хранение и регистрацию цен (в справочниках, регистре сведений ЦеныНоменклатурыПоставщиков, документах Регистрация цен номенклатуры поставщика, Заказ поставщику и Приобретение товаров и услуг), жестко задан квалификатор числа Число(15, 2).

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

Решение 1: Использование механизма упаковок и коэффициентов кратности (рекомендуемый способ)

Рассмотрим основной и самый правильный с точки зрения методологии 1С способ обхода данного ограничения — перевод цен на укрупненную единицу измерения с помощью упаковок.

Если базовая цена составляет 0,0125 EUR за 1 штуку, мы можем зарегистрировать цену за партию в 100, 1 000 или 10 000 штук. В таком случае цена за 1 000 штук составит 12,50 EUR, что идеально укладывается в стандартную разрядность (15, 2) и не создает погрешностей при расчете.

Разберем настройку по шагам:

  1. Включаем использование упаковок в системе (раздел НСИ и администрирование -> Номенклатура -> Единицы измерения, флаг Упаковки номенклатуры).
  2. Для требуемой номенклатуры создаем упаковку с нужным коэффициентом кратности (например, упаковка Тысяча штук с коэффициентом 1000 относительно базовой единицы шт).
  3. В прайс-листе поставщика регистрируем цену не на штуку, а на созданную упаковку (12,50 EUR).
  4. Оформляем документы Заказ поставщику и Приобретение товаров и услуг с указанием единицы измерения в упаковках. При этом складской учет, списание в производство и реализация продолжают вестись в базовых единицах (штуках).

Решение 2: Подготовка данных в Excel перед загрузкой и использование скидок

Если специфика поставок не позволяет использовать упаковки, рассмотрим вариант предварительной обработки файла перед импортом:

  1. Обрабатываем файл Excel: базовую цену округляем до 2 знаков, а разницу между точной расчетной суммой партии и суммой по округленной цене закладываем в процент ручной или автоматической скидки/наценки поставщика.
  2. Регистрируем округленную цену в документе Регистрация цен номенклатуры поставщика, а при формировании документов закупки используем условия соглашений с поставщиком.

Решение 3: Хранение справочной цены в дополнительных реквизитах

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

  1. Переходим в раздел НСИ и администрирование -> Общие настройки -> Дополнительные реквизиты и сведения.
  2. Для справочника Номенклатура поставщика или Номенклатура добавляем дополнительный реквизит числового типа с длиной 15 и точностью 4 (например, Индикативная цена поставщика).
  3. Загружаем точную цену в этот реквизит для просмотра менеджерами, а в типовые расчетные поля подставляем округленные значения.

Почему не рекомендуется дорабатывать конфигурацию в коде?

Выясним причину, почему снятие конфигурации с поддержки для расширения точности цен до Число(15, 4) считается крайне нежелательным:

  1. Колоссальный объем изменений: потребуется переопределить реквизиты в десятках регистров, документов цепочки поставок, движений партий, производства и себестоимости.
  2. Проблема взаиморасчетов: бухгалтерский и финансовый учет в любой валюте (включая EUR, USD и рубли) всегда ведется с точностью до 2 знаков (центы, копейки). При перемножении дробных цен на количество неизбежно будут возникать копеечные расхождения между суммой строк и итоговой суммой накладной.
  3. Сложности обмена: типовые правила синхронизации с 1С:Бухгалтерия предприятия и системами электронного документооборота (ЭДО) рассчитаны на стандартный формат чисел, что вызовет постоянные ошибки валидации XML/XDTO при передаче данных.
← На главную