Импорт по кнопке

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

Интересует вопрос. А как вызвать импорт из 1С, из какого-нибудь произвольного раздела. Т.е. сделать действие, аналогичное "Импорт элемента" в разделе "Интеграции", но из другого раздела.

Нравится

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

Добрый день, Дмитрий.
Ответ на Ваш вопрос в Dataflow\General\Main Grid\scr_DataflowsGridArea.
Обработчик:

function amiRunImportOnExecute(ActionMenuItem, Sender) {
	ExecuteImport(dlData.Dataset);
}

Функция ExecuteImport берет ID выделенной записи интеграции, проверяет ее тип, и в зависимости от него, запускает тот или иной процесс синхронизации.

switch (DataflowTypeID) {
		case (edtExcel) :
			var Workbook = System.EmptyValue;
			ExecuteImportFromExcel(DataflowID, Workbook, UpdateRecords);
			CollectGarbage();
			SendNotify(Self, 'RefreshHistoryDetail');
			break;
		case (edt1C) :
			var Attributes = GetNewDictionary();
			Attributes('IsMain') = true;	
			Attributes('IsShowError') = true;	
			scr_Dataflow1CUtils.ImportAllObject(DataflowID, Attributes);
			SendNotify(Self, 'RefreshHistoryDetail');
			break;
		default:
			ShowWarningDialog(msgDataflowTypeIsNotDefined);
			break;
	}

Таким образом, реализация Вашей задачи:
в произвольном месте раздела вызвать

    Attributes('IsMain') = true;	
    Attributes('IsShowError') = true;	
    scr_Dataflow1CUtils.ImportAllObject(DataflowID, Attributes);

Где DataflowID - ID записи настройки интеграции, узнать можно из Dataflow\General\Main Grid\sq_Dataflow. Не забудьте подключить scr_Dataflow1CUtils туда, откуда будет вызываться scr_Dataflow1CUtils.ImportAllObject(DataflowID, Attributes);

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