Предлагаю дать возможность пользователю самому решать, нужны ли обязательные колонки при импорте из Excel.1) При добавлении записей, могут быть колонки обязательные, но при этом заполняемые значениями по-умолчанию. Сейчас их приходится добавлять в файл импорта всегда 2) При изменении записей могут быть колонки обязательные, но уже заполненные, и при этом в них не вносятся изменения. Сейчас их тоже надо добавлять в файл импорта всегда Если же файл будет составлен не достаточно полно - ошибка упадет на отдельно взятой записи уже при ее сохранении. Надо добавить вопрос (см скрин, код) и обработать эти ситуации в процессе импорта (туда я не полез) define("FileImportColumnsMappingPage", ["FileImportColumnsMappingPageResources", "ConfigurationEnums", "ConfigurationConstants", "ConfigurationItemGenerator", "ColumnMappingViewModel", "CommunicationDestinationViewModel", "AddressDestinationViewModel", "ContainerList"], function(resources, ConfigurationEnums, ConfigurationConstants) { return { methods: { getValidationResult: function(wizardInfo, callback) { if (wizardInfo.newStepIndex wizardInfo.currentStepIndex) { return true; } var validationResult = this.getColumnMappingValidationResult(); if (!validationResult.success) { var messageTemplate = this.get("Resources.Strings.ValidationMessageTemplate"); var messageText = this.Ext.String.format(messageTemplate, validationResult.columnCaption); //this.showInformationDialog(messageText); messageText = messageText + "\nВы уверены, что хотите продолжить без заполнения этих колонок?"; this.showConfirmationDialog(messageText, function(result) { validationResult.success = result === this.Terrasoft.MessageBoxButtons.YES.returnCode callback.call(this, validationResult.success); }, [this.Terrasoft.MessageBoxButtons.YES.returnCode, this.Terrasoft.MessageBoxButtons.NO.returnCode], null); } else { callback.call(this, validationResult.success); } //return validationResult.success; }, validateStep: function(wizardInfo) { this.getValidationResult(wizardInfo, function(validationResult) { this.sandbox.publish("ValidationResult", validationResult, [this.sandbox.id]); }); } }/*, diff: []*/ }; });