Я хочу сделать несколько независимых друг от друга мультивалютных полей, метод который я нашел в академии отключает треугольник для смены валюты, мб у кого то есть метод без его(треугольника) удаления и что бы он корректно работал после этого?

Нравится

2 комментария
Лучший ответ

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

В методе prepareCurrencyMenu мы биндим к своей функции "Click: {"bindTo": "on" + column + "CurrencyMenuItemClick"}". У меня мультивалютные колонки называются "NavDamageSize" и "NavSumCurrency", название методов "onNavDamageSizeCurrencyMenuItemClick", "onNavSumCurrencyCurrencyMenuItemClick" (изначально были другими). Название атрибутов должно быть "NavDamageCurrencyButtonMenuList" и "NavReqSumCurrencyButtonMenuList". Это особенности моей реализации.

Проще говоря, внимательно следите за названием методов и атрибутов.

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

В методе prepareCurrencyMenu мы биндим к своей функции "Click: {"bindTo": "on" + column + "CurrencyMenuItemClick"}". У меня мультивалютные колонки называются "NavDamageSize" и "NavSumCurrency", название методов "onNavDamageSizeCurrencyMenuItemClick", "onNavSumCurrencyCurrencyMenuItemClick" (изначально были другими). Название атрибутов должно быть "NavDamageCurrencyButtonMenuList" и "NavReqSumCurrencyButtonMenuList". Это особенности моей реализации.

Проще говоря, внимательно следите за названием методов и атрибутов.

Алексей Следь

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

Показать все комментарии

Здравствуйте уважаемое сообщество. Хочу предложить внести незначительные, но на мой взгляд полезные, изменения в модуль мультивалютности.

 

  1. Добавить возможность "биндить" такие параметры как: primaryAmountEnabled, currencyEnabled, rateEnabled. На сколько я могу судить для этого достаточно:
    • (на примере rateEnabled) в MultiCurrencyEditViewGenerator#generateMultiCurrencyEdit упростить конструкции `(viewConfig.rateEnabled.bindTo || viewConfig.rateEnabled)` до`viewConfig.rateEnabled`. После чего, уже реализованный метод MultiCurrencyEdit#setRateEnabled будет отрабатывать.
    • (для полноценной работы currencyEnabled) в MultiCurrencyEditViewGenerator#generateCurrencyButton свойству enabled установить значение: `!Ext.isEmpty(config.currencyEnabled) config.currencyEnabled : true`
  2. Реализовать возможность добавлять мультивалютные поля с разными валютами на одну страницу. Для себя я решил эту проблему так: Для мультивалютных полей добавляю свойство CurrencyButtonMenuList в которое, при необходимости, передаю коллекцию валют. Заполнение коллекций реализовано непосредственно в карточке. Таким образом закрывается два кейса: Кастомный список валют и Множество независимых валютных полей. Естественно, что если свойство не определено - модуль отрабатывает по умолчанию. В MultiCurrencyEditViewGenerator#generateCurrencyButton свойству menu.items установить значение: `Ext.isEmpty(config.currencyButtonMenuList) ? "CurrencyButtonMenuList" : config.currencyButtonMenuList`
  3. Ну и круто было-бы уже поправить жёсткую привязку на поле Currency, что при использовании префикса заставляет добавлять некрасивые конструкции.

 

Вопросы решаются в несколько строчек, а возможностей открывают много.

 

P.S. Конечно всегда можно реализовать свой модуль, и там всё это сделать. Но ведь платформа от того и крутая, что имеет много гибкого функционала из коробки.

1 комментарий

Здравствуйте, Вячеслав!

 

Передали данные идеи команде разработки для анализа возможности внедрения такой возможности в будущих версиях продукта. Спасибо Вам за приведенные свои подходы к решению.

Показать все комментарии

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

Используется bpm'online comerce 7.6

Я нашел метод обработки события выбора валюты onCurrencyMenuItemClick, но я думаю он мне не поможет. Подскажите пожалуйста что мне делать или в каком направлении "копать"???

Нравится

13 комментариев

Здравствуйте!

А почему не реализовать логику расчета значения после добавления/изменения/удаления записи на детали?

Задание автоматически по стране выбирать валюту и присвоить, рассчитать, все поля с валютой данной страны. Мне не нужно проводить расчеты мне нужно автоматизировать это действие.

Здравствуйте!

В базовой версии сумма хранится в поле "Итого, б.в". Сумма пересчитывается по курсу, указанному в справочнике "Курсы валют", к валюте, указанной в системной настройке "Валюта по умолчанию".

Здравствуйте, возвращаюсь к данному вопросу.

Есть какое то свойство или метод который присваивает и рассчитывает значение по умолчанию??

По поводу значения по умолчанию - это системная настройка. Можно ее изменять и как это отразиться на работе всех полей???

Здравствуйте!

Честно говоря, я не совсем понимаю, почему возник данный вопрос - в статье нет упоминаний системных настроек.
Системные настройки хранятся в объекте SysSettingsValue. Вы можете изменить системную настройку запросом ESQ. В системе для некоторых объектов, например, счет и заказ используются системные настройки. В результате добавления новой записи значение системной настройки увеличивается.

По поводу системной настройки - https://academy.terrasoft.ru/documents/sales-commerce/7-6-0/spravochnik… (на всякий случай сделал снимок)

Я зашел в описание системных настроек - было упоминание о этой настройке, сейчас она почему то пропала.
В объекте SysSettingsValue нету такой настройки, настройка базовой валюты находиться в объекте SysSettings.

Сергей, не совсем так.

Есть две таблицы:
1) SysSettings
2) SysSettingsValue

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

select * from SysSettingsValue where SysSettingsId = (select Id from SysSettings where Code = "PrimaryCurrency")

Спасибо большое за подсказку. Стало ясно как работать с SysSettingsValue. А в клиентских схемах еще проще.

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

Возможно вам поможет
https://academy.terrasoft.ru/documents/technic-sdk/7-8-0/dobavlenie-mul…
Статья написана еще для 7.7, не знаю как применимо к 7.6

Насчет версии в 7.6 реализованы модули MoneyModule, MultiCurrencyEdit, MultiCurrencyEditUtilities.

Немножко обманул
пример есть и в 7.6
https://academy.terrasoft.ru/documents/technic-sdk/7-6-0/kak-dobavit-mu…

Показать все комментарии

Добрый день!
В Sales базовом пакете Invoice.InvoicePageV2 при наличии 2х мультивалютных полей возникает нарушение структуры отображения страниц

Для воспроизведения данной проблемы необходимо:
1. Открыть карточку редактирования нового счета в разделе «Счета»
2. Нажать на кнопку редактирования поля «Сумма» мультивалютного поля для отображения дополнительного окна
3. Закрыть окно, вызванное в п.2 щелкнув в любом месте окна
4. Нажать на кнопку редактирования поля «Сумма оплаты» мультивалютного поля для отображения дополнительного окна
5. Перейти в другой раздел.
6. После этого появляется дополнительные нескрытые поля сверху страницы.
Данный кейс актуален для страниц, где больше одного мультивалютного поля.

Кто-нибудь встречался с такой проблемой?

Нравится

3 комментария

Добрый день, Илья!

Проверил описанный Вами кейс на релизной сборке 7.6.0.1114 Sales_omnichannel и никаких сбоев или ошибок в отображении структуры не обнаружено на страницах с несколькими мультивалютными полями. В связи с чем просьба учтонить о какой версии и продукте идет речь, а также выполнялись ли какие-либо доработки в объекте Invoice?

Валерий, для Вас подготовил gif-файл. Попробуйте также.

Данная проблема встретилась в пакетах без доработок Invoice в SalesEnterprise 7.6.0.1126 и SalesOmnichannel 7.6.0.1028.

Здравствуйте, Илья!

Предлагаю Вам написать на почтовый ящик support@terrasoft.ru - в таком случае служба поддержки сможет оказать более квалифицированную помощь.

Показать все комментарии

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

Нравится

3 комментария

Здравствуйте, Эмин!
Попробуйте по аналогии с тем, как реализовано в карточке счета или продажи добавить события типа "PrimaryAmountEditChange", "CurrencyRateEditChange" и т.д.

"Андрей Каспаревич" написал:

Здравствуйте, Эмин!

Попробуйте по аналогии с тем, как реализовано в карточке счета или продажи добавить события типа "PrimaryAmountEditChange", "CurrencyRateEditChange" и т.д.


Создал 4 сообщения со скриптами по аналогии со Счет. Проверил дебаггером, скрипты не вызываются. Т.е. нет никакой реакции на изменения в форме.
Разобрался. Необходимо руками добавить подписку на эвенты при изменении курса, валюты и тп. после сообщения Init

Эмин, я как раз собирался Вам об этом писать.
Рад, что Вы разобрались!

Показать все комментарии