Как настроить автоматический расчет цены поставщика на основании розничной цены в 1С:УНФ

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

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

Разберем теорию: Виды цен vs Виды цен контрагентов

Прежде чем переходить к настройке, важно понять, почему в 1С нельзя просто прописать формулу в карточке договора с поставщиком. Проанализируем структуру справочников:

  1. Виды цен: Это ваши внутренние колонки прайс-листа. Они используются для продажи товаров покупателям. Здесь можно использовать мощный конструктор формул (например, [Розничная] * 0.62).
  2. Виды цен контрагентов: Это справочник цен, по которым вы закупаете товар. В 1С:УНФ эти цены считаются «входящими», то есть они либо загружаются извне, либо фиксируются документами поступления. В штатном функционале для них нельзя указать динамическую формулу расчета от ваших внутренних цен.

Чтобы решить задачу, нам нужно «подружить» эти два механизма. Рассмотрим пошагово способы реализации.

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

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

Шаг 1. Создание расчетного вида цены.
Перейдем в раздел Продажи — Виды цен. Создадим новый вид цены, назовем его, например, Закупочная (расчетная). В поле «Способ расчета» выберем Динамический (по формуле). В конструкторе формул укажем зависимость от розничной цены: [Розничная] * 0.62. Сохраним настройку.

Шаг 2. Использование в документе.
Когда мы создаем документ Заказ поставщику или Приходная накладная, система по умолчанию пытается подставить «Вид цены контрагента». Чтобы применить нашу формулу, выполним следующие действия:

Проанализируем результат: система возьмет актуальные розничные цены из базы, умножит их на 0.62 и подставит в колонку «Цена». При проведении документа, если в договоре стоит галочка «Регистрировать цены поставщика», эти значения запишутся как актуальные цены контрагента.

Способ 2. Автоматизация через документ «Установка цен»

Если нам нужно массово обновить цены поставщиков в справочнике, не дожидаясь создания накладных, мы воспользуемся документом Установка цен. Рассмотрим, как это работает:

В разделе Продажи выберем Установка цен. Сформируем новый документ. В него мы добавим номенклатуру, по которой изменилась розница. Выберем две колонки цен: Розничная и нашу расчетную Закупочная (расчетная). Система автоматически вычислит значения. Важный нюанс: этот документ обновит ваш внутренний прайс-лист. Чтобы эти данные стали «ценами контрагента», в 1С:УНФ версии ПРОФ можно настроить небольшое расширение или использовать обработку «Загрузка цен номенклатуры контрагентов» из этого же документа.

Способ 3. Загрузка из Excel с применением коэффициента

Как упоминалось в сообщении №12 на форуме, часто поставщик присылает готовый файл. Рассмотрим, как упростить процесс импорта, если у нас есть только розничные цены в Excel:

В 1С:УНФ встроен мощный механизм загрузки. При импорте данных в документ (например, через кнопку Загрузить из внешнего источника), на этапе сопоставления колонок, мы можем не просто выбрать колонку «Цена», а нажать на настройки сопоставления. В некоторых версиях конфигураций и обработках загрузки доступно применение коэффициента прямо в окне импорта. Вы указываете колонку с розничной ценой из файла и задаете множитель 0.62. Таким образом, в систему попадет уже готовая рассчитанная цена, а в базе останется привязка к поставщику.

Почему 1С не делает это автоматически «на лету»?

Выясним причину такого архитектурного решения. В управленческом учете считается, что закупка — это внешний фактор, а розница — внутренний. Если ваша розничная цена изменится (например, вы решите поднять маржу), автоматический пересчет цены поставщика в базе будет ложным, так как поставщик не снизил и не поднял вам цену по факту. Поэтому система требует подтверждения этого действия через документ или ручной пересчет в накладной.

Рекомендация для версии ПРОФ:
Так как вы используете версию ПРОФ на 3 рабочих места, у вас есть возможность использовать Дополнительные отчеты и обработки. Если операций много, мы рекомендуем написать простую обработку, которая будет запускаться регламентным заданием и проверять: «Если изменилась розничная цена, нужно обновить запись в регистре ЦеныНоменклатурыКонтрагентов по формуле». Это полностью снимет рутинную нагрузку.

Краткий итог действий

Подводя итог, для реализации вашей задачи без доработок кода, используйте следующую схему:

  1. Создайте Вид цены (внутренний) с формулой [Розничная] * 0.62.
  2. В документах закупки на вкладке Цены и валюта выбирайте этот вид цены для автоматического заполнения табличной части.
  3. Убедитесь, что в договоре с поставщиком включена опция Регистрировать цены поставщика, чтобы рассчитанные значения сохранялись в истории для последующих заказов.

Такой подход позволит вам избежать повторного ручного ввода цен и обеспечит точность расчетов в соответствии с вашими договоренностями с поставщиком.

← На главную