Здравствуйте!
Интересует вопрос. А как вызвать импорт из 1С, из какого-нибудь произвольного раздела. Т.е. сделать действие, аналогичное "Импорт элемента" в разделе "Интеграции", но из другого раздела.
Нравится
Добрый день, Дмитрий.
Ответ на Ваш вопрос в Dataflow\General\Main Grid\scr_DataflowsGridArea.
Обработчик:
[javascript]
function amiRunImportOnExecute(ActionMenuItem, Sender) {
ExecuteImport(dlData.Dataset);
}
[/javascript]
Функция ExecuteImport берет ID выделенной записи интеграции, проверяет ее тип, и в зависимости от него, запускает тот или иной процесс синхронизации.
[javascript]
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;
}
[/javascript]
Таким образом, реализация Вашей задачи:
в произвольном месте раздела вызвать
[javascript]
Attributes('IsMain') = true;
Attributes('IsShowError') = true;
scr_Dataflow1CUtils.ImportAllObject(DataflowID, Attributes);
[/javascript]
Где DataflowID - ID записи настройки интеграции, узнать можно из Dataflow\General\Main Grid\sq_Dataflow. Не забудьте подключить scr_Dataflow1CUtils туда, откуда будет вызываться scr_Dataflow1CUtils.ImportAllObject(DataflowID, Attributes);