Вопрос

Коллеги, всем привет! Подскажите, пожалуйста, может кто сталкивался с такой задачей/проблемой.

Нужно изменить OpportunityConfigurationConstants, точнее дополнить. Но данный модуль находится не в пользовательском пакете. Нужно сделать замещающий, а заменить не получается, потому что  в новых версиях данное действие запретили. Ошибка выскакивает "Замещение модулей запрещено". Что делать? Создавать новый модуль и копировать всё-всё из родительского, но при этом не замещать родительский. Или добавлять туда только то, что я хочу дописать. Или вообще что-то другое?

У меня такой же вопрос

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

Можно создать свой модуль и  внести нужные правки (новые константы) и использовать там где вам нужно.

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

При добавлении зависимости следующим образом:

"RoundPropertyPriceWithDiscount": {
    dependencies: [
        {
             columns: ["PropertyPriceWithDiscount"],
             methodName: "roundPropertyPriceWithDiscount"
        }
    ]
}

и обработки методом:

roundPropertyPriceWithDiscount: function() {
	this.roundDoubleValue("PropertyPriceWithDiscount");
},
roundDoubleValue: function(propertyName) {
	var value = this.get(propertyName);
	var rounded = Math.round(value);
 
	if (rounded != value) {
		this.set(propertyName, rounded);
	}
},

происходит зацикливание. Кейс:

вводим в поле 5,56 - запускается метод, записывающий в поле 6,00, далее запускается еще раз (очевидно), проверяет что значение в поле равно его округленному значению (6,00 == 6,00) и значение в поле НЕ ПЕРЕЗАПИСЫВАЕТ. И вот далее идет ТРЕТИЙ запуск, в котором this.get() возвращает старое значение поля - 5,56. Ну и, естественно, это бесконечный цикл. Каким образом работает сей механизм? Если мне не изменяет память - в прошлых версиях такого не было.

7.13.1.769_SalesEnterprise_Softkey_MSSQL_ENU

 

UPD: Подписка на изменение поля вручную решает вопрос

this.on("change:PropertyPriceWithDiscount", this.roundPropertyPriceWithDiscount, this);

 

У меня такой же вопрос

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

Добрый день!

Если я правильно понял Ваш бизнес-кейс, то вы его неправильно реализовали. Если при изменении одного поля нужно взять значение этого поля, округлить его и записать в другое поле, то вам нужно делать this.set("RoundPropertyPriceWithDiscount", value);

Тёскин Дмитрий Валерьевич,

Нет, я все правильно написал. Округление значения в том же самом поле. 

RoundPropertyPriceWithDiscount это просто название атрибута

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

Добрый день.

При создании массового обращения. Пользователю в процессе предлагается сделать выбор.  Он может закрыть вкладку.

И новом процессе начать создание массового инцидента.

Вопрос можно ли из процесса закрыть процесс запущенный ранее.

Как это реализовать?

У меня такой же вопрос

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

Можно в скриптаске

Тема неоднократно обсуждалось, посмотрите например этот пост

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

Как убрать поиск у справочного поля в лукапе. Поле на странице раздела.

 

У меня такой же вопрос

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

По аналогии с LookupPageViewGenerator реализуйте свое кастомное окно и вызывайте его в методе openLookup там, где Вам нужно.

Более подробно посмотрите обсуждение в этой теме.

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

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

У меня такой же вопрос

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

Доброе утро.

По классике это можно сделать разделением прав доступа.

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

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

Александр Тыра,

Для схемы таблицы 'Средство связи контакта' включаете администрирование по записям.

Если есть потребность корректируете права доступа на записи с помощью настройки специального бизнес-процесса. Например, если Вам нужно скрывать только телефоны сотрудников, а e-mail показывать.

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

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

мне нужно скрыть не поля в контактах а сами контакты типа "сотрудник" из списка контактов для сотрудников

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

В раздела Контакты можно отфильтровать все записи по нужному вам типу сотрудников или убрать доступ у пользователей к Контактам в зависимости от того что вам нужно

Григорий Чех, 

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

Александр, почитайте в академии о правах доступа на записи. Если прав на чтение нет, то запись не будет видна ни в разделе, ни в окне выбора из списка.

Зверев Александр,

в этом и вопрос, как можно сделать что бы не было видно именно в списке раздела контакты

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

Александр Тыра,

Пример фильтрации в разделе

getFilters: function () {
    var sectionFilters = this.callParent(arguments);
    this.setCommunicationFilter(sectionFilters);
    return sectionFilters;
},
setCommunicationFilter: function (filterCollection) {
    var testAttr = this.get("TestAttr");
    var isActive = this.get("IsActiveTestAttr");
    if (!isActive) {
         filterCollection.removeByKey("FilterContactCommunication");
    } else {
    filterCollection.add("FilterContactCommunication", 
         this.Terrasoft.createColumnFilterWithParameter(
                this.Terrasoft.ComparisonType.CONTAIN, "[ContactCommunication:Contact:Id].Number", testAttr));
         }
},

 

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

Есть два справочника: "Запрос" и "Расчет к запросам".
В "Запрос" крепится деталь, где указывается поле из второго справочника (см.Рис 1.2.).
 

Как можно через кнопку(JS на клиенте/сама кнопка уже есть) в справочнике "Запрос" узнать Id прикрепленной детали?

 

 

 

 

 

 

 

 

 

У меня такой же вопрос

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

Вам нужно получить ID детали или Id определённой записи из детали?

Получить Id прикрепленной детали, у неё найти поле "Статус(usrStatus)" и сверить что поле = "Согласован"

Это первый опыт работы с деталями

Т.е. всё же Id записи  "Расчет к запросам" связанный с текущим Запросом?
А кнопка у вас где располагается?
 

Коновалов Игорь,
В справочнике "Запрос"

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

Коновалов Игорь,

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

Так в том и дело, что нет разницы сколько на данный момент записей в детали одна или несколько. Все они хранятся в коллекции GridData детали.
Вы уверенны, что эта логика должна отрабатывать на клиентской части?
Т.к. в итоге вам нужно будет делать esq-запрос к всё той же детали  для получения значения поля "Статус(usrStatus)" (т.к. не факт, что в реестре детали выведено поле "Статус(usrStatus)" )
Если всё же на клиентской части, то 
в BasePageV2 есть коллекция this.entitySchemaInfo.details,
И есть метод var detailId = this.getDetailId(detailName);
Вы можете на странице Запроса (где кнопка) создать адресное сообщение (publish)
И при клике на кнопку его отправлять. Адресатом будет detailId.
А в схеме детали с реестом (Расчет) добавить это же сообщение, но уже как подписчика (subscribe).И при получении этого сообщения возвращать this.get("GridData")
 

Как вариант можно использовать сообщения например такой сценарий

1)по нажатии вашей кнопки на карточке публикуется сообщение

2) в дели по подписке на сообщение перебираются все строки данных и формируется в массив список id записей у которых статус = согласован. Сформированый массив передается в карточку.

 

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

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

У меня такой же вопрос

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

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

Зверев Александр, поле Тип заполнено

Значит, не тот тип, к которому относится карточка.

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

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

Всё сделал, в профилях прописали, авторизация проходит, даже тестовое сообщение создалось. В настройках папки показывает.

Но синхронизация не идёт!

В чём может быть причина?

У меня такой же вопрос

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

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

К сожалению, по Вашему описанию проблемы, сложно сказать что-то конкретное. Какие настройки были выполнены? Какой почтовый сервер используется?

Рекомендую ознакомиться со статьей по вопросам, возникающим при работе с почтой и статьей по настройке учетной записи почты.

Если данная статья не поможет решить описанную проблему, обратитесь в службу поддержки Террасофт для консультации по этому вопросу.

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

При замещении метода getDeduplicationSettings из утилитного модуля DuplicatesSearchUtilitiesV2 в схеме LocalDuplicateSearchPageV2 и добавлении пользовательской логики, не отрабатывает с первого раза. При повторном и последующем использовании все выполняется. 

У меня такой же вопрос

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

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

Григорий Чех,

Базовая логика как раз таки отрабатывает отлично, а вот пользовательский код как раз таки фаталит

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

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

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

У меня такой же вопрос

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

Для начала нужно в браузере пунктом меню «Inspect» открыть исходники нужного места в системе и выяснить, как называется схема страницы, которую Вы хотите доработать. Затем вносить изменения в её коде. Поскольку это не обычная карточка раздела, заполнение должно будет делаться программно.

Более точно можно сказать, если будет ясно, что именно куда именно добавить: в вышеупомянутый Вами LocalDuplicateSearchPageV2, в DuplicatesPageV2 или же ещё куда-то.

Также обратите внимание на дополнение Automatic duplicates merge в маркете, которое модифицирует логику слияния дублей. Возможно, в ней есть подобные решения.

Добрый день!

На данный момент в базовой версии bpm'online  выполнять настройку колонок можно только для массового поиска дублей

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

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