В системі дуже не вистачає можливість інтеграції контактів і календаря по CardDav і CalDav. Такі інтеграції є універсальними та дозволять позбивитись тих обмежень, які є на сьогодняшній день в поточних інтеграціях в Microsoft Exchange та Google Workspace, а саме: відсутність інтеграції контактів, та платність обох підписок. 

 

На сьогоднішній день, в зв'язку з ситауацією в країні, співробітники не завжди постійно знаходяться за компьютером, тому вкрай важливо в календарі телефону бачити заплановані активності без необхідності заходити в застосунок. Тим більш, що в телефоні реалізовані зручні віджети.

Також, часто інтеграція з телефонією реалізована таким чином, щоб співробітник відповідав через софт-фон, тому надважливо бачити під час дзвінка ім'я клієнта та назву компанії. 

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

Доброго дня!



Дуже дякую за вашу ідею. Ми зареєстрували його в резерві нашої команди R&D для розгляду та впровадження в майбутніх випусках програми. Дякуємо, що допомагаєте нам покращувати наш продукт.

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

Добрый день.

 

Есть раздел "Контакты", который может содержит записи с типом "Сотрудник".

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

 

Вопрос: В каких случаях необходимо/эффективнее задействовать еще и раздел "Сотрудники"?

//Чтобы его заполнить все равно приходится обращаться к записям раздела "Контакты", а для создания записи в разделе "Пользователи" достаточно предварительно создать запись в "Контакты" .

Нравится

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

Это два разных объекта, Contact и Employee. Во втором есть справочное поле — ссылка на контакт и дополнительная информация, связанная с должностью и руководителем, началом, концом карьеры, испытательным сроком и увольнением.

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

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

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

Нравится

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

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

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

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));
         }
},

 

Доброе утро.

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

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

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

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

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

Если есть потребность корректируете права доступа на записи с помощью настройки специального бизнес-процесса. Например, если Вам нужно скрывать только телефоны сотрудников, а 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));
         }
},

 

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

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

 

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

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

Нравится

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

Rinat,

Добрый день!

Данную фильтрацию можно сделать

1. либо через бизнес правила:

1) через код https://academy.terrasoft.ru/documents/technic-sdk/7-13/primer-primenen…

2) через мастер страницы (https://monosnap.com/file/ooYS71HNPA5gozrb204C1N5gCvCNeU)

2. либо в коде через параметр фильтрации атрибута

пример:

attributes: {
			"Contact": {
				lookupListConfig: {
					"filters": [
                        function() {
                            var filterGroup = Ext.create("Terrasoft.FilterGroup");
                            var galochaFilter = Terrasoft.createColumnFilterWithParameter(
                            	Terrasoft.ComparisonType.NOT_EQUAL, "Galocka", true);
                            filterGroup.add("filter1", galochaFilter);
                            return filterGroup;
                        }
                    ]
				}
 
			}
		}

 

Ринат, здравствуйте!

На вашем втором скриншоте есть выпадающий список (там где "ФИО") в этом списке должно будет появиться добавленное поле. 

Так же через, по второму скриншоту, нажав на "Вид" Вы сможете вывести колонку в реестр модального окна

Гриценко Игорь, а как сделать чтобы он по умолчанию этот отбор применял и пользователю не пришлось руками этот отбор вбивать. Делаю что-то на подобии "неактивных" пользователей.

Rinat,

Добрый день!

Данную фильтрацию можно сделать

1. либо через бизнес правила:

1) через код https://academy.terrasoft.ru/documents/technic-sdk/7-13/primer-primenen…

2) через мастер страницы (https://monosnap.com/file/ooYS71HNPA5gozrb204C1N5gCvCNeU)

2. либо в коде через параметр фильтрации атрибута

пример:

attributes: {
			"Contact": {
				lookupListConfig: {
					"filters": [
                        function() {
                            var filterGroup = Ext.create("Terrasoft.FilterGroup");
                            var galochaFilter = Terrasoft.createColumnFilterWithParameter(
                            	Terrasoft.ComparisonType.NOT_EQUAL, "Galocka", true);
                            filterGroup.add("filter1", galochaFilter);
                            return filterGroup;
                        }
                    ]
				}
 
			}
		}

 

Сидоров Александр В., не совсем понял как в мастер страницы попасть. Это не оно? 

Rinat,

Да, оно. Справа сверху есть кнопка перехода к бизнес правилам

Сидоров Александр В.,Спасибо.

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

Кейс:

Есть список контактов в системе

настроена интеграция с ЛДАП люди аторизуются все вроде ничего.

добавили учетку в ЛДАП с фио как в контактах и при синхронизации с лдап создалась учетная запись в BPM но мало того так еще и создался контакт одноименный

теперь у меня 2 одинаковых контакта что есть неверно.

Как настроить интеграцию с ЛДАП чтоб при попадание УЗ в BPM не создавались контакты а использовались те что уже есть.

р.ы. нельзя изменить процесс сперва контакты создаются в BPM

а учетка в ЛДАП потом.

Нравится

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

Добрый день, Алексей.

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

Антон Малий,

 

bpm'online service enterprise 7.11.0.3122

если это было обновлено то как можно только часть отвечающую за интеграцию с ЛДАП обновить ?

Добрый день, Алексей.



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

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

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

Собственно вопрос в заголовке.
Дело в том, что в лиде это отдельные схемы контейнеров LeadAccountProfileSchema и LeadContactProfileSchema.
А мне нужно вывести список контактов выбранного контрагента.
Как организовать данный фильтр? Пробовал замещать карточку лида и в ней указывать но не работает.
Да и не понятно какие колонки они используют? Такие: Account и Contact? Или что-то другое?

Можете дать готовое решение или хотя-бы объяснить всё понятно.

Нравится

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

Добрый день, Максим!

Думаю, самый простой вариант - добавить бизнес-правило. Если у Вас 7.10 - можно через мастер, если нет - то в карточке. Поля, которые Вам нужно - QualifiedContact и QualifiedAccount, это можно подсмотреть в объекте. Просто Contact и Account - это текстовые поля, а не справочные. Насколько я понимаю, потому что в момент создания лида не всегда они известны, да и можно написать название с ошибками.

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

Добрый день, Максим!

Думаю, самый простой вариант - добавить бизнес-правило. Если у Вас 7.10 - можно через мастер, если нет - то в карточке. Поля, которые Вам нужно - QualifiedContact и QualifiedAccount, это можно подсмотреть в объекте. Просто Contact и Account - это текстовые поля, а не справочные. Насколько я понимаю, потому что в момент создания лида не всегда они известны, да и можно написать название с ошибками.

Спасибо. Помогло с этими полями - QualifiedContact и QualifiedAccount!

"Сазонов Максим" написал:А мне нужно вывести список контактов выбранного контрагента.

Вывести где ?
по нажатию кнопки, по наступлению какого-то события или состояния, при открытии карточки ?
В общем и в целом ничего сложного в Вашем кейсе нет.
Необходимо задать себе несколько вопросов:
1) Как связаны целевые Контрагент и Контакты (я подразумеваю что речь идет о детали "Контакты Контрагента") ?
2) Что мне необходимо сделать концептуально, н/п "У меня есть справочное поле контакт, и мне необходимо чтобы пользователь выбрал там значение из "открывающегося окна выбора"/"из выпадающего списка"(нужное подчеркнуть), при этом доступный список контактов должен быть отфильтрован по принципу присутствия в детали "Контакты Контрагента", для контрагента который в данный момент у казан в справочном поле контрагента текущей карточки".

Ответьте мне на эти вопросы, и я помогу Вам реализовать Ваш кейс.

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

Добрый день. Не получается загрузить Телефоны, адреса, платежные реквизиты из 1С в ТС.
Контрагент создаётся, при загрузке создаются элементы видов телефонов и адресов, а сами значения не грузятся. почему не понятно.
Настраивал на основе этого видео.
Но там как-то отрывисто рассказывается и в первый раз вообще адреса не загрузились, а потом вроде без ошибок, но результат не показали.

В итоге вроде с виду выглядит всё как надо, результата нет.
Адреса просто не создаются.
С телефонами выдаёт ошибку.
Ошибка импорта. Could not convert variant of type (OleStr) into type (Boolean). Возникла при импорте записи 1C с именем Нова ОсОО Телефон Мобильный

Ещё конечно порадовало "Добавлен новый Елемент")))

Скрины приложил.

Нравится

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

Сложно сказать о конкретных причинах, не видя Ваши 1С и Terrasoft.
Слово «елемент» можно исправить в 47 строке scr_Dataflow1CConsts. И заодно в другом сообщении в 20 строке scr_MsxmlUtils.dash2
Ошибка «Could not convert variant of type (OleStr) into type (Boolean)» говорит, что пытаетесь загрузить строку в логическое поле.

Да мне то "елемент" не мешает, исправлять это в релизе надо. а не в одной копии программы.

1С и ТС вроде у всех одинаковые. 1С УТ 10.3.35.1. Как посмотреть точную версию ТС не знаю.
От того какие там буковки в адресах и телефонах, по моему ничего не меняется.
А настройки обмена, отборы и сопоставление полей я привел на скринах. По всей видимости проблема в них, но где именно не понятно.

"Корниленко Роман Васильевич" написал: исправлять это в релизе надо. а не в одной копии программы.

Роман, разработка 3.Х прекращена, на ней больше релизов не будет.
1С и ТС вроде у всех одинаковые.

Да нет, вроде, у всех разные.

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

"Зверев Александр" написал:Роман, разработка 3.Х прекращена, на ней больше релизов не будет.

Ну ок.
"Зверев Александр" написал:Да нет, вроде, у всех разные.

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

"Корниленко Роман Васильевич" написал:Что Вы подразумеваете под разные?

В разных версиях Terrasoft для работы с разными версиями 1С могут потребоваться определённые доработки в конфигурации.

"Зверев Александр" написал:Сложно сказать о конкретных причинах, не видя Ваши 1С и Terrasoft.

"Зверев Александр" написал:В разных версиях Terrasoft для работы с разными версиями 1С могут потребоваться определённые доработки в конфигурации.
Версию 1С я написал, платформа 8.2.19.130, как посмотреть версию ТС просьба подсказать.

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

Чтобы понять, почему что-то не отрабатывает, можно попробовать пройти пошагово в отладчике.
Либо же добавлять в настройках синхронизируемые сущности не все за раз, а по одной, после каждой проверяя корректность импорта.

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

Добрый день!

У контакта имеются поля Phone, MobilePhone, HomePhone.
У лида MobilePhone, BusinesPhone.
У контрагента Phone, AdditionalPhone.

Раньше я делал поиск через через
$filter=substringof('6665544', MobilePhone)
Но в разделе "Средства связи" пользователи могут добавлять много номеров, поэтому поиск не работает по всем этим полям.

Я увидел тип ContactCommunication в котором и хранятся остальные номера.

Один из вариантов поиска это сначала сделать запрос

/0/ServiceModel/EntityDataService.svc/ContactCommunicationCollection?$filter=substringof('07562135947', SearchNumber)&$select=ContactId для получения Id контакта, а затем получить контакт из ContactCollection по Id.

Для этого нужно делать два запроса.

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

Нравится

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

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

Ознакомтесь со статьями:

  1. URI Conventions
  2. Using $select, $expand, and $value in ASP.NET Web

"Терещук Павел" написал:

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

Ознакомтесь со статьями:

  1. URI Conventions
  2. Using $select, $expand, and $value in ASP.NET Web

Спасибо! Получилось осуществить поиск конктакта через один запрос к ContactCommunicationCollection и $extend Contact.

Все хорошо, но мне надо получить лишь некоторые поля Contact, а именно Id, Name, OwnerId, AccountId.

Для этого я добавляю в запрос $select=Contact/Id, Contact/Name и это работает без ошибок.

Но если я добавляю Contact/OwnerId или Contact/AccountId, то получаю ошибку:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

    1
    Элемент коллекции с именем AccountId не найден
    
        Элемент коллекции с именем AccountId не найден
        Terrasoft.Common.ItemNotFoundException
           at Terrasoft.Core.MetaItemCollection`1.GetByName(String name)&#xD;
   at Terrasoft.Core.Entities.EntitySchema.GetInheritedPath(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntitySchemaQuery.CreateColumn(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntitySchemaQuery.AddColumn(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.Build(Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.LoadEntityCollection(Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.ExecuteEnumerable[TResult](Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()&#xD;
   at System.Data.Services.Providers.BasicExpandProvider.ExpandedQueryable`1.GetEnumerator()&#xD;
   at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable)&#xD;
   at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService, IODataResponseMessage responseMessage)&#xD;
   at System.Data.Services.DataService`1.HandleRequest()
    

Хотя если не задавать $select, то эти поля присутствуют.

Вот запрос:

https://004057-sales-enterprise.bpmonline.com/0/ServiceModel/EntityDataService.svc/ContactCommunicationCollection?$filter=substringof('224433305083', SearchNumber)&$expand=Contact&$select=Contact/Id,Contact/Name,Contact/AccountId,Contact/OwnerId

Подскажите что не так делаю?

Разобрался. Вопрос закрыт. Спасибо за помощь!

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

Здравствуйте!
В версии 3.4.0.38 появилась задача почистить дубли по контрагентам и контактам, их очень много. Читала, что в BPMonline есть возможность поиска дублей, но здесь только ручной поиск и ручное объединение записей, так как системная функция поиска находит только несколько записей (наименование у дублей могут быть на разных языках, а полное наименование заполнены по разному у одних и тех же КА например)

Подскажите пожалуйста как лучше решить данный вопрос.

Нравится

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

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

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

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

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

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

Для того, чтобы установить причину, проверьте следующее:

1) подключили ли Вы свою хранимую процедуру (проверить можно в окне настройки правил поиска дублей), так как если Вы внесли изменения в базовую процедуру поиска дублей, то они могли перезаписаться назад, например, при пересохранениии таблицы.
2) запустите SQL Profiler и посмотрите, какая хранимая процедура отрабатывает и какой у неё текст.

Спасибо! Эту часть уже сделала, нужно было изменить фильтры для связи. Незнаю как здесь удалить опубликованные(( Тормознулась на подсчете количества, Вы мне ответили в другом топике http://www.community.terrasoft.ru/forum/topic/24760.

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

Относительно Вашего вопроса, попробуйте установить точку останова в функции PrepareSearchResults() скрипта wnd_ViewSearchResultScript и выполнить пошаговую отладку именно этой функции.

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

Здравствуйте! Подскажите пожалуйста, можно ли сделать двухстороннюю синхронизацию контактов gmail с террасофт и каким путем идти? Версия террасофт 3.4.0. Синхронизация контактов outlook и gmail работает через стороннее приложение, так что думаю на крайний случай можно подтягивать для синхронизации outlook. Спасибо!

Нравится

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

В Terrasoft есть интеграция контактов с Outlook. Как её настроить и использовать, см. обе инструкции на стр. 133.

спасибо! А именно для gmail есть варианты?

Есть интеграция с Outlook, а что там используется для наполнения контакктов, Gmail или Exchange — разницы нет.
Прямая интеграция с контактами Google есть только в полностью новой версии 7.Х (видео).

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