При помощи Пользовательские сущности вы можете организовать хранение и использование пользовательских справочников, данные которых хранятся, например, в других системах (приложениях). Обновление данных справочника можно реализовать при помощи скриптовой автоматизации, которая будет запускаться по расписанию, либо в ручном режиме.
В этом примере мы работаем с пользовательской сущностью, с уже настроенными атрибутами.
В настройках проекта, в разделе Пользовательские действия, создаем новое действие для нашей пользовательской сущности:
В качестве параметра указываем поле XML типа "текстовое поле", отмечаем галочкой признак того, что данное пользовательское действие будет применяться для создания строк справочника.
На вкладке PHP-скрипт размещаем скрипт, который парсит переданный XML и формирует строки справочника на основе данных из XML:
$doc = new \DOMDocument("1.0", APP_ENCODING);
$doc->loadXML($it->get('xml'));
$text = "";
foreach(libxml_get_errors() as $error) {
$text .= $error->message;
}
if ( $text != '' ) getFactory()->error($text);
$custom = getFactory()->getObject('custom_ChangeNotifications');
foreach ($doc->firstChild->childNodes as $child)
{
if (! $child instanceof \DOMElement) continue;
getFactory()->mergeEntity($custom, [
'Caption' => $child->getAttribute("Обозначение"),
'Author' => $child->getAttribute("Автор"),
'MainCode' => $child->getAttribute("УникальныйИдентификатор")
],
['MainCode']
);
}
здесь предполагается следующее:
Переходим в пользовательский справочник и запускаем пользовательское действие:
В журнале событие можно отслеживать историю обновления справочника и возможные проблемы, которые могут возникать при работе скрипта.