Почему в 1С:ERP не рассчитываются динамические цены без документа установки цен и как это настроить?

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

Многие пользователи и специалисты, переходящие на 1С:ERP Управление предприятием, 1С:Комплексная автоматизация или 1С:Управление торговлей 11 с более старых конфигураций (таких как 1С:Управление торговлей 10.3), сталкиваются с неожиданным поведением подсистемы ценообразования. В прежних решениях существовал механизм так называемых «динамических цен»: достаточно было указать формулу вида «Базовая + 1%», и при выборе этого вида цены в документах продажи программа моментально рассчитывала значение «на лету», не требуя физической записи данных в информационную базу.

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

Выясним причину: почему динамический расчет «на лету» исключен из архитектуры

Проанализируем логику работы платформы и прикладного решения. В 1С:ERP отказ от динамических цен является осознанным архитектурным решением разработчиков, продиктованным следующими факторами:

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

Способ 1. Использование механизма автоматических скидок и наценок

Если цель состоит в том, чтобы давать разным покупателям дифференцированные условия (например, одному партнеру отгружать по базовой цене +1%, другому +2%, третьему +3%), создавать под каждого клиента отдельный вид цены категорически не рекомендуется. Рассмотрим, как решить эту задачу правильно с помощью штатных наценок:

  1. Перейдем в раздел CRM и маркетинг и проверим, включена ли функциональная опция Автоматические скидки в продажах (в настройках подсистемы).
  2. Откроем справочник Скидки (наценки) и создадим новый элемент.
  3. В реквизите Способ предоставления укажем Процент, а в значении зададим положительное число для наценки (или отрицательное для скидки). В карточке скидки/наценки можно явно указать переключатель Наценка.
  4. Назначим созданную наценку на конкретное Индивидуальное соглашение с клиентом или Типовое соглашение.
  5. В соглашении укажем единственную базовую цену. При подборе номенклатуры в документ Заказ клиента или Реализация товаров и услуг система автоматически подставит базовую цену и начислит процент наценки в отдельной колонке, рассчитав итоговую сумму без необходимости плодить документы переоценки.

Способ 2. Регулярная актуализация цен через ввод на основании

Если бизнес-процесс требует именно строгого разделения по видам цен (например, «Оптовая», «Дилерская», «Мелкооптовая»), рассчитанных по формулам от цены поступления, разберем по шагам регламент их фиксации:

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

Способ 3. Автоматизация пересчета через расширение конфигурации

В типовой конфигурации отсутствует встроенное регламентное задание, которое бы отслеживало изменения базовых цен и обновляло зависимые. Однако для устранения ручной работы можно настроить фоновый пересчет без снятия конфигурации с поддержки:

  1. Создадим небольшое расширение конфигурации и добавим в него новое регламентное задание.
  2. Настроим расписание выполнения (например, раз в сутки ночью или каждые несколько часов).
  3. В обработчике регламентного задания программно инициализируем новый документ Установка цен номенклатуры, вызовем методы типового модуля ценообразования для автоматического заполнения зависимых строк и проведем документ.

Способ 4. Использование порогов срабатывания

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

  1. Откроем карточку зависимого вида цены.
  2. В блоке правил расчета найдем настройку Порог срабатывания и установим допустимый процент отклонения (например, 2%).
  3. Теперь при расчете цен в документах переоценки новая зависимая цена будет перезаписываться только в том случае, если расчетное значение отклонилось от текущей действующей цены на величину, превышающую установленный порог. Это защитит информационную базу от неоправданного роста объема регистра сведений.
← На главную