В компании есть несколько региональных подразделений.
Создана организационная структура:
Регион 1 - отдел продаж
Регион 2 - отдел продаж
Регион 3 - отдел продаж
Разделение на регионы - условное
Т.е. Регион включает в себя и рядом располагающиеся регионы.

В BPN импортированы клиенты из каждого региона:
Название клиента и телефон
В карточке контрагента зарегистрировано, что клиент является клиентом именно этого региона.
Создано дополнительное поле "Какому региону принадлежит контрагент": и заполнено значением
Клиент Региона 1
Клиент Региона 2
Клиент Региона 3

Произведен импорт данных из под Supervisor (Ответственный -Supervisor)

Прошу помочь
настроить права доступа таким образом, чтобы
каждый регион видел только свои симпортированные Supervisor-ом данные

и вторая задача
добавить в эти условия: при добавлении новых контрагентов -
Пользователь видит только свои или записи сотрудников, входящих в его Регион.

Спасибо

Решение облачное - 7.8.

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

Нравится

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

Приветствую!

Способ 1. Решали подобный кейс так, что сделали процесс с сигналом при записи нового контрагента и в нем манипулировали правами при импорте записей.

Способ 2. Прописать представляется возможным и в облаке. Для этого используйте создание sql запроса, который вы можете сотворить на закладке "SQL-скрипты" Вашего пользовательского пакета в настройках конфигурации. Вот только сам текст запроса попросите у коллег из поддержки. Я не уверен, что мой подойдет.

"Милова Марина Федоровна" написал:Решение облачное - 7.8.

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

По моему скромному мнению обработка прав доступа на уже проимпортированные данные это только написание курсоров для выполнения на sql сервере. И проблемы в том что это облако никакой нет.

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

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

"Дмитрий Степанов" написал:Способ 1. Решали подобный кейс так, что сделали процесс с сигналом при записи нового контрагента и в нем манипулировали правами при импорте записей.

Дмитрий, а можно поподробнее, как манипулировали?

"Александр Кудряшов" написал:По моему скромному мнению обработка прав доступа на уже проимпортированные данные это только написание курсоров для выполнения на sql сервере. И проблемы в том что это облако никакой нет.

Коллеги, я правильно понимаю, что Пользовательским интерфейсом это никак не решить?

"Милова Марина Федоровна" написал:Коллеги, я правильно понимаю, что Пользовательским интерфейсом это никак не решить?

Для разработчика это задача на 3-6 часов - с подстраховкой на неполную постановку и неизвестные субд и объемы данных, не больше.
Пользовательское решение будет неуклюжее и едва ли будет удобно... есть действие в бп по раздаче прав, можно с его помощью попробовать что то наколдовать, но боюсь все равно на уровне менеджера в розовой рубашке и просто кнопочек сделать не выйдет, придется писать скрипты в бизнес процессе

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

"Александр Кудряшов" написал:Для разработчика это задача на 3-6 часов - с подстраховкой на неполную постановку и неизвестные субд и объемы данных, не больше.

Саш, спасибо

Марина, в БП есть элемент для управления доступом (правами). Ну берем ответственного из файла импорта, смотрим, куда он относится в bpmonline и выставляем права. Но скажем так - если эта операция разовая (редкая), я бы запрос пускал.

"Дмитрий Степанов" написал:Ну берем ответственного из файла импорта, смотрим, куда он относится в bpmonline и выставляем права.

Дмитрий, ответственных нет. так как файл сводный. Т.е. все прислали всё по своему региону.
без детализации, кто чей клиент

Есть единственное поле "Какому региону принадлежит клиент"
Только на него можно опираться пока

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

В данном инциденте решение предоставлятся не будет, так как вопрос и так уже рассматривается на нашем форуме. Ссылка на тему дана в предыдущем комментарии. Если у Вас остались какие-то не закрытые вопросы - Вы можете задать их в той же теме.

Марина, есть два пути - первый (системный) Вам рассказал коллега (с курсором), второй (процессный) расскащал Вам я. По нему еще раз. В дизайнере процессов есть элемент, управляюший правами. Как вы говорите, в исходном файле есть только регион. Добавьте параметр "Регион" или в группу пользователей или самому пользователю и настройте процесс так, чтобы при сохранении контрагента в доступ добавлялись все, которые к этому региону относятся.

"Дмитрий Степанов" написал:Добавьте параметр "Регион" или в группу пользователей или самому пользователю

Лучше справочник развязку сделать типа "группы пользователей по регионам", я бы в штатные объекты такого уровня не полез без острой надобности...

Согласен пожалуй

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

