Есть деталь "Регион проведения мероприятия" с полями "Страна" и "Регион". На странице детали так же есть еще одна деталь "Города". Стоит задача выводит в реестр детали страну, регион и список городов. Подскажите, как лучше реализовать данный функционал?

Нравится

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

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

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

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

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

http://academy.terrasoft.ru/documents/docs/product/bpm'online%20real%20estate/real%20estate/7.6.0/BPMonlineHelp/chapter_list_setting/chapter_list_setting_columns.htm

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

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

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

Нравится

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

Виталий, добрый день!

Из-за отсутствия изображения не совсем понятно, что за ошибка.
Перезалейте, пожалуйста, скриншот.

"Вильшанский Дмитрий" написал:

Виталий, добрый день!

Из-за отсутствия изображения не совсем понятно, что за ошибка.

Перезалейте, пожалуйста, скриншот.


Исправил

Виталий, добрый день!

Укажите пожалуйста версию Terrasoft, операционной системы и версию MS Outlook.

Terrasoft: 3.4.1.127
операционная система: Windiws Server 2012 R2 Datacenter 64 разрядная
MS Outlook: 20077

Выполните такую последовательность действий:

  1. 1.Закройте все приложения MS Office и Terrasoft
  2. 2. Очистите кэш: C:\Users\[Имя пользователя]\AppData\Roaming\Terrasoft\[Версия Terrasoft]\Cache
  3. 3. Запустите Terrasoft
  4. 4. Запустите MS Outlook и установите соединение с Terrasoft
  5. 5. После чего выполните повторно действия по изменению шаблона

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

Выполните такую последовательность действий:


Не помогло....
еще иногда выбивает такое сообщение:

"Радчук Виталий Владимирович" написал:
еще иногда выбивает такое сообщение:



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

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

я от отчаяния пробовал вставлять везде))) і в готовом шаблоне і в чистом.
Меня интересует первая ошибка, там где "Данная команда недоступна"

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

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

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

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

Нравится

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

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

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

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

Приятного дня!

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

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

https://community.terrasoft.ru/forum/topic/10157 - Данную тему изучил, но она мне не подходит, т.к. у меня в различных деталях различный набор данных

Примерный вид деталей
деталь
Название | Ед.изм | Количество | нац, % | нац,сумма | Поставщик | Клиент | маржа:% | сумма

Вложенная деталь
Подрядчик | Контакт | Ориентировочная сумма | Объявленная сумма | Исполнитель

Нравится

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

Здравствуйте, Александр!
Принципиально можно сделать по-разному. Более простой вариант реализации - в виде двух деталей, которые сообщать через sandbox.
Более сложный - добавлять второй грид на одну делать. посмотрите реализацию "BaseGridDetailV2". В прицнипе, никто на мешает Вам добавить еще один элемент с типом Terrasoft.ViewItemType.GRID. Нужно просто реализовать все необходимые методы подгрузки данных в него.
Конкретных примеров дать не могу, но подскажу по точечным вопросам, которые будут возникать в ходе реализации.

Здравствуйте!
Можете описать примерный порядок действий для двух деталей, которые сообщаются через sandbox.?

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

1. На странице главной детали с помощью операции "merge" в блоке "diff" добавить для реестра подписку на событие выделения записи "selectRow". Примерно так:

{
"operation": "merge",
					"name": "DataGrid",
					"values": {
						"selectRow": { "bindTo": "rowSelected" }
					}
}

Здесь rowSelected - это метод-обработчик события, который принимает одни аргумент - Id выделенной записи.
2. На этой же странице добавить PTP-сообщение для публикации (PUBLISH) в объект "messages". В методе rowSelected отправлять это сообщение (sanbox.publish).
3. На странице подчиненной детали добавить это же сообщение, но для подписки (SUBSCRIBE) и с помощью sandbox.subscribe подписаться на получение этого сообщения в методе "init" или "subscribeSandboxEvents"(вызывается в init страницы "BaseDetailV2"). В методе-обработчике накладывать фильтрацию и перезагружать реестр детали.
Вроде бы все.
Если будут возникать вопросы по ходу - обращайтесь.

"Андрей Каспаревич" написал:

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

1. На странице главной детали с помощью операции "merge" в блоке "diff" добавить для реестра подписку на событие выделения записи "selectRow". Примерно так:

{

"operation": "merge",

                                        "name": "DataGrid",

                                        "values": {

                                                "selectRow": { "bindTo": "rowSelected" }

                                        }

}

Здесь rowSelected - это метод-обработчик события, который принимает одни аргумент - Id выделенной записи.

2. На этой же странице добавить PTP-сообщение для публикации (PUBLISH) в объект "messages". В методе rowSelected отправлять это сообщение (sanbox.publish).

3. На странице подчиненной детали добавить это же сообщение, но для подписки (SUBSCRIBE) и с помощью sandbox.subscribe подписаться на получение этого сообщения в методе "init" или "subscribeSandboxEvents"(вызывается в init страницы "BaseDetailV2"). В методе-обработчике накладывать фильтрацию и перезагружать реестр детали.

Вроде бы все.

Если будут возникать вопросы по ходу - обращайтесь.


Здравствуйте, Андрей. Я недавно тут и поэтому простите за глупые вопросы) .
Есть деталь, при раскрытии этой детали необходимо чтобы в ней была ещё 1 деталь.
То что вы описали, как я понял, реализует именно то, что мне нужно, но мне многое не понятно. (
1-2 пункт. На странице схемы детали или странице карточки схемы детали добавлять. Я добавил в схеме детали:

define("UsrSchema12DetailV2", [], function() {
	return {
		entitySchemaName: "UsrInsuranceCase",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
		{
			"operation": "merge",
			"name": "DataGrid",
			"values": {
				"selectRow": { "bindTo": "rowSelected" }
			}
		}
		]/**SCHEMA_DIFF*/,
		methods: {},
		messages: {
    	"rowSelected": {
	        mode: this.Terrasoft.MessageMode.PTP,
	        direction: this.Terrasoft.MessageDirectionType.PUBLISH
	    }
}
	};
});

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

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

"Гончаров Павел Ильич" написал:Есть деталь, при раскрытии этой детали необходимо, чтобы в ней была ещё 1 деталь.

Не совсем так, насколько я понял, вам предложили сделать 2 детали. Каждая в своем модуле (в своей схеме). Вывести одну под другой на карточке редактирования.
Первая будет главной, вторая ведомой.
В первой вы по событию нажатия на строку, генерируете событие для второй.
Во второй это событие ловите, и манипулируете данными, так как хотите.
К примеру, в первой выбираете страну.
А во второй в это время включаете фильтр по выбранной стране и отображаете только ее города.
Пример работы с песочницей для генерации и подписки на событие напишу ниже, в нем я генерирую событие активной строки в детали "AccountBillingInfoDetailV2", и слушаю его в детали "AccountAddressDetailV2".

define("AccountBillingInfoDetailV2", [], function() {
	return {
		entitySchemaName: "AccountBillingInfo",
		details: /**SCHEMA_DETAILS*/{
 
		}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "DataGrid",
				"values": {
					"selectRow": {
						"bindTo": "rowSelected"
					}
				}
			}
		]/**SCHEMA_DIFF*/,
		methods: {
			rowSelected: function() {
				this.sandbox.publish("RowSelectedInFirstDetail", { test: "param anything" }, [this.sandbox.id]);
				console.log("rowSelected in first detail...");
			}
		},
		messages: {
			"RowSelectedInFirstDetail": {
				mode: Terrasoft.MessageMode.PTP,
				direction: Terrasoft.MessageDirectionType.PUBLISH
			}
		}
	};
});
define("AccountAddressDetailV2", [], function() {
	return {
		entitySchemaName: "AccountAddress",
		details: /**SCHEMA_DETAILS*/{
 
		}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
			init: function() {
				this.sandbox.subscribe("RowSelectedInFirstDetail", function(arg) {
					console.log("test " + arg.test);
				}, this, [this.getSenderSandboxId()]);
			},
			getSenderSandboxId: function() {
				return this.sandbox.id.replace("_AccountAddress", "_AccountBillingInfo");
			}
		},
		messages: {
			"RowSelectedInFirstDetail": {
				mode: Terrasoft.MessageMode.PTP,
				direction: Terrasoft.MessageDirectionType.SUBSCRIBE
			}
		}
	};
});

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

Подробнее про модули и песочницу:
http://academy.terrasoft.ua/documents/docs/technic/SDK/7.4.1/ModuleDeve…

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

Максим, спасибо за ответ и то что поправили меня. Да, я видать не в ту сторону начал смотреть. Мне нужно просто деталь вложенная в деталь, но у меня все равно ничего не вышло. Мои действия: создал обе детали, в родительской детале в схеме карточки детали добавляю в раздел details связь по каким полям, в diff вставляю эту деталь, но её все равно нет. Когда открываю редактор родительской детали, то деталь которую я вставил отображается каким то блоком. В define подключил GeneralDetails и в функцию передаю параметром.

Вам не нужно делать деталь в детали. Создайте две разные детали, обычными мастерами деталей, а потом в мастере раздела выведите обе детали на страницу редактирования. В этом нет ничего сложного, а подробнее про мастера можете почитать на академии, или посмотреть видео на канале:
https://www.youtube.com/watch?v=djefWQslz2U&feature=youtu.be&list=PLDp-…
Должны получится просто две детали, одна под другой (на скриншоте стандартные, но вы выведите свои):

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

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