Хранение XMD/XMS кастомных типов документов
Всем привет, а где хранится xmd и xms кастомного Типа документа?
Если я правильно помню то смотри в таблице blobs, там по url отфильтровать , вроде x-local:/udt
ну и соответственно если подходит before init/save action то можно там тригеррить системное событие свое, а если нет - то тогда уже в логике самописной xms это прописать
Blobs - правильно читать, blobs...
А править их там можно? 😇
я хотел понять, логика BEFORE-SAVE-ACTION OnSave из xmd = save action из карточки кастомного Типа документа?
Технически то можно наверное, только при старте системы если я правильно понимаю процесс, они каждый раз регистрируются, на основании каталога типов документов и типовой формы для них.
Да вот смотрел на эти поля, но попытки через них что-то сделать не принесли результата Если можно пример - то будет супер
ну а там дальше если уж логика события и тд будет какая то мудреная или смущает что нужно в 2х местах код держать - то можно офрмить это все в библиотечку и просто вызывать ее из этих мест
Хотел системное событие для них создавать
У меня вообще создалось впечатление, что код из этих полей в Eval выполняется
Получается, что объект не ждёт save action и сохраняется, или же через него можно работать с TopElem документа до его закрытия и сохранения?
Да-да, я об этом) Мне аналог OnSave в xmd для кастомного Типа документа нужен) В прошлом вопросе ошибся в названии - OnSave с BEFORE-SAVE-ACTION перепутал (сейчас исправил в сообщении, зачеркнув BEFORE-SAVE-ACTION)
Xmd даёт своё Системное событие через OnSave создать, а дальше как обычным Системным событием пользоваться - этим и привлекает)
Так там же в самом типе документа можно для них сделать before init/save action или подключить свой xms шаблон, зачем прям стандартную форму править?
да, в eval, вот тут wtv/udt_doc_form.xms можно посмотреть что и как происходит с кодом в этих полях
Смотри, давай убедимся что точно об одном говорим) 1 - Ни BEFORE-SAVE-ACTION ни SAVE-ACTION не относятся к xmd, они относятся к экранной форме - к xms 2 - BEFORE-SAVE-ACTION выполняется до SAVE-ACTION, это отдельный этап и он не заменяет SAVE-ACTION
да, по этому как раз и хочу понять что с Романом об одном говорим)
Если он имеет ввиду под save action метод OnSave в xmd - то это разные вещи
в xmd кастомного Типа документа насколько я помню нет OnSave вообще, так что способа добавить его туда не залезая руками в кишки я не знаю. Но как по мне проще воспользоваться BEFORE-SAVE-ACTION на случай если будут через клиент сохранять и там триггер для события сделать
- сделать триггер в том коде, который (если) будет создавать объекты этого кастомного типа
не совсем понял, если вопрос про BEFORE-SAVE-ACTION то код который там находится - выполнится как раз перед сохранением объекта, а так как там простой eval, то внутри будут доступны все внешние переменные текущего окружения в том числе и TopElem
А эти события выполняются не только когда на клиенте карточку сохраняешь? Если кодом создаешь объект, по-моему не тригерятся?
да, верно
Я это к тому, если туда прописать какую-то логику. Она не всегда будет выполняться, при создании/сохранении объекта.
Ну и тут уже вопросы о том как и для чего это будет использоваться, если это что то что создается кодом и только кодом - то можно не заморачиваться правками форм и просто прописать в этом коде триггер события своего, если это что то что будет использоваться в том числе и через интерфейс - то тут придется и так и так делать. Лезть и править прям созданную xmd в БД я бы точно не стал, с типами документов и так много головной боли