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

Нравится

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

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

 

Подскажите, а какая бизнес цель в реализации этой задачи?

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

Ivan Kuchma,

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



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



P.S Начало проблемы обсуждалось тут 

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

Добрый день!

Подскажите, имеется ли возможность добавлять soap веб-сервисы в bpmonline 7.13? В новых версиях можно выбирать: добавить SOAP сервис или REST сервис, в старой версии не вижу как это можно сделать. Если в старой версии такой возможности нет, то как работать с внешними soap веб сервисами? Нам нужно получать данные из внешней системы и также передавать их

Скрин в старой версии 7.13:

Изображение удалено.

Скрин в новой версии:

Изображение удалено.

Нравится

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

Добрый день, Роман.

В версии 7.13 функциональность SOAP сервисов в разделе [Веб-сервисы] не поддерживается.

Данный функционал добавлен в версии 7.17.2.

Рекомендуем обновить систему до версии 7.17.2 и выше.

Добрый день, Роман.

В версии 7.13 функциональность SOAP сервисов в разделе [Веб-сервисы] не поддерживается.

Данный функционал добавлен в версии 7.17.2.

Рекомендуем обновить систему до версии 7.17.2 и выше.

Обновление на данный момент невозможно. Есть ли обходное решение? Минуя раздел [Веб-сервисы]

 

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

Доброго времени суток!

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

Нравится

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

Арнур, добрый день!

Прошу описать вашу бизнес-задачу, не совсем ясно какого результата вам необходимо достичь.

Без описания бизнес-задачи сложно что-то сказать. Однако, в теории это возможно реализовать в скрипт-таске. Для этого необходимо вычитать данные с таблицы Sys[Объект]Right и на основании полученных записей в этой же скрипт-таске получить необходимую коллекцию-записей.

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

Доброго времени суток!

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

Нравится

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

Сделайте бизнес процесс, который при создании записи будет забирать права на запись у нужной роли. 

Сидоров Александр Валерьевич,

а как быть со старыми записями?

А для старых - отдельный разовый бизнес-процесс, который пройдется по всем записям и перераздаст права.

Сидоров Александр Валерьевич,

Достаточно ресурсоемко, если учитывать, что в системе около 4 млн. записей. При запуске элемента для настройки прав доступа получаю такую ошибку: "Превышено ограничение 200000 записей при выгрузке данных объекта". Как можно ее обойти? Как-то зациклить элемент БП?

P.s. нашел данную статью: https://community.terrasoft.ru/questions/snyat-ogranichenie-na-koliches… с подобной ошибкой. Но данное решение кажется радикальным. На прод среде недопустимо запускать БП на 4 млн записей. Какие могут быть обходные пути?

Ну вообще можно сделать циклами через порционную вычитку данных. Но может быть вам будет проще выделить все записи через Действия -> Выбрать все и Настроить права доступа? Я попробовал - у меня 400к записей выделилось. 

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

Арнур Келгенбаев,

Или вот эту штуку можно посмотреть 

https://marketplace.terrasoft.ua/app/access-rights-setup-wizard-creatio

Арнур Келгенбаев пишет:

Достаточно ресурсоемко, если учитывать, что в системе около 4 млн. записей. При запуске элемента для настройки прав доступа получаю такую ошибку: "Превышено ограничение 200000 записей при выгрузке данных объекта". Как можно ее обойти? Как-то зациклить элемент БП?

Сделайте в SQL работу с правами. Те же самые таблицы, однотипное добавление и удаление. Работает в разы быстрее

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

Доброго времени суток!

В управлении конфигурацией во вкладке "Администрирование: доступ к объектам" для раздела "Контакт" хочу настроить права доступа всем пользователям с организационной ролью "Консультанты". Во вкладке "Доступ к объекту" есть только одно правило для роли "Консультанты" с разрешением на чтение записей, во вкладке "Доступ к записям по умолчанию: чтение" тоже всего одно правило для чтения записей, созданных всеми сотрудниками, для "Консультантов". Вне зависимости от наличия правила доступа во вкладке "Доступ к записям по умолчанию: чтение" консультант видит 236 записей. Если прогнать БП, который дает права доступа для записей, за которыми числится ответственным консультант (их в системе 2 тестовые записи), то в разделе "Контакты" консультант будет видеть 238 записей. Я хочу разобраться, по какому принципу система отображает эти 236 записей. Подскажите, пожалуйста, в чем может быть причина? Для сведения, в системе свыше 3 млн контактов. Как можно найти признак, который объединяет эти записи?

Изображение удалено.

Нравится

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

Добрый день!

Насколько я понимаю, вопрос в том, почему при розданных правах консультант видит 236 записей, а если создать 2 тестовых, в которых ответственным назначить консультанта, и прогнать БП, который раздает права - консультант будет видеть 238 записей?



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

Судя по большому количеству записей данного раздела в вашей системе - можно предположить, что они были импортированы через Excel или путем обогащения данных. В таком случае есть вероятность, что это и вызывает конфликт. Т.к. импортированные записи могут не совпадать с признаком "созданная сотрудником".

Если это поможет, консультант должен видеть ~ 3млн контактов, верно?

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

Добрый день!

Подскажите, как можно удалить запись из GridData? Если можно с примером.

И правильно ли я понимаю, что удаление элемента из GridData не повлияет на удаление? Если влияет на БД, то как можно менять данные, которые приходят из БД, не меняя их в самой БД? Либо как можно изменить запрос, который Creatio отправляет в БД?

 

			onGridDataLoaded: function(response) {
				this.callParent(arguments);
 
				let items = response.collection.collection.items;				
 
				items.forEach(item => {
					let itemOwnerValue = item.values.Owner.value;
 
					if (itemOwnerValue !== Terrasoft.SysValue.CURRENT_USER_CONTACT.value) {		
						this.console.log(" VALUES NOT EQUAL");
					}
				});

Вместо "this.console.log(" VALUES NOT EQUAL");" хочу вставить удаление нужного элемента из DataGrid, чтобы он не отображался. 

И правильно использую метод onGridDataLoaded? Или нужно другой?

Нравится

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

Или как можно заменить набор данных в dataGrid?

 

			onGridDataLoaded: function(response) {
				this.callParent(arguments);
 
				let items = response.collection.collection.items;	
				let newItems = [];
				let newIndex = 0;
 
				items.forEach((item, index) => {
					let itemOwnerValue = item.values.Owner.value;
 
					if (itemOwnerValue === Terrasoft.SysValue.CURRENT_USER_CONTACT.value) {		
						newItems[newIndex] = items[index];
						newIndex++;
					}
				});
 
				response.collection.collection.items = newItems;
 
 
			},

 

Удалить из GridData, но не удалять из БД - т.е. скрыть от пользователя запись. По мне самый простой способ скрыть от пользователей запись раздела - настроить полномочия и отобрать у пользователей право на чтение этой записи.

Добрый день, Роман.

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

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

Добрый день!

Где можно ознакомиться со списком доступных методов, их описанием?

Нравится

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

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

 

Найти информацию по разработке в Creatio можно на Академии (раздел 'Для разработчика'), также много полезной информации и ответов на разного рода вопросов по разработке можно найти здесь на community.

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

Добрый день!

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

Думал сделать через фильтр, но фильтр пользователь может убрать и увидеть все записи.

Нравится

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

Доброе утро.

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

Ознакомиться более подробно, как работает данная функциональность можно по этой ссылке на Академии.

Для настройки подобной функциональности Вам потребуется реализовать бизнес-процесс, который будет запускаться по сигналу добавления или изменения записи в таблице раздела (а именно поля 'Ответственный'), а в самом бизнес-процессе нужно будет настроить раздачу прав доступа с помощью специального элемента 'Изменить права доступа', подробнее о нём читайте по ссылке.

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

Алла Савельева,

Подскажите, а можно ли для реализации этой задачи удалить нужные данные из объекта, который возвращается для отображения, в методе loadGridData?

Роман, думаю на ваш вопрос уже ответили в посте https://community.terrasoft.ua/questions/filtr-v-metode-loadgriddata-mn…

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

Добрый день!

 

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

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

 

Код фильтрации:

initFixedFiltersConfig: function() {
            	console.log("initFixedFiltersConfig");
                // Создание конфигурационного объекта.
                var fixedFilterConfig = {
                    // В качестве схемы объекта для фиксированных фильтров указывается схема объекта раздела.
                    entitySchema: this.entitySchema,
                    // Массив фильтров.
                    filters: [
                        // Фильтр ответственного.
                        {
                            // Название фильтра.
                            name: "Owner",
                            // Заголовок фильтра.
                            caption: this.get("Resources.Strings.OwnerFilterCaption"),
                            // Фильтрация данных из колонки [Owner].
                            columnName: "Owner",
                            // В качестве значения по умолчанию указывается контакт текущего пользователя.
                            // Значение берется из системной настройки.
                            defValue: this.Terrasoft.SysValue.CURRENT_USER_CONTACT,
                            // Тип данных — справочник.
                            dataValueType: this.Terrasoft.DataValueType.LOOKUP,
                            // Фильтр.
                            //filter: BaseFiltersGenerateModule.OwnerFilter
                        }
                    ]
                };
                // Колонке [FixedFilterConfig] присваивается ссылка на созданный конфигурационный объект.
                this.set("FixedFilterConfig", fixedFilterConfig);
            }
		}

 

Нравится

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

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

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

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

Здравствуйте, имеется проблема с фильтрацией внутри раздела.

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

 

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

Спасибо!

Нравится

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

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

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