Перейти к содержимому
Участник сообщества #19
Участник сообщества #19
3 мар. 2025 г., 12:40(изменён)
Решено
0
0

Хранение XMD/XMS кастомных типов документов

Из чата сообщества

Всем привет, а где хранится xmd и xms кастомного Типа документа?

Участник сообщества
Участник сообщества3 мар. 2025 г., 12:49(изменён)
Решение

Если я правильно помню то смотри в таблице blobs, там по url отфильтровать , вроде x-local:/udt

ну и соответственно если подходит before init/save action то можно там тригеррить системное событие свое, а если нет - то тогда уже в логике самописной xms это прописать

Участник сообщества
Участник сообщества3 мар. 2025 г., 12:54(изменён)

Blobs - правильно читать, blobs...

Участник сообщества
Участник сообщества3 мар. 2025 г., 12:54(изменён)

А править их там можно? 😇

я хотел понять, логика BEFORE-SAVE-ACTION OnSave из xmd = save action из карточки кастомного Типа документа?

Участник сообщества
Участник сообщества3 мар. 2025 г., 13:43(изменён)

Технически то можно наверное, только при старте системы если я правильно понимаю процесс, они каждый раз регистрируются, на основании каталога типов документов и типовой формы для них.

Да вот смотрел на эти поля, но попытки через них что-то сделать не принесли результата Если можно пример - то будет супер

ну а там дальше если уж логика события и тд будет какая то мудреная или смущает что нужно в 2х местах код держать - то можно офрмить это все в библиотечку и просто вызывать ее из этих мест

Участник сообщества
Участник сообщества3 мар. 2025 г., 13:45(изменён)

Хотел системное событие для них создавать

У меня вообще создалось впечатление, что код из этих полей в Eval выполняется

Получается, что объект не ждёт save action и сохраняется, или же через него можно работать с TopElem документа до его закрытия и сохранения?

Да-да, я об этом) Мне аналог OnSave в xmd для кастомного Типа документа нужен) В прошлом вопросе ошибся в названии - OnSave с BEFORE-SAVE-ACTION перепутал (сейчас исправил в сообщении, зачеркнув BEFORE-SAVE-ACTION)

Xmd даёт своё Системное событие через OnSave создать, а дальше как обычным Системным событием пользоваться - этим и привлекает)

Участник сообщества
Участник сообщества3 мар. 2025 г., 14:04(изменён)

Так там же в самом типе документа можно для них сделать 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 на случай если будут через клиент сохранять и там триггер для события сделать

  • сделать триггер в том коде, который (если) будет создавать объекты этого кастомного типа
Участник сообщества
Участник сообщества3 мар. 2025 г., 14:45(изменён)

не совсем понял, если вопрос про BEFORE-SAVE-ACTION то код который там находится - выполнится как раз перед сохранением объекта, а так как там простой eval, то внутри будут доступны все внешние переменные текущего окружения в том числе и TopElem

Участник сообщества
Участник сообщества3 мар. 2025 г., 14:58(изменён)

А эти события выполняются не только когда на клиенте карточку сохраняешь? Если кодом создаешь объект, по-моему не тригерятся?

да, верно

Я это к тому, если туда прописать какую-то логику. Она не всегда будет выполняться, при создании/сохранении объекта.

Ну и тут уже вопросы о том как и для чего это будет использоваться, если это что то что создается кодом и только кодом - то можно не заморачиваться правками форм и просто прописать в этом коде триггер события своего, если это что то что будет использоваться в том числе и через интерфейс - то тут придется и так и так делать. Лезть и править прям созданную xmd в БД я бы точно не стал, с типами документов и так много головной боли

Чтобы ответить, необходимо войти в систему