Технические вопросы
7.x

Доброго дня!
В розділі Єдине вікно є три панельки.
Мені потрібно зробити так, що коли робиться прокрутка сторінки центральна панелька залишалася на місці(зробити фіксовану позицію контейнера).
Я змінив стилі для центрального контейнера, вказавши position: fixed, але як результат центральна панелька заховалася під іншою панелькою(правою).

Нравится

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

Стандартными средствами провести данную манипуляцию невозможно. Судя по скриншоту, Вы указали fixed для одного элемента из правой панели и он, естественно, зафиксировался по правой сторноне поверх остальных контейнеров.

Более подробно о позиционировании с использованием css, Вы можете почитать пройдя по этой https://developer.mozilla.org/en-US/docs/Web/CSS/position ссылке.

Показать все комментарии
взаимосвязь
Деталь Взаимосвязи
Технические вопросы
7.x

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

У нас используется BPMonline BankSales 7.5.0.1275

В разделе Юр лица перенесли деталь Взаимосвязи Юр. лица с вкладки Общая информация на вкладку Контакты и структура и теперь она не хочет функционировать. А именно: при добавлении записи открывается карточка детали, в которой на тех местах, где должно быть указано наше юрлицо зияет пустота (само поле не отображается - см. скриншот).

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

Нравится

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

Проверьте, что справочник "Тип взаимосвязи" заполнен (имеете значения)

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

Добрый день, Андрей!
Перенос детали из вкладки на вкладку, скорее всего подразумевал ее создание вручную?
Или Вы ее перенесли каким-то другим методом?

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

Михаил, я думаю, что это делалось вручную через дизайнер раздела. На вкладке Общая информация удалили, а на вкладке Контакты и структура добавили. Я сам попробовал ее добавить указав привязку как на скриншоте. Результаты, увы, тот же. Деталь не функционирует.

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

За страницу редактирования этой детали отвечает схема AccountRelationshipDetailPageV2. Посмотрите, пожалуйста, не замещена ли эта схема?

В случае отсутствия замещений откройте AccountPageV2.
Там будут строки:

	{
		"operation": "remove",
		"name": "RelationshipTabContainer"
	},
	{
		"operation": "remove",
		"name": "Relationships"
	}

(убрать вкладку, убрать деталь)

Удалите эти строки, для восстановления детали.

Для решения проблемы рекомендуем обратиться в службу поддержки, написав на support[at]terrasoft.ru

Алексей, огромное спасибо за наводку. Все получилось.

Итак, что мы имеем. В результате работы мастера разделов в указанном нами пакете создаются замещающие схемы AccountRelationshipDetailPageV2 и AccountRelationshipDetailV2, а в схему AccountPageV2 добавлена привязка детали к основному объекту раздела

"VwAccountRelationship": {
		"schemaName": "AccountRelationshipDetailV2",
		"entitySchemaName": "VwAccountRelationship",
		"filter": {
			"detailColumn": "Account",
			"masterColumn": "Id"
		}
}

Добавлен элемент View для этой детали

{
		"operation": "insert",
		"name": "VwAccountRelationship",
		"values": {
			"itemType": 2
		},
		"parentName": "ContactsAndStructureTabContainer",
		"propertyName": "items",
		"index": 2
}

Ну и был удален изначальный элемент View, который связан с деталью под названием Relationships

	{
		"operation": "remove",
		"name": "Relationships"
	}

Так вот, вся эта схема НЕ работает. Но ключевая наводка здесь была в названии Relationships (а никакой не AccountRelationship или vwAccountRelationShip). Если взглянуть на объявление этой детали в родительской схеме AccountPageV2 из пакета UIv2, то можно заметить, что она объявлена немного не так как обычно объявляются детали

	Relationships: {
		schemaName: "AccountRelationshipDetailV2",
		filterMethod: "relationshipDetailFilter",
		defaultValues: {
			AccountA: {
					masterColumn: "Id"
					}
			}
	}

В результате, чтобы добиться нормального функционирования этой детали на новом месте, достаточно просто перенести ее элемент представления с помощью команды move

{
	"operation": "move",
	"parentName": "ContactsAndStructureTabContainer",
	"propertyName": "items",
	"name": "Relationships",
	"index": 2,
	"values": {
		"itemType": Terrasoft.ViewItemType.DETAIL
	}
}
Показать все комментарии
QuickFilter
фильтрация раздела
Технические вопросы
7.x

Добрый день!

Необходимо отфильтровать из кода, по кастомному полю раздел. Нашел QuickFilterModuleV2, но не могу никак разобраться как его использовать. Во время дебага из браузера удалось при вызове метода showQuickFilter отобразилось поле редактирования фильтра. Но в QuickFilterModuleV2 все методы являются protected или private, и к ним нет доступа.

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

Нравится

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

Здравствуйте, есть две темы, фильтрация раздела из другого раздела:
http://www.community.terrasoft.ru/forum/topic/12640

Фильтрация текущего раздела из текущего раздела:
http://www.community.terrasoft.ua/forum/topic/15943

"Мотков Илья" написал:

Здравствуйте, есть две темы, фильтрация раздела из другого раздела:

http://www.community.terrasoft.ru/forum/topic/12640

Фильтрация текущего раздела из текущего раздела:

http://www.community.terrasoft.ua/forum/topic/15943


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

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

Здравствуйте.
Интересует вопрос как изменить обработку нажатия на иконку почты (или на сам адрес почты) в карточке контакт.
Сейчас при нажатии на иконку почты (или на сам адрес почты) вызывается программа Outlook. Мне это не нужно. Я хочу, чтобы при нажатии на эту иконку стартовал мой определенный бизнесс-процес. Это можна как-то реализовать? Подскажите пожалуйста. Спасибо!

Нравится

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

Добрый день!

Переопределите метод onTypeIconButtonClick схемы NUI.BaseCommunicationViewModel, реализовав в методе запуск бизнес процесса.

Алексей, а можете скинуть пример кода и последоватьльность действий, если допустим нужно чтобы эта иконка запускала процесс UsrSendEmail и чтобы в этот процесс заходил (как параметр) также Емайл на который мыкликали. (если не сложно, то сделайте скриншоты всех внесенных изменений)

Спасибо Вам большое за Ваши ответы!

Здравствуйте, Николай!

Боюсь, что не смогу Вам помочь, т.к. я знаю где живет та или иная функциональность, но я не разработчик:smile:

Я понял. Спасибо! Ну хоть скажите мне нужно дописать переопределенную эту функцию onTypeIconButtonClick в Схема отображения карточки контакта (ContactPageV2)? Правильно?

Данная задача делится на несколько:
1) Создать поле, которое будет хранить информацию о email адресе
2) Создать кнопку
3) Создать обработчик события этой кнопки

Все должно быть решено на уровне страницы ContactPageV2.

Николай, приближенный алгоритм:

- создать свой модуль c методом onLinkClick, который будет обращаться от BaseCommunicationViewModel:

- заместить ContactCommunicationDetailV2 и поменять базовый модуль BaseCommunicationViewModel на новый (скриншот, где упоминается базовый модуль):

Показать все комментарии
Деталь Средства связи
Маска
Технические вопросы
7.x

Коллеги. доброго вечера!
Каким образом можно изменить маску ввода E-mail в детали "Средства связи контрагента"? Проблема в том, что она сейчас не принимает адрес в домене *.company - в маске стоит ограничение на 4 символа в строке после точки (а нужно 7)

Нравится

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

В общем и целом расписано здесь (см. пример 2)

Но нужно сказать, что у нас на версии 7.5 этот пример оказался некорректен в плане переопределения метода addItem, так как он не возвращает никаких item. Поэтому пришлось его полностью скопипастить из родительской BaseCommunicationDetail и заменить строчку

this.addColumnValidator("Number", newItem.validateField, newItem);

на

this.addColumnValidator("Number", this.validateCommunicationFormat, newItem);

Ну и, конечно, определить метод validateCommunicationFormat, в котором проверять в зависимости от типа средства связи по регэкспу формат и возвращать объект с invalidMessage и fullInvalidMessage.

Андрей, большое спасибо, всё получилось!

{
                validateEmailFormat: function (value) {
                    var invalidMessage = "";
                    var isValid = true;
                    var communicationType = this.get("CommunicationType");
                    var number = value || this.get("Number");
                    // Проверка введенного E-mail на соответствие маске ввода.
                    if (communicationType.value == "ee1c85c3-cfcb-df11-9b2a-001d60e938c6") {	// E-mail
                        isValid = (Ext.isEmpty(number) || new RegExp("^[0-9a-z_]+@[0-9a-z_]+\.[a-z]{2,10}$").test(number));
                        if (!isValid) {
                            invalidMessage = "Укажите E-mail по формату";
                        }
                    }
                    return {
                        fullInvalidMessage: invalidMessage,
                        invalidMessage: invalidMessage
                    };
}

Замечательно. Наверное стоит еще добавить дефис в список символов допустимых в E-mail. Только нужно добавлять его либо самым последним перед ], либо первым - сразу после [

ещё вопрос возник - как заставить код принимать русские символы в e-mail? Например, для info@сайт.рф. Вариант ^[0-9a-z_-\.]+@[0-9a-zа-яё_-\.]+\.[a-zа-яё]{2,10}$ почему-то не срабатывает

Здравствуйте, Антон!

Ваш вариант не будет работать.
Корректной маской будет:

var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA--ЯА-Я0-9.-]+\.[a-zA--яА-Я]{2,10}$/;

Алексей, предложенный Вами вариант тоже не сработал. Может быть, для работы с кириллицей что-то дополнительно подключить нужно?

Несколько уточняющих уточняющих вопросов:
1) Вы замещали EmailHelper?
2) После замещения EmailHelper Вы скопировали весь код из материнской схемы и заменили одну строку определения параметра emailPattern?
3) После сохранения схемы необходимо очистить кэш браузера. Вы это сделали?

1. Замещал BaseCommunicationDetail
2. -
3. -

Тогда:
1) Заместите EmailHelper. В замещающую схему вставьте следующий код:

define('EmailHelper', ['ext-base', 'terrasoft', 'EmailHelperResources', 'ConfigurationConstants', 'MaskHelper'],
	function(Ext, Terrasoft, resources, ConfigurationConstants, MaskHelper) {
 
		function isEmailAddress(emailAddress) {
			var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA--яА-Я0-9.-]+\.[a-zA--яА-Я]{2,9}$/;
			return emailPattern.test(emailAddress);
		}
 
		function getEmailUrl(emailAddress) {
			if (isEmailAddress(emailAddress)) {
				return 'mailto:' + emailAddress;
			}
			return '';
		}
 
		function onEmailUrlClick(emailAddress) {
			var url = getEmailUrl(emailAddress);
			if (!Ext.isEmpty(url)) {
				var win = window.open(url, '', 'height=1,width=1');
				setTimeout(function() {
					win.close();
				}, 1000);
			}
		}
 
		return {
			isEmailAddress: isEmailAddress,
			getEmailUrl: getEmailUrl,
			onEmailUrlClick: onEmailUrlClick
		};
	});

2) Очистите кэш.

В результате Вы сможете создавать средства связи с типом Email с кириллическими символами в домене (например *.почта.рф) , а также с длиной домена в 9 символов (например, *.travel)

Алексей, работает, спасибо!

Показать все комментарии
ошибка
Технические вопросы
7.x

Через Администрирование изменил Доступ с Х на галочку
и потом
вышло следующее

Date: 15.03.2016 17:37:44
Date (UTC): 15.03.2016 14:37:44

Exception Message: Строка не распознана как действительное логическое значение.
Exception Type: System.FormatException
Exception Source: mscorlib

Exception Stack Trace:
   в System.Boolean.Parse(String value)
   в System.ComponentModel.BooleanConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)

SessionID: xv5awqtt5egrj15cfvs4dtfd
Request URL: /0/ViewPage.aspx?Id=5e5f9a9e-aa7d-407d-9e1e-1c24c3f9b59a
Request Path: /0/ViewPage.aspx
Request UrlReferrer: a href="http://localhost:7500/0/Nui/ViewModule.aspx

Request"
title="http://localhost:7500/0/Nui/ViewModule.aspx

Request"
>http://localhost:7500/0/Nui/ViewModule.aspx

Requesta> Type: GET
User Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
User Host Address: ::1
User: Super
Is Authenticated: True
Authentication Type: Forms
Is Secure Connection: False

Application Version: 7.5.0.1122
Application Path: D:\WWW\Logistics75_Enterprise\Terrasoft.WebApp\
Application Virtual Path: /0
Application Trust Level: Full
Machine Name:
Is Local: True

Process ID: 544
Process Name: w3wp.exe
Process Account Name: NT AUTHORITY\СИСТЕМА
Thread Account Name: NT AUTHORITY\СИСТЕМА
OS Version: Microsoft Windows NT
Net Framework Version: 4
DBExecutor Type: MSSqlExecutor

И сейчас я даже не могу зайти в Управление конфигурацией. Выводит сообщение выше.

Нравится

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

и теперь при изменении даже ФИО пользователя выводиться ошибка.
Строка не распознана как логическое значение

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

Для проведения анализа прошу направить описание ошибки и обезличенную копию БД+номер версии продукта на support@terrasoft.ru

При аналогичном действии была другая проблема, но решали её изменением администрирования в конфигурации объекта, а не на странице администрирования.

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

Здравствуйте, проблема появилась. Пытаюсь сохранить email или компании и появляется сообщение, что недостаточно прав для добавления записи в объект. Ок, иду в права, нахожу в разделах кампанию или email, пытаюсь поставить галочку администрируется по операциям, а мне говорят: "Невозможно сохранить изменения элемента "Campaign", так как он создан сторонним издателем или установлен из файлового архива". Или хочу убрать галочку администрируется по записям, но система говорит что невозможно понизить права. В доступе к записям по умолчанию добавлено правило для всех сотрудников. Подскажите, где посмотреть и в чем причина. Раньше(недели 2 назад) все работало и вроде никаких изменений в правах я не делал.

Нравится

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

Здравствуйте, Павел!

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

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

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

Павел, необходимо создать замещающий объект для объекта, в котором требуется изменить права:
1) Зайдите в конфиграцию;
2) Выберите пакет Custom;
3) Нажмите Добавить → Замещающий объект;
4) В дереве объекта (слева) выберите корневое значение UsrEntity1;
5) Выберите в настройках свойств (справа) Родительский объект (т.е. объект в котором Вы собираетесь права изменять), подтвердите выбор;
6) Проставьте в свойствах признаки для администрирования по записям или операциям;
7) Опубликуйте объект.

Добрый день!

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

С лицензиями была и правда беда, у пользователя небыло bpmonline marketing campaigns on-site. Поставил, вышел, зашел и ничего не изменилось. Пикча

Здравствуйте, Павел!

После изменения настроек лицензий - необходимо почистить REDIS.
Вы выполняли это действие?

"Липатов Юрий Сергеевич" написал:

Здравствуйте, Павел!

После изменения настроек лицензий - необходимо почистить REDIS.

Вы выполняли это действие?


Почистил, ничего не изменилось.
upd Компании теперь сохраняют, а email все ещё пишет, что недостаточно прав. Права стоят идентичны компании.

Добрый день, Павел!

Для анализа вопроса необходимо обратиться в службу поддержки support@terrasoft.ru, указав продукт, версию, адрес сайта/возможные параметры подключения.

Показать все комментарии
Технические вопросы
7.x

Які причини появи цієї помилки при створенні контрагента?

Нравится

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

Добрый день.

В данном сообщение говорится о нарушение целостности базы данных.
В момент вставки новой записи в таблицу Контрагент происходит заполнение поля Region идентификатором, которого нет в таблице Region.

Показать все комментарии
Технические вопросы
7.x

Подскажите, как правильно сделать поиск в детали "Продукт в заказе" по добавленному полю "Код" ("как в 1С") прямо в реестре.
Есть ли фэншуйное решение?

Нравится

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

Добрый день!

Не совсем понятно, что Вы спрашиваете.

1) Если имеется ввиду поиск по детали в реестре раздела, то рекомендую Вам воспользоваться агрегирующим фильтром. Пример прикреплен.

2) Если имеется ввиду поиск внутри реестра детали, то начиная с версии 7.6 там уже присутствует фильтр. Пример 2 прикреплен.

Спасибо!

Было бы все так просто :) Во вложении пример того, как работает система по названию продукта - начинаем вводить название, она предлагает нам выбор. Нужно аналогичный лукап по коду сделать.

А какая версия продукта?

В 770 есть поле Client в OpportunityPageV2, которое смотрит на два справочника.
Также есть схема ProductSelectionModule - поиск по двум строковым полям объекта "Продукт".

Угу, 7.7, спасибо, буду поглядеть!

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

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

Нравится

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

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

Есть несколько вариантов решения этой задачи:

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

2. Править в конфигурации, данная логика описана в LookupQuickAddMixin, метод onLookupDataLoaded, вызывается в basepage.

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