Как настроить регистрацию лидов с внешних ресурсов? есть ли какая документация или может кто описать поподробней как это делается.

Нравится

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

Добрый день, какой у Вас продукт?

Здравствуйте Дмитрий, bpmonline sales 7.8

Включите в настройках пространства секцию "Веб-формы" (Лендинги, точное название на русском не знаю). Добавьте новую форму. У нее есть поле со скриптом. Его содержание нужно скопировать на вашу страницу с формой и заменить "css-selector" на Id input'ов (проще всего type="text") вашей формы. Пример:

Допустим, у вас есть форма:

<form>
<label>Компания</label><input type=text id="CompanyName">
<label>Контакт</label><input type=text id="ContactName">
<label>Телефон</label><input type=text id="CompanyPhone">
<input type="submit">
</form>

Для того, чтобы ее данные попали в систему нужно после нее вставить скрипт, приведенный на карточке нового лендинга и в нем заменить css-placeholder на ваши:

<script>
 
var config = {
    fields: {
        "Name": "#ContactName", 
        "MobilePhone": "#CompanyPhone", 
        "Company": "#CompanyName", 
    },
    landingId: "469b233f-4648-4ed4-824c-9616eabe9c28",
    serviceUrl: "http://bpm78ed.asproduction.cz/0/ServiceModel/GeneratedWebFormService.svc/SaveWebFormLeadData",
    redirectUrl: ""
};
 
function createLead() {
    landing.createLeadFromLanding(config)
}
</script>

После этого в ваш исходный тег формы

<form>

добавить обработку submit onSubmit="createLead(); return false", т.е. он будет в нашем примере выглядеть так:

<from onSubmit="createLead(); return false">

ну и на странице с формой в HTML желательно в секцию добавить следующее:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://webtracking-v01.bpmonline.com/JS/track-cookies.js"></script>
<script src="https://webtracking-v01.bpmonline.com/JS/create-lead.js"></script>

все :smile:

Еще момент - в настройках формы в bpmonline нужно указать точный URL страницы с формой и страницы с сообщением о успешной отправке данных.

Извините что туплю недавно начал работать с bpm, непонятен момент "Включите в настройках пространства секцию "Веб-формы" (Лендинги, точное название на русском не знаю). Добавьте новую форму. У нее есть поле со скриптом." - Это следует на сайте добавить?
В настройках есть раздел "Настройки раздела Лендинги" в нем три пункта :
1.URL сервиса приёма данных со страниц лендингов - здесь нужно указать адрес URL страницы с формой?.
2.URL api создания лидов - в нем указан адрес скрипта.
3.Шаблон автогенерируемого скрипта на странице лендинга - в нем указан шаблон который Вы отправили.
Если есть возможность можно со скринами.

Все сделал как в документации в console выходит 400 bad request.
Если кто то сталкивался этой проблемой отпишитесь.

400 bad request - запрос не проходит. Видимо, что-то не так. Например - landingId: "469b233f-4648-4ed4-824c-9616eabe9c28", должен соответствовать вашему, urlы должны соответствовать тем, которые в описании формы bpmonline прописаны, вместо http://bpm78ed.asproduction.cz/0/ServiceModel/GeneratedWebFormService.s… должен быть ваш адрес (там где система стоит) и т.д.

Проверил, все выставлено правильно. Проблема не исчезла.

ну еще как вариант неверные названия полей. Или если используете справочники - нет в названии поля Id. Вставьте сюда (или на почту мне пошлите) скрипт целиком - надо посмотреть.

Та же самая ситуация, кстати. На тестовую bpm (on-demand) без проблем посылается, на локальную (on-site) - 400 возвращает..

Владимир, добрый день!

Решение данного вопроса будет предоставлено в рамках обращения 0397137, которое было создано Вами.

По результатам анализа мы опубликуем здесь решение.

Добрый день!

Как стало известно после анализа проблемы, ошибка заключалась в том, что в продукте Sales в таблице Lead нет колонки BpmSessionId (отсутствует пакет Event Tracker), о чем не было указано в документации.

Решением будет:
В коде Лэндинга на посадочной странице заменить строку

https://webtracking-v01.bpmonline.com/JS/create-lead.js

на

http://ajax-lib.bpmonline.com/marketing/7.6.0/create-lead.js

Это ссылка на предыдущий код создания Лида, в котором не использовался BpmSessionId для создания Лида.

Эта ошибка исправлена в последней релизной версии.

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

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

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

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

Нравится

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

В принципе подобное сделано в детали Заказ - Продукты в заказе (в версии 7.8 enterprise точно). Там при добавлении продукта открывается Подбор продуктов. В нем как раз есть группы

я бы фильтровал по тегам :) Это и есть статические группы старые

Нужно реализовать именно выбор и фильтрацию по группе в окне выбора значения из справочника.
Насколько я понял нужно перенести функционал, связанный с группами, из базовой схемы раздела в окно справочника. Не нашел от какого модуля нужно наследоваться.
Подскажите пожалуйста, как примерно это сделать и LookupPageV2 это схема страницы выбора их справочника?

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

Да, только список не типов, а групп раздела по которому происходит выбор из справочника (динамические, статические группы из таблицы [название схемы объекта раздела]Folder).

Версия 7.6.0.1265 SalesTeam.

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

"Дмитрий Степанов" написал:в salesteam примеров подобной реализации нет

А перетащить куски из энтерпрайса почему нет? Там всего одна клиентская форма и модулей два-три от силы, отвечающие за каталог

не, ну если так да. Если у коллеги он есть :)

"Дмитрий Степанов" написал:не, ну если так да. Если у коллеги он есть :)

Это да :)
В полновесном демо он-деманд не помню, выпилили уже управление конфигурацией или нет

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

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

Как удалить эти следы удаленных сущностей и деталей?
Есть ли пример скрипта?

Нравится

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

Если объекты деталей и разделов удалены, Вам остается найти записи деталей по имени. Поиск нужной строчки что нужно будет удалить можно выполнить приблизительно так:

SELECT * FROM SysDetail WHERE Caption LIKE '%Имя детали%'

Получив нужную Вам строчку по имени, запоминаете её Id, и удаляете:

DELETE FROM SysDetail WHERE Id = 'айди что узнали выше'

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

SysModule

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

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

Добавил новый раздел, настроил колонки, выбрал плиточное представление и накидал поля.
Далее появились проблема: при открытии карточки, в реестре слева видны кнопки редактирования (скрин в приложении). С другими разделами все нормально, проблема в двух новых.

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

Версия 7.6.0.1265

Нравится

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

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

В данной версии есть возможность вывести два поля в одном ряду в вертикальном реестре, но верстка будет некорректная. Это поведение было исправлено в более поздних версиях. Обновите Ваше приложение, пожалуйста.

Также за эти кнопки отвечают следующие элементы:
DataGridActiveRowOpenAction
DataGridActiveRowCopyAction
DataGridActiveRowDeleteAction

Вы можете задать их видимость в схеме созданного Вами раздела.

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

Подскажите, пожалуйста, каким образом можно добавить клиентским кодом на страницу элементы сторонних сайтов, напр. видео YouTube, либо контейнер iframe?

Нравится

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

Здравствуйте,
В системе есть пример уже, это встраивание видео на главной странице.
Суть написания сводится к использованию контейнера, и написанию в нем произвольного html кода, вплоть до iframe.
Еще пример:

define("CasePage", ["CasePageResources", "terrasoft", "LookupUtilities"],
	function(resources, Terrasoft, LookupUtilities) {
	return {
		entitySchemaName: "Case",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		attributes: {
		},
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"parentName": "SolutionTab_gridLayout",
				"name": "UsrTest",
				"propertyName": "items",
				"values": {
					"itemType": Terrasoft.ViewItemType.CONTAINER,
					"layout": { "colSpan": 24, "rowSpan": 1, "column": 0, "row": 4 },
					"id": "UsrTest",
					"selectors": {"wrapEl": "#UsrTest"},
					"html": '<iframe name="bpmonline-video" id="bpmonline-video" width="560" height="315"' +
					'src="https://www.youtube.com/embed/XGSy3_Czz8k" frameborder="0" allowfullscreen></iframe>'
				}
			},
		]/**SCHEMA_DIFF*/,
		methods: {
			onEntityInitialized: function() {
				this.callParent(arguments);
				// just for debug:
				document.scope = this;
			}
		},
		rules: {}
	};
});

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

Большое спасибо!

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

Необходимо подключить к пользовательской каточке область (ProfileSchemaMixin). Вот пример кода в карточке (в которой надо добавить область):

modules: /**SCHEMA_MODULES*/{
"TransRequestProfile": {
"config": {
"schemaName": "TransRequestProfileSchema",
"isSchemaConfigInitialized": true,
"useHistoryState": false,
"parameters": {
"viewModelConfig": {
"masterColumnName": "Id",
"profileColumnName": "Id"
}
}
}
}
}

и в diff:

{
"operation": "insert",
"parentName": "LeftModulesContainer",
"propertyName": "items",
"name": "TransRequestProfile",
"values": {
"itemType": Terrasoft.ViewItemType.MODULE
}
}

А вот код самой ProfileSchema:

define("TransRequestProfileSchema", ["ProfileSchemaMixin"],
function() {
return {
entitySchemaName: "TransRequest",
mixins: {
ProfileSchemaMixin: "Terrasoft.ProfileSchemaMixin"
},
methods: {},
diff: /**SCHEMA_DIFF*/[

{
"operation": "merge",
"name": "ProfileModuleContainer",
"values": {
"wrapClass": ["profile-module-container", "transrequest-profile"]
}
},
{
"operation": "insert",
"name": "Amount",
"parentName": "ProfileContentContainer",
"propertyName": "items",
"values": {
"bindTo": "Amount",
"enabled": false,
"layout": {
"column": 4,
"row": 1,
"colSpan": 20
}
}
}
]/**SCHEMA_DIFF*/
};
}
);

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

Нравится

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

Данный фнкционал невозможно создать через Мастер разделов.

Для создания собственного ProfileContentContainer необходимо:

1) Создать модуль наследующийся от BaseProfileSchema. В данном модуле описать схему с которой будет браться информация, а так же колонки схемы которые будут "подтягиваться" в модуль. (UsrTestProfile.js)
2) Описать данный модуль на странице редактирования раздела в котором он будет отображаться.
3) Добавить данный модуль в секции diff. (UsrTestPage.js)

Результат:

usrtestpage.txt
usrtestprofile.txt

Добрый день.
Необходимо добавить блок ProfileSchema в карточку Лида.
Сделал всё по вашей рекомендации.
Для чистоты эксперимента использовал код из примера и схему Contact.
Однако в итоге получил пустой блок, как описано в теме этого обращения.
Видимо в рекомендации пропущен какой-то шаг.

UPD: Моя ошибка. Указывал конфигурацию модуля не в modules, а attributes.

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

Добрый день.
Добавил в мини-карточку активности два поля:
1. справочник "Контрагент" ("contentType": 5)
Проблема: после выбора значения справочника не закрывается пустое модальное окно LookupPage
2. Дата/время
Проблема: После выбора даты из календаря мини-карточка активности закрывается без сохранения.
Данное поведение наблюдается в мини-карточке вызываемой в LeadSectionActionsDashboard по нажатию на "Завершить" во "View" Mode. В "Edit" Mode всё в порядке.

Как альтернатива хотел отключить "View" Mode и загружать сразу "Edit" Mode. Переопределил атрибут

"Mode": {
                dataValueType: this.Terrasoft.DataValueType.TEXT,
                type: this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                value: this.Terrasoft.ConfigurationEnums.CardOperation.EDIT
            },
            "MiniPageModes": {
                    dataValueType: this.Terrasoft.DataValueType.COLLECTION,
                    type: this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                    value: [this.Terrasoft.ConfigurationEnums.CardOperation.VIEW, this.Terrasoft.ConfigurationEnums.CardOperation.EDIT]
                },

Но так и загружается мини-карточка в "View" Mode.
Версия 7.8.0.1681

Нравится

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

Ещё один нюанс:
Добавил в мини-карточку активности поле список "Стадии продажи"
Добавляю сортировку поля в массив attributes:

"UsrOpportunityStage": {
   dataValueType: Terrasoft.DataValueType.LOOKUP,
   columns: ["Number"],
   lookupListConfig: {
     orders: [{
       columnPath: "Number",
       direction: Terrasoft.OrderDirection.ASC,
      }]
   }
}

В итоге сортировка не отрабатывает.
Аналогичные настройки в стандартной PageV2 отрабатывают корректно.

Для переключения режимов посмотрите в сторону функции базовой мини-карточки «switchMiniPageMode», которая в свою очередь вызывает changeMiniPageMode с нужным параметром. И делайте переключение в нужный вам режим в нужный вам момент.

Добрый день, Илья!
А что вы можете порекомендовать по поводу решения проблем, описанных в пунктах 1 и 2 и проблемой с сортировкой справочных полях?

"Мотков Илья" написал:Для переключения режимов посмотрите в сторону функции базовой мини-карточки «switchMiniPageMode», которая в свою очередь вызывает changeMiniPageMode с нужным параметром. И делайте переключение в нужный вам режим в нужный вам момент.

Сделал по Вашему совету. Вызываю switchMiniPageMode() в onRender.
По итогу мини-карточка открывается в edit Mode. Казалось бы "Ура!!!" Но нет:smile:
Т.к. у меня есть поля, которые отображаются по условию, то после выполнения условия поля появляются, высота самой мини-карточки увеличивается, а её положение не меняется.
И в итоге я получаю кнопку "Сохранить" за пределами экрана и без возможности скроллинга (http://joxi.ru/RmzbjObHllMlmO).
Положение, мини-карточки определяется стилями, применёнными к тэгу div с id = AlignableMiniPageContainer, но где расчитываются top и left не нашёл.

"Коновалов Игорь" написал:Ещё один нюанс:
Добавил в мини-карточку активности поле список "Стадии продажи"
Добавляю сортировку поля в массив attributes:
"UsrOpportunityStage": {
   dataValueType: Terrasoft.DataValueType.LOOKUP,
   columns: ["Number"],
   lookupListConfig: {
     orders: [{
       columnPath: "Number",
       direction: Terrasoft.OrderDirection.ASC,
      }]
   }
}

В итоге сортировка не отрабатывает.
Аналогичные настройки в стандартной PageV2 отрабатывают корректно.

Оказалось, что сортировка в мини-карточках не реализована.
Решение:
1. Замещаем BaseMiniPage.
2. В блок methods переносим код из BasePageV2

 applyColumnsOrderToLookupQuery: function(esq, columnName) {
                var lookupColumn = this.getColumnByName(columnName);
                var lookupListConfig = lookupColumn.lookupListConfig;
                if (!lookupListConfig || !lookupListConfig.orders) {
                    return;
                }
                var columns = esq.columns;
                this.Terrasoft.each(lookupListConfig.orders, function(order) {
                    var orderColumnPath = order.columnPath;
                    if (!columns.contains(orderColumnPath)) {
                        esq.addColumn(orderColumnPath);
                    }
                    var sortedColumn = columns.get(orderColumnPath);
                    var direction = order.direction;
                    sortedColumn.orderDirection = direction ? direction : Terrasoft.OrderDirection.ASC;
                    var position = order.position;
                    sortedColumn.orderPosition = position ? position : 1;
                    this.shiftColumnsOrderPosition(columns, sortedColumn);
                }, this);
            },
 
            shiftColumnsOrderPosition: function(columns, sortedColumn) {
                 var sortedColumnOrderPosition = sortedColumn.orderPosition;
                if (Ext.isNumber(sortedColumnOrderPosition)) {
                    columns.each(function(column) {
                        if (column !== sortedColumn && Ext.isNumber(column.orderPosition) && column.orderPosition >= sortedColumnOrderPosition) {
                            column.orderPosition += 1;
                        }
                    });
                }
            },

3. И переопределяем метод getLookupQuery

 getLookupQuery: function(filterValue, columnName) {
                var esq = this.callParent(arguments);
                this.applyColumnsOrderToLookupQuery(esq, columnName);
                return esq;
            },

4. Чистим кэш и наслаждаемся работой сортировки справочных полей в мини-карточке :smile:

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

Коллеги, добрый день.

Интересует следующий вопрос: можно ли при выборе параметра из справочника как-нибудь вытащить более подробные данные?

Собственно, идея в том, чтобы после выбора посёлка из списка (см.скрины) получить все его данные (отдельные страницы посёлков есть) - координаты, адрес и т.д. - чтобы потом их добавить в соответствующие поля на странице объекта недвижимости. Есть ли какой-либо стандартный метод, позволяющий это сделать?

Редакция real-estate 7.7

Спасибо.

Нравится

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

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

Вы можете воспользоваться бизнес-правилами. Более подробно:
https://academy.terrasoft.ru/documents/technic-sdk/7-8-0/biznes-pravila…

Там же есть примеры.

Алексей, спасибо, буду пробовать.

А именно методов, срабатывающих при выборе, как я понимаю, не существует?

Денис, какая разница писать методы или применять бизнесс-рулс?

Цитата: "То есть, для решения типовых задач нет необходимости писать дополнительные пользовательские методы. Достаточно выполнить конфигурирование колонок с использованием правил. "

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

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

Нужно динамически менять название поля на странице редактирования. Забиндив caption, получилось возвращать название через функцию. Подскажите как вызвать перерисовку компонента или что то подобное? Возможно есть способ напрямую менять название поля?

Нравится

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

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

Вы можете забиндить название поля на значение параметра. Значение параметра Вы можете получать на событии entityInitialized(), которое отрабатывает при открытии страницы редактирования. Событие entityInitialized() необходимо переопределить.

Алексей, спасибо. Но уже сделал так:

this.Ext.get("DocumentPageNumberLabel").update("New caption");

Подскажите насколько такой вариант правилен?

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