Логика страницы редактирования продукта в редактируемом реестре детали
Добрый день!
Есть настроенная страница редактирования продукта. Где то вычитал (уже не найду) что она транслируется на деталь с реестром. Так ли это на самом деле или все надо дублировать в схеме детали? Если да, то в моем случае на странице запрещенные для редактирование поля в детали доступны для редактирования. При выборе справочного поля изменялись зависимые поля, в реестре нет.
Нравится
Руслан, не совсем понял, как у Вас связаны деталь и карточка и где что вычитали, но, вероятнее всего, это разные сущности, их логика между собой не связана, скрипты в карточке работают только в ней, аналогично и со схемой детали. Для запрета редактирования полей можно воспользоваться правами доступа на поля для роли «Все пользователи».
Да, на самом деле не могу найти описание, опытным путем вывел, что колонки в детали пересчитываются по алгоритму заданному на странице редактирования. Это правило работает для числовых полей, а для справочного поля нет, т.е. настроенные фильтры и методы не работают.
Для числовых полей не бывает фильтрации, а их значения вычисляют на уровне или встроенных БП объекта, или отдельных БП, или вообще какой-то внешней по отношению к объекту логикой. Но если значение числового поля в открытой карточке вычислили и изменили на уровне скриптов карточки, а затем сохранили её, то новое числовое значение попадёт в базу и при открытии или обновлении страницы реестра отобразится уже оно.
Видимо я выразился неточно. Имел ввиду что настроенные фильтры и методы для справочника на странице редактирования не применяются в детали, хотя методы расчетов по числовым полям, настроенные на странице, работают в детали.
Страница карточки (например, AccountPageV2) и детали (например, AccountRelationshipDetailV2) задаются в разных схемах со своей логикой и связаны с разными объектами и их таблицами в базе.
Александр, в моем случае это OpportunityProductPageV2 и OpportunityProductDetailV2.
Подскажите, пожалуйста, Александр, где прописана логика расчета стоимости продукта для детали OpportunityProductDetailV2. Я в схеме детали не вижу методов расчета суммы. Они есть в схеме страницы детали OpportunityProductPageV2. Я считал что метод расчета колонок берется из страницы детали.
Вероятно, во встроенном БП объекта OpportunityProductInterest в скрипте CalckOpportunityAmountAfterSevedScriptTask и вызываемой им функции CalckOpportunityAmount.
Видимо так и есть. Туда я еще не заглядывал. Я ошибочно предположил что пересчет происходит по методам страницы добавления записи детали OpportunityProductPageV2, т.к. нашел в нем код который пересчитывает сумму
recalculateAmount: function() { var price = this.get("Price"); var quantity = this.get("Quantity"); if (price && quantity) { this.set("Amount", price * quantity); } }
К тому же бизнес-правила на странице добавления продукта работают и для детали. Почему же тогда на справочные поля (при редактировании детали в реестре) не накладываются фильтры, которые указаны в OpportunityProductPageV2?
Карточка и деталь — две разных страницы со своей логикой. Бизнес-правила можно настроить в мастере раздела. Приведенный Вами код пересчёта суммы используется, чтобы она считалась прямо в открытой карточке ещё до сохранения.
Подскажите, пожалуйста, Александр, как настроить фильтр для справочного поля в детали редактируемой в реестре.