Здравствуйте, Я хочу чтобы по нажатия на кнопке "Печать" вызвался "Бизнес-процесс" и внутри "Бизнес-процесс" создать файл с содержанием в формате ".docx", дальше сохранить файл в Деталь "Файлы и ссылки". Подскажите пожалуйста как сделать и есть пример?

Нравится

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

Добрый день.



Вы можете создать указанный вами бизнес процесс, использовав данную инструкцию с Академии: https://academy.creatio.com/docs/user/bpm_tools/process_elements_refere…

 

Malika,

Спасибо, Вам Малика

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

Подскажите, есть такая проблема с добавлением файлов в Деталь: Файлы и ссылки.



Подробнее в прикрепленном скриншоте.

 

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

Прикрепленные файлы

Нравится

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

Добрый день!

 

На данный момент, к сожалению, нет возможности вывести две детали Файлы и ссылки на страницу. В таком случае ни одна деталь не будет работать корректно.



Возможно, использование обходного решения:

для одной детали, установить фильтр на деталь ФиС.

Пример фильтра доступен в сервисе MarketPlace по адресу:

https://marketplace.terrasoft.ru/app/file-detail-filtering-creatio

 

Идея: добавить фильтр по аналогии, как на маркетплейс. Добавить поле Type для фильтрации. Фильтровать файлы на детали по нужному типу.

Полезные ссылки для доработки быстрых фильтров на детали:

https://community.terrasoft.ru/articles/primery-filtrov-v-detali

https://community.terrasoft.ru/questions/kak-dobavit-filtr-v-detali

 

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

Добрый день. Есть деталь от FileDetailV2, нужно сделать так, чтобы в зависимости от настроек, сделанных на странице редактирования, в детали показывалась кнопка "добавить". В детали я определяю атрибут:

"isAddVisible": {
   dataValueType: Terrasoft.DataValueType.BOOLEAN,
   type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
   value: true
}

и добавляю в diff:

{
  "operation": "merge",
  "name": "AddRecordButton",
  "values": {
    "visible": { bindTo: "isAddVisible" }
  }
}

В схеме страницы в diff определена деталь:

{
  "operation": "insert",
  "name": "UsrReportFileDetail",
    "values": {
      "itemType": 2,
      "markerValue": "added-detail",
      "isAddVisible": "false"
    },
    "parentName": "NotesAndFilesTab",
    "propertyName": "items",
    "index": 0
 }

В перспективе хотелось бы привязать isAddVisible к функции, возвращающей true или false в зависимости от статуса записи (стадии кейса). Но даже в таком виде код не работает: система применяет к кнопке на детали значение по умолчанию true, а не выставленное в странице редактирования значение false. Почему? 

Нравится

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

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

{

                "operation": "merge",

                "name": "AddRecordButton",

                "parentName": "Detail",

                "propertyName": "tools",

                "values": {

                    "itemType": Terrasoft.ViewItemType.BUTTON,

                    "tag": "addFileButton",

                    "fileUpload": true,

                    "filesSelected": {"bindTo": "onFileSelect"},

                    "click": {"bindTo": "onAddFileClick"},

                    "visible": {"bindTo": "getAddRecordButtonVisible"},

                    "imageConfig": {"bindTo": "Resources.Images.AddButtonImage"}

                }

            }

Юрий, а зачем там «value: true» в свойствах атрибута? Он задаётся для виртуальных колонок с фиксированным значением, а для каждый раз вычисляемых  функцией — не нужен. Пример приводил в теме ниже.

 

А у Вас, насколько понял, ни то, ни другое, а передача значения извне. Не уверен, что именно так можно, не нашёл аналогичных примеров в «коробке». Если не указывать в самой детали, то будет брать со страницы или будет undefined?

 

Попробуйте передавать свой параметр не в diff, а как из карточки на её детали передают свойства вроде filterMethod или useRelationship:

details: /**SCHEMA_DETAILS*/{
...
	OpportunityContact: {
		schemaName: "OpportunityDetailV2",
		filter: {
			masterColumn: "Contact",
			detailColumn: "Contact"
		},
		defaultValues: {
			Contact: {
				masterColumn: "Contact"
			}
		},
		useRelationship: false,
		filterMethod: "opportunityAccountFilter",
		captionName: "CustomerOpportunitiesCaption"
	},

 

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

{

                "operation": "merge",

                "name": "AddRecordButton",

                "parentName": "Detail",

                "propertyName": "tools",

                "values": {

                    "itemType": Terrasoft.ViewItemType.BUTTON,

                    "tag": "addFileButton",

                    "fileUpload": true,

                    "filesSelected": {"bindTo": "onFileSelect"},

                    "click": {"bindTo": "onAddFileClick"},

                    "visible": {"bindTo": "getAddRecordButtonVisible"},

                    "imageConfig": {"bindTo": "Resources.Images.AddButtonImage"}

                }

            }

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

Проблема в том что не могу отследить событие добавление файла на деталь "Файлы и ссылки".

"KtFilesConfirmingDiscountDetail": {
	"schemaName": "KtFilesConfirmingDiscountDetail",
	"entitySchemaName": "KtFilesConfirmingDiscount",
	"filter": {
		"detailColumn": "KtOpportunityProductInterest",
		"masterColumn": "Id"
	},
	"subscriber": {
		"methodName": "discountValueEnable"
	}
}

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

Нравится

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

Александр, в стандартной системе нет объекта KtFilesConfirmingDiscount и схемы детали KtFilesConfirmingDiscountDetail, не видя её кода сложно сказать, почему оно так реализовано. Если это часть партнёрского дополнения, лучше будет уточнить у его автора.

 

Если нужно разработать свою логику со срабатыванием на добавление, можно в обычном БП или встроенном БП объекта файла в этом разделе завязаться на событие добавления.

 

Например, в CaseFile есть такая логика:

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

 

Код детали

define("KtFilesConfirmingDiscountDetail", ["css!KtFilesConfirmingDiscountDetailCssModule"],
	function() {
	return {
		methods: {
			/**
			 * Initializes parent entity.
			 */
			initParentEntity: function() {
				this.parentEntity = {};
				const entitySchemaName = this.entitySchema && this.entitySchema.name || "";
				const parentSchemaName = entitySchemaName.replace("KtFilesConfirmingDiscount", "KtOpportunityProductInterest");
				const masterRecordId = this.get("MasterRecordId");
				this.parentEntity.EntityName = parentSchemaName;
				this.parentEntity.RecordId = masterRecordId;
			},
			/**
			 * ############## ####### "drag" # "drop" ##########.
			 * @private
			 */
			initDropzoneEvents: function() {
				const dropZone = document.getElementById("DragAndDropContainerOpportunityProductInterest");
				if (!dropZone) {
					return;
				}
				if (this.Terrasoft.Features.getIsEnabled("CheckMasterRecordEditRights") &&
						!this.get("CanEditMasterRecord")) {
					return;
				}
				this.Terrasoft.ConfigurationFileApi.initDropzoneEvents(dropZone, function(over) {
					if (over) {
						dropZone.classList.add("dropzone-hover");
					} else {
						dropZone.classList.remove("dropzone-hover");
					}
				}, function(files) {
					this.onFileSelect(files);
				}.bind(this));
			},
			getAddRecordButtonVisible: function() {
				return this.getToolsVisible() && this.get("CanEditMasterRecord") && this.get("IsEnabled");
			}
		},
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "DragAndDrop Container",
				"parentName": "Detail",
				"propertyName": "items",
				"values": {
					"id": "DragAndDropContainerOpportunityProductInterest",
					"selectors": {"wrapEl": "#DragAndDropContainerOpportunityProductInterest"},
					"itemType": Terrasoft.ViewItemType.CONTAINER,
					"wrapClass": ["dropzone"],
					"items": [
						{
							"labelClass": ["DragAndDropLabel"],
							"itemType": Terrasoft.ViewItemType.LABEL,
							"caption": {"bindTo": "Resources.Strings.DragAndDropCaption"}
						}
					]
				}
			}
		]
		/**SCHEMA_DIFF*/
	};
});

Родительский объект "FileDetailV2 ( UIv2 )". Думаю CSS нет смысла прикладывать, он стандартный.

Событие на добавление нужно отловить на клиентской части, нужно по этому событию сделать поле на странице редактируемым (снять блок, эта логика уже есть)

По рекомендации поддержки просмотрел методы сохранения и решил остановится на onFileComplete

 

на стороне детали:

messages: {
	"DiscountValueEnable": {
		"mode": Terrasoft.MessageMode.PTP,
		"direction": Terrasoft.MessageDirectionType.PUBLISH
	}
},
onFileComplete: function() {
	this.callParent(arguments);
	this.sandbox.publish("DiscountValueEnable", null, [this.sandbox.id]);
}

на стороне страницы:

messages: {
	"DiscountValueEnable": {
		mode: this.Terrasoft.MessageMode.PTP,
		direction: this.Terrasoft.MessageDirectionType.SUBSCRIBE
	}
},
methods: {
	init: function() {
		this.callParent(arguments);
		this.sandbox.subscribe("DiscountValueEnable", function() {
				this.discountValueEnable();
			}, this, [this.sandbox.id + "_detail_KtFilesConfirmingDiscountDetailKtFilesConfirmingDiscount"]);
	},
	discountValueEnable: function(){
		this.set("discountValueEnable", true);
	}
}

 

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

Добрый день, коллеги. Необходимо чтобы в разделе была сгенерирована деталь с полями (описание, тип оплаты, сумма,  файл (фото_чека.jpg/png/pdf)).

В разделе есть деталь "Файл и ссылка объекта Продажи". Добавляю колонки тип оплаты, сумма. Затем замещаю схему FileDetailV2 и добавляю в него код для того, чтобы была возможность настроить колонки для детали. Настраиваю колонки и они показываются на странице, но заполнить добавленные поля (тип оплаты, сумма) не получается потому что на карточке редактирования их нет (там только стандартные поля Название и описание).

Вопрос: как добавить созданные поля в карточку?

Нравится

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

Как вариант создать свою карточку редактирования (со всеми нужными вам полями) и на детали добавить или переопределить кнопку редактирования для открытия вашей карточки.

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

Не подскажите, как создать эту карточку?

Артём Иванов Иванович,

в мастере раздела создается новая страница редактирования на первой странице

Натали Вишня,

Это очевидно не то, что мне нужно.

Добавить нужные колонки и отобразить их получилось:

Но какую страницу заместить, чтобы добавить в эту карточку необходимые колонки (сумма) 

Похоже на LinkPageV2. Точно проверить можно, нажав в браузере «Inspect» и посмотрев в HTML-коде.

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

Добрый день!

Добавил на кастомную страницу базовую деталь FileDetailV2 из пакета UIv2.

При инициализации детали падает ошибка: 

user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647

 file: undefined

 line: undefined

 column: undefined

 message: Cannot read property 'initDropzoneEvents' of undefined 

 date: Fri Apr 20 2018 10:17:45 GMT+0400 (RTZ 3 (зима))

 moduleId: CardModuleV2_fa04f9ca-d9d9-4c1e-bae9-ef23c8b24925_FinApplicationPage_detail_FileDetailV2snIntegrationLogFile

 moduleName: DetailModuleV2

При этом вручную добавить файлы на деталь невозможно.

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

Подскажите, в чем может быть проблема?

 

Нравится

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

Дмитрий, добрый день! 

Попробуйте передобавить деталь согласно SDK - https://academy.terrasoft.ru/documents/technic-sdk/7-12/dobavlenie-deta…

Либо как во вложении https://www.dropbox.com/s/uhruk6kh04y0zjr/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D0%B8%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B%20%D0%B8%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8.docx?dl=0

Также в версии 7.12.1 появится возможность добавить деталь "Файлы и ссылки" пользовательскими средствами.

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

Добрый день.

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



Вроде этот функционал уже был в terrasoft 3.x и bpmonline 5.x.

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

Здравствуйте, Игорь

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

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

Возможно ли расположить кнопку напротив каждой строки детали? Например кнопку "Удалить".

Примерно так:

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

Нравится

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

И "Редактировать"!

Не знаю как с кнопками в конце, но в схеме разделов можно подсмотреть код и реализовать такой вариант:

Чисто теоретически можно забиндаться к добавлению записи в грид и вставлять свой контейнер с кнопкой на то место что вам требуется. Ну и конечно придётся поиграться со стилями. Что-то подобное мы уже пытались делать. Одно могу сказать что к добавлению элемента в DOM мы уже имели опыт биндинга и выполнения своей логики, а так же создания произвольных HTML элементов на странице.

А то что посоветовал Данила можно подсмотреть в странице локального поиска дублей, например. Вот как то так: 

{
	id: "duplicateGrid",
	className: "Terrasoft.Grid",
	type: "tiled",
	primaryColumnName: "Id",
	activeRow: {bindTo: "activeRow"},
	columnsConfig: [columnsConfig],
	collection: {bindTo: "gridData"},
	activeRowAction: {bindTo: "onActiveRowAction"},
	activeRowActions: [
		{
			className: "Terrasoft.Button",
			style: Terrasoft.controls.ButtonEnums.style.BLUE,
			caption: resources.localizableStrings.IsNotDuplicateCaption,
			tag: "IsNotDuplicate",
			visible: {bindTo: "getGridButtonIsNotDuplicateVisible"}
		},
		{
			className: "Terrasoft.Button",
			style: Terrasoft.controls.ButtonEnums.style.BLUE,
			caption: resources.localizableStrings.IsDuplicateCaption,
			tag: "IsDuplicate",
			visible: {bindTo: "getGridButtonIsDuplicateVisible"}
		}
	]
}

 

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

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

Добавление происходило через мастер мобильного приложения.

Так же автоматом создало 3 схемы и замещающий манифест в текущем пакете.

При попытке добавить файл мы наблюдаем следующее, возможность добавить файл полностью отсутствует!!!

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

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

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

Вобщем коллеги, обращаюсь за помощью к вам.

Думаю не мне одному интересно как с этим справиться.

Нравится

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

Михаил, здравствуйте!

Данная деталь является специфической, так как добавление и хранение данных отличается от других деталей. Поэтому нужно на уровне кода добавлять данную деталь. Инструкция давненько лежит на SDK и которая не раз была направлена пользователям системы - https://academy.terrasoft.ru/documents/technic-sdk/7-11/mobilnoe-priloz…

Цитата на Академии:

"Деталь "Файлы и ссылки" доступна во всех разделах bpm'online (см. "Файлы и примечания") и в разделе [Продажи] ([Opportunities]) мобильного приложения" - это ответ на Ваш вопрос по поводу раздела "Продажи".

Удалите через мастер эту деталь и выполните согласно инструкции:

- До 7.11.2 - https://academy.terrasoft.ru/documents/technic-sdk/7-11/dobavlenie-deta…

- 7.11.2 и выше - https://academy.terrasoft.ru/documents/technic-sdk/7-11/dobavlenie-deta…

Примечение. Манифест проще всего создать через мастер (создается автоматически при сохранении текущих настроек).

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

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

 

Хорошего дня!

 

Добрый день! 

В версии bpm'online 7.11.3 добавлена возможность добавить деталь "Файлы и ссылки" в любой раздел мобильного приложения (если для аналогичного раздела деталь существует в основном интерфейсе) через мастер мобильного приложения.

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

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

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

1. В детали "Участники активности" не знаю что выбрать в колонке детали и колонке объекта. Пробовала разные варианты - не получается.

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

2. Во всех активностях есть вкладка "Файлы и примечания". Что выбрать в детали "Файлы и ссылки Активности"?

и как добавить пункт "Примечания"?

Заранее Спасибо!

Нравится

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

1) я обычно делаю таким образом:

2) Добавление детали . Примечание ,кажется это группа полей "Примечание"+ текстовое поле,у которого скрыт заголовок. Или же надо посмотреть, как кодом прописать добавление примечания на страницу.

Пример со страницы активности(ActivityPageV2, пакет UIv2).  Для текстового поля "Примечания". Обратите внимание  на controlConfig и images. 

{

                    "operation": "insert",

                    "parentName": "ActivityNotesControlGroup",

                    "propertyName": "items",

                    "name": "Notes",

                    "values": {

                        "contentType": Terrasoft.ContentType.RICH_TEXT,

                        "layout": {"column": 0, "row": 0, "colSpan": 24},

                        "labelConfig": {

                            "visible": false

                        },

                        "controlConfig": {

                            "imageLoaded": {

                                "bindTo": "insertImagesToNotes"

                            },

                            "images": {

                                "bindTo": "NotesImagesCollection"

                            }

                        }

                    }

                }

 

Матвеева Светлана,

Спасибо, попробую!

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