Вопрос

Открытие карточки записи для добавления

Всем доброго времени суток. Версия 7.11.

Есть хорошая и простая функция для открытия мини-карточки:

this.openMiniPage({
	recordId: Terrasoft.GUID_EMPTY,
	operation: Terrasoft.ConfigurationEnums.CardOperation.ADD,
	entitySchemaName: "Case",
	valuePairs: defaultValues,
	isFixed: true,
	showDelay: 0,
	miniPageSchemaName: "UsrCaseMiniPage",
});

Всё отлично - и указание на операцию, и на схему объекта и страницы. Особо удобно здесь свойство valuePairs, позволяющее передать значения для презаполненных колонок.

Существуют ли подобные функции для открытия полноценной карточки добавления?

Нашёл openPage в PageUtilities, но не нашёл, чтобы там был аналог valuePairs.

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

Нравится

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

Смотрите, как сделано в базовой схеме раздела BaseSectionV2. Там в обработчике кнопки добавления если есть миникарточка, вызывается Ваша функция openAddMiniPage, а если нет — openCardInChain:

/**
 * Opens new record page.
 * @protected
 */
addRecord: function(typeColumnValue) {
	if (!typeColumnValue) {
		if (this.checkEditPagesCount()) {
			return false;
		}
		var tag = this.get("AddRecordButtonTag");
		typeColumnValue = tag || Terrasoft.GUID_EMPTY;
	}
	var schemaName = this.getEditPageSchemaName(typeColumnValue);
	if (!schemaName) {
		return;
	}
	if (this.hasAddMiniPage(typeColumnValue)) {
		this.openAddMiniPage({
			entitySchemaName: this.entitySchemaName,
			valuePairs: this.getAddMiniPageDefaultValues(typeColumnValue)
		});
	} else {
		this.openCardInChain({
			schemaName: schemaName,
			operation: ConfigurationEnums.CardStateV2.ADD,
			moduleId: this.getChainCardModuleSandboxId(typeColumnValue),
			instanceConfig: {
useSeparatedPageHeader: this.get("UseSeparatedPageHeader")
			}
		});
	}
},

 

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