Расширение "Курсы валют в формулах расчета динамических цен" для УНФ 1.6





Расширение «Курсы валют в формулах расчета динамических цен» с автоматическим пересчетом цен при изменении курсов валют для конфигурации «Управление нашей фирмой, редакция 1.6»

Расширение «Курсы валют в формулах расчета динамических цен» позволяет использовать в формулах расчета динамических цен операнды текущих курсов валют [КурсДоллара], [КурсЕвро], [КурсЮаня] без внесения изменений в типовую конфигурацию "Управление нашей фирмой".

Операнды курсов валют отображаются в конструкторе формул при включении в настройках программы возможности использования нескольких валют, а также при наличии в справочнике соответствующих валют с кодами "840" для USD, "978" для EUR, "156" для CNY.

Для динамических цен с включенным авторасчетом (галочка "Рассчитывать автоматически при изменении базовых цен"), содержащих операнды курсов валют в своих формулах, автоматический перерасчет цен выполняется в случае изменения формулы, базовых цен, а также при:

  • Записи курса валюты пользователем
  • Загрузке курсов валют штатной обработкой
  • Загрузке курсов валют штатным регламентным заданием

Для регламентного задания "Загрузка курсов валют" рекомендуется настроить расписание выполнения один раз в день (в начале суток).

Автоматический прерасчет динамических цен выполняется штатным регламентным заданием "Обработка очереди цен".

Расширение протестировано в конфигурациях УНФ начиная с версии 1.6.12.4 (режим совместимости 8.3.10) и далее по версию 1.6.18.105 (режим совместимости 8.3.12).
Для нормальной работы расширения необходимо снять галочку "Безопасный режим…" в свойствах расширения. Также может потребоваться изменить режим совместимости расширения на соответствующий режиму совместимости конфигурации (см. прилагающуюся инструкцию по установке расширения) при установке расширения или обновлении конфигурации УНФ.

ВНИМАНИЕ! В базовых версиях прикладных решений работа с расширениями не поддерживается.

ВАЖНО! Расширение версий с 1.0 по 1.6 предназначено для конфигураций УНФ по 1.6.16.219 включительно. Расширение версии 1.7 предназначено для конфигурации УНФ начиная с 1.6.17.101

В типовой конфигурации УНФ начиная c редакции 1.6.17 реализован типовой пересчет по курсу валюты базовой цены:

"Автоматический пересчет динамических цен в валюте

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

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

Если курс валюты задаете вручную, динамические цены автоматически пересчитаются.

Если вы установили курс в зависимости от загружаемых курсов валют. Тогда запускайте пересчет кнопкой Регистрировать новые цены и закрыть при существенном для вас изменении курса..."

После обновления на УНФ 1.6.17 необходимо убрать множители курсов валют из формул расчета динамических цен для исключения удвоенной конвертации.

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

Для подключения имеющейся в данном расширении функции автоматического пересчета цены при загрузке курса, введите в формулу расчета операнд курса валюты, по примеру формулы №7.

 

Примеры формул с использованием операндов (только для версий расширения ниже 1.7):

1) Динамическая цена в рублях с расчетом от базовой цены в долларах по текущему курсу доллара

[Ценавдолларах] * [КурсДоллара]

2) Динамическая цена в рублях с расчетом от базовой цены в евро по текущему курсу евро +1%

[Ценавевро] * [КурсЕвро] * (100 + 1) / 100

3) Динамическая цена в рублях с расчетом от базовых цен в разных валютах по текущим курсам соответствующих валют,
при суммировании в формуле базовых цен в разных валютах, для позиции должна быть заполнена только одна из базовых цен

([Ценавдолларах] * [КурсДоллара]) + ([Ценавевро] * [КурсЕвро])  + [Ценаврублях]

4)  Динамическая цена в рублях с расчетом от базовых цен в разных валютах по текущим курсам соответствующих валют,
при использовании в функции минимума, для позиции должны быть заполнены все базовые цены, иначе минимальная цена будет нулевая

МИН( ( [Ценавдолларах] * [КурсДоллара] ) , ( [Ценавевро] * [КурсЕвро] ) , [Ценаврублях] )

5) Динамическая цена в рублях с расчетом от базовых цен в разных валютах по текущим курсам соответствующих валют по логическому условию

? ( ([Ценаврублях] > 0) И ([Ценаврублях] < 1000) , [Ценаврублях] , МАКС( ( [Ценавдолларах] * [КурсДоллара] ) , ( [Ценавевро] * [КурсЕвро] ) ) )

где Ценавдолларах, Ценавевро, Ценаврублях — примеры идентификаторов базовых видов цен в справочнике

Примеры формул с использованием операндов (только для версий расширения начиная с 1.7):

6) Динамическая цена в рублях с расчетом от базовых цен в разных валютах по текущим курсам соответствующих валют по логическому условию

? ( ([Ценаврублях] > 0) И ([Ценаврублях] < 1000) , [Ценаврублях] , МАКС( [Ценавдолларах] , [Ценавевро] ) )

7) Динамическая цена в рублях с расчетом от базовых цен в юанях по логическому условию

#ЕСЛИ [КурсЮаня] > 0
    #ТОГДА [Ценавюнях]
    #ИНАЧЕ [Ценаврублях]
#КОНЕЦЕСЛИ

или

? ( [КурсЮаня] > 0 , [Ценавюнях],  [Ценаврублях] )

 

История изменений версий:

1.0
Добавлены операнды [КурсДоллара] и [КурсЕвро] в конструктор формул динамических цен
Добавлен расчет динамических цен по формулам, содержащим операнды [КурсДоллара] и [КурсЕвро]
Добавлен автоматический пересчет динамических цен по формулам от курса валюты:
- при записи курса валюты
- при загрузке курса валюты обработкой
- при загрузке курса валюты регламентным заданием

1.1
Исправлены выявленные ошибки
Протестировано на УНФ 1.6.16.176

1.2
Процедуры и функции вынесены в общий модуль, оформлено расширение

1.3
Исправлены выявленные ошибки
Протестировано с УНФ 1.6.12.4

1.4
Добавлены функции МАКС, МИН и условие ?() в конструктор формул динамических цен
Протестировано по УНФ 1.6.16.204

1.5
Добавлены функции ЦЕЛ и ОКР в конструктор формул динамических цен

1.6
Протестировано по УНФ 1.6.16.219

1.7
Расширение адаптировано под нововведения УНФ 1.6.17
Добавлены операнд [КурсЮаня] в конструктор формул динамических цен
Протестировано по УНФ 1.6.18.105

 

4 Comments

  1. Palmer1976

    Справка по функции ?()

    ? (вычислить выражение по условию)

    Синтаксис:


    ?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)

    Параметры:

    <Логическое выражение>

    Логическое выражение, результат вычисления которого определяет одно из результирующих выражений, которые будут вычислены. Если результат его вычисления Истина, то будет вычисляться <Выражение 1>. Если результат Ложь – то <Выражение 2>.

    <Выражение 1>

    Результирующее выражение, которое будет вычисляться, если результат логического выражения Истина.

    <Выражение 2>

    Результирующее выражение, которое будет вычисляться, если результат логического выражения Ложь.

    Возвращаемое значение:

    Результат вычисления одного из результирующих выражений.

    Описание:

    Позволяет вычислить одно из двух заданных выражений в зависимости от результата вычисления логического выражения.

    Показать

    Reply
  2. Palmer1976

    ВАЖНО! Расширение версий с 1.0 по 1.6 предназначено для конфигураций УНФ по 1.6.16.219 включительно. Расширение версии 1.7 предназначено для конфигурации УНФ начиная с 1.6.17.101

    В конфигурации УНФ начиная c редакции 1.6.17 реализован типовой пересчет по курсу валюты базовой цены. После обновления на УНФ 1.6.17 необходимо убрать множители курсов валют из формул расчета динамических цен для исключения удвоенной конвертации.

    Примеры формул с 1 по 5 не подходят для конфигурации УНФ 1.6.17

    Reply
  3. Palmer1976
    Ну вот у меня есть цена в долларе статическая 100 долларов.

    Я торгую по другой цене розничной рублевой, само собой динамической.

    Какую формулу я должен написать в 1.6.17 чтобы у меня в рублевой цене всегда стояла актуальная рублевая цена произведение курса доллара на цену в долларах?

    Ну и чтоб это всё не пересекалось с встроенным в 1.6.17 механизмом, и чтоб каждое утро при установке курса ценник тут же был пересчитан сам.

    Формулу по примеру №7, в вашем случае это:

    #ЕСЛИ [КурсДоллара] > 0
    #ТОГДА [Ценастатическаявдолларах]
    #ИНАЧЕ 0
    #КОНЕЦЕСЛИ

    или

    ? ( [КурсДоллара] > 0 , [Ценастатическаявдолларах],  0 )

    Базовая цена из долларов в рубли конвертируется типовым механизмом,

    на [КурсДоллара] умножать в 1.6.17 уже не надо, он в формуле нужен для других целей,

    в данном случае для активации пересчета динамической цены при загрузке курса доллара.

    Reply
  4. Palmer1976

    Расширение протестировано на новой редакции УНФ 1.6.18 по релиз УНФ 1.6.18.105

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *