Здравствуйте!
Интересует вопрос. А как вызвать импорт из 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);