Добрый день.
Как рассчитать "общий вес" (1) по значениям в детали (2)?
Мне бы пример кода. А там разберемся сами.
Нравится
Здравствуйте, Марат!
Пример такого расчета в системе Вы можете найти в схеме OrderPageV2 - значение поля "Итого" обновляется при добавлении записи на деталь "Продукты в заказе" (OrderProductDetailV2), метод UpdateOrderProductSummary.
Здравствуйте!
OrderPageV2 и OrderProductDetailV2 в пакете Order.
Это я нашел. Но самих методов нет.
Вот смотрите в
есть вызов OrderPage:
Product: { schemaName: "OrderProductDetailV2", entitySchemaName: "OrderProduct", filter: { masterColumn: "Id", detailColumn: "Order" }, subscriber: function() { this.updateAmount(); } },
а в OrderProductDetailV2
define("OrderProductDetailV2", [], function() { return { entitySchemaName: "OrderProduct", methods: { init: function() { this.callParent(arguments); this.set("MultiSelect", true); this.set("isCollapsed", false); } }, diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/ }; });
И понять не могу где этот метода размещен.
Уточните, пожалуйста, Вашу версию и продукт. У меня в 770 больше кода...
Здравствуйте, самим подсчётом занимаются методы миксина ProductEntryPageUtils который подключен к карточке OrderPageV2, все это еще связано песочницей с самой деталью. Но все это слишком заточено на универсальность и для Вашего кейса не нужно.
Все что Вам нужно, так это переопределить с вызовом родительского метода, в карточке в которой у Вас размещена деталь, метод:
onDetailChanged
В нем проверять Ваша ли деталь стригерила это событие, и если Ваша, обращаться к БД с помощью esq запроса:
https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/ispolzovanie-r…
Получив нужную сумму, или любые другие данные из БД и посчитав их агрегацию, поместить их куда Вам необходимо на карточку, к примеру в колонку завязанную на виртуальный атрибут.
Таблицу детали вы знаете, единственное условие это Id записи связи, который Вы легко получите в карточке через this.get("имя-колонки-связи")