Добрый день, коллеги!

Помогите, пожалуйста разобраться с моделью данных о взаимосвязях контрагентов в последних редакциях (7.17-7.18).

Кейс следующий: на диаграмму взаимосвязей контрагента добавлены связанные контрагенты (тип связи не суть важно какой). Нужно обратиться к этим связям в настройках фильтра, например: отобрать контрагентов, имеющих связи с другими контрагентами. Условия могут быть более сложными (например, отобрать контрагентов, имеющих связи с контрагентами определенной категории). 

В настройке фильтра доступны только объекты "Взаимосвязь (по колонке Контрагент А)" и "Взаимосвязь (по колонке Контрагент Б)", но насколько я понимаю, в 7.17 эти объекты уже не используются про добавлении связей на диаграмму взаимосвязей. Как правильно поступить?

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

Нравится

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

Добрый день!

 

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

В колонке RecordId таблицы RelationshipEntity нет связи ни с каким объектом, так как в этой колонке могут храниться как записи контакта, так и аккаунта.

 

По Вашему запросу мы создадим пожелание на реализацию. Будем собирать обратную связь пользователей, по этому вопросу. 

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

Есть сущность "договор" и сущность "предмет договора" как сделать так, чтобы в сущносте "Договор" отображались все "Предмет договора"

В сущ.  "Предмет договора" есть поле где выбирается связь с конкретным договором сущности  "Договор"

Нравится

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

деталь или справочное поле сделать с предметом договора

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

Добрый день, коллеги!

 

Такой вопрос: Я создаю несколько справочников, они должны хранить в своих полях id других справочников. Как мне реализовать эту связь в "Управление конфигурацией"? И как мне правильно их связать?

Нравится

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

Добрый день! Пример данной реализации можете посмотреть, например, в объекте LeadProduct.

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

Добрый день! Пример данной реализации можете посмотреть, например, в объекте LeadProduct.

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

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

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

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

 

Вижу два решения задачи:

1) Вариант 1:

 - Создаем три таблицы: базовый справочник "Продукты", базовый объект "Деталь 1" с колонкой привязки к "Продукты", базовый объект "Деталь 2" с колонкой привязки к "Деталь 1".

- Создаем справочник на основе объекта "Продукты", деталь с добавлением из справочника на основе объекта "Деталь 1", деталь с добавлением из справочника на основе объекта "Деталь 2".

- Сталкиваемся с проблемой не рабочей делали "Деталь 2" так как для открытия окна добавления данных из "Деталь 1" необходимо с базовой колонкой текстового типа ("Отображаемое значение")!

2) Вариант 2:

- Создаем три таблицы: базовый справочник "Продукты", базовый объект "Деталь 1" с колонкой привязки к "Продукты" и колонкой "Зарезервировано" (что бы можно было отмечать значения что попадут далее в третью деталь).

- Создаем справочник на основе объекта "Продукты", деталь с добавлением из справочника на основе объекта "Деталь 1", деталь с добавлением из справочника на основе объекта "Деталь 1" (тут нам и пригодилась колонка "Зарезервировано" так как по ней и будет фильтр и мы просто проставляем значение в эту колонку, а точнее по колонке "Заявка" и "Зарезервировано").

- Сталкиваемся с проблемой не рабочей делали "Деталь 2" так как для открытия окна добавления данных из "Деталь 1" необходимо с базовой колонкой текстового типа ("Отображаемое значение")! Была идея сделать Вью для отображения не достающего текстового поля, которое заполнять из колонки "Продукты.Название".

Нравится

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

Александр, что-то мне не вполне понятно по структуре того, что хотите отобразить. Вы хотите две детали в разделе продуктов или в каком-то другом разделе, которые связывают его с продуктами (вроде раздела «Договоры» и детали развязки «Продукты в договоре»)? Как между собой связаны раздел и первая деталь, раздел и вторая, первая со второй?

 

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

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

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

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

Тут вопрос не столько в настройке привязки деталей к разделу, сколько в логике выбора записей. Это можно сделать модификацией лукапа второй детали, чтобы там фильтр оставлял только пригодные для выбора записи. Либо вместо лукапа сделать в первой детали, где весь доступный выбор, кнопку или действие, при запуске которого выбранная на первой детали запись обрабатывается, по ней создаётся запись на второй.

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

Добрый день!

В карточке клиента должно выводиться список аптек(контрагентов) в котором поле user_id равен полю user_id в карточке контака. Как можно реализовать такую связку? 

Пример:

Загружаются Аптека1 с user_id 1111 и POS_ID 2221

Загружается Аптека2 c user_id  1111 и POS_ID 2222

 

Клиент с User_id 1111

У клиента отображаются Аптека1 и Аптека2, т.к user_id клиента равен user_id аптеки 

Нравится

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

Добрый день.

 

Вы можете реализовать такую функциональность с помощью бизнес-правил. Подробнее о бизнес-правилах посмотрите по ссылке на Академии: https://academy.terrasoft.ru/documents/sales-team/7-16/stranica-nastroyki-biznes-pravila

Алла Савельева, Нельзя с помощью деталей как то реализовать?  К примеру можно назначить ответсвенного в аптеках и вывести это в карточке контакта. Но если есть контакты с одинаковыми ФИО  и ответсвенный загружается через эксель. То аптеки будут привязываться к первому пользователю. Хотелось бы произвести привязку по уникальному User_ID

Альмир, да, такое можно реализовать, настроив в карточке деталь со связью с объектом раздела по этой колонке. Как это делается, см. в статье.

 

Алла, вообще не понял, причём тут бизнес-правила.

Зверев Александр пишет:

Алла, вообще не понял, причём тут бизнес-правила.

Я неверно поняла задачу, решила, что речь идет о фильтрации поля indecision

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

Я бы хотел сделать такую кастомизацию. Мне нужны два параметра, используемые в объектах недвижимости и листингах, по которым происходит подбор заявок. Эти параметры справочные и связаны друг с другом.
По аналогии со справочником Источник лида, в котором 3 поля. Источник, канал и описание. При этом в поле Канал – это значения из справочника Канал.

Хочу сделать справочник Районы с такими полями:
Название поля Описание
Город Это поле ссылается на справочник Город
Район Это поле, которое наполняется значением районов для конкретного города

Второй справочник такой:
Название поля Описание
Район Это поле ссылается на справочник Районы
Массив Это поле, которое наполняется значением массивов (микрорайонами) для
конкретного района
Границы В этом поле хранятся координаты точек (широта, долгота) полигона,
задающего границы массива

Когда я выбираю значение в поле Город при создании объекта – поле Район фильтруется по колонке Город (тот, что указан в поле Город объекта)
Когда я выбираю значения поля Массив – его значения тоже фильтруются по полю Район.

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

Нравится

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

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

Данная задача может быть реализована бизнес-правилами на странице.
Подробнее о бизнес-правилах можно прочитать по ссылке:
https://academy.terrasoft.ru/documents/technic-sdk/7-9/primer-primeneni…

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

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

У нас используется 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
	}
}
Показать все комментарии

Добрый день!
Дано: карточка "Продажи", поле "состояние", поле "причина победы".
В данный момент поле "причина победы" становится доступным для заполнения только если в поле "состояние" значение "выполнена".
Вопрос: как расшить эти поля, т.е. поле "причина победы" должно быть доступно для заполнения в любом случае.

Спасибо!

Нравится

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

Нужно открыть скрипт карточки wnd_OpporttunityEditScript. Там есть функции:

function UpdateFinishControls(IsEnabled){
	edtWinner.IsEnabled = IsEnabled;
	edtWinningReason.IsEnabled = IsEnabled;
}
 
function UpdateFinishControlsByDataset(Dataset) {
	var StatusID = Dataset.Values('StatusID');
	var IsFinish;
	if (!IsEmptyGUID(StatusID)){
		IsFinish = GetDetailSummary('tbl_OpportunityStatus', 'ID', StatusID, 
			'IsFinish', stNone);
	} else {
		IsFinish = false;
	}
	//this needs to handle null values
	var IsFinishControlsEnabled = (IsFinish == true);
	UpdateFinishControls(IsFinishControlsEnabled);
}

Собственно, первая включает или выключает поля, связанные с победой. А вторая - проверяет состояние продажи и если оно относится к конечным - запускает первую для изменения доступности этих полей.

Если эта логика не нужна - можно закомментировать содержимое функции UpdateFinishControlsByDataset целиком или только её последнюю строку.

"Зверев Александр" написал:

Если эта логика не нужна - можно закомментировать содержимое функции UpdateFinishControlsByDataset целиком или только её последнюю строку.


Александр, я не силен в программировании, куда конкретно нужно поставить и что поставить? Можете выделить это на картинке?

Например, так:

function UpdateFinishControlsByDataset(Dataset) {
/*
         var StatusID = Dataset.Values('StatusID');
         var IsFinish;
         if (!IsEmptyGUID(StatusID)){
                 IsFinish = GetDetailSummary('tbl_OpportunityStatus', 'ID', StatusID, 
                         'IsFinish', stNone);
         } else {
                 IsFinish = false;
         }
         //this needs to handle null values
         var IsFinishControlsEnabled = (IsFinish == true);
         UpdateFinishControls(IsFinishControlsEnabled);
*/
}

Поле перестало быть доступным при любом значении поля "состояние" :sad:

А, ещё в функции wnd_OpportunityEditOnPrepare закомментировать строку:

 	UpdateFinishControls(OpportunityEdit.OldStatusIsFinish);

то есть станет:

 	//UpdateFinishControls(OpportunityEdit.OldStatusIsFinish);

Всё, работает! Спасибо!

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