Сохранить ID раздела из которого добавлена новая запись в справочник
Доброго дня!
Приведу пример на стандартных объектах. В карточке Контрагента есть поле Страна. В справочник Страна добавлено поле Источник. Нужно в поле Источник записывать информацию о том, из какого объекта (контрагента) была создана эта запись.
Сценарий такой:
- Пользователь через лукап в поле Страна открывает окно поиска
- не находит страну, жмет добавить, открывается справочник, добавляет новую страну.
Вопрос. Как сохранить сведения об источнике добавления записи...что она добавлена именно из этого контрагента?
Есть похожая тема: https://community.terrasoft.ru/questions/zapolnenie-polei-v-kartocke-pr… там нет решения.. и новых ответов тоже.
Спасибо!
Нравится
А если использовать гипотезу, что раз он добавил новую запись, например, страны, то он ее и выберет в контрагенте. Далее смотрим, что у новой страны нет записи, откуда она была добавлена и находим те записи, которые ссылаются на нее (брать первую запись по дате изменения). Это можно сделать периодическим бизнес процессом.
Думаю простого решения нет, как вариант сохранить в сессии пользователя источник (название страницы редактирования) переопределить добавление записи в LookupPage (заполнять источник из сессии)
Если делать свою страницу выбора со справочника (наследник LookupPage), то потом можно его подключить добавив в атрибут (Пример для страницы выбора из справочника городов):
"City": { "dataValueType": Terrasoft.DataValueType.LOOKUP, "lookupListConfig": { lookupPageName: "MyBaseLookup", } }
Подробнее тут
Так же похожий вопрос обсуждался тут
А если использовать гипотезу, что раз он добавил новую запись, например, страны, то он ее и выберет в контрагенте. Далее смотрим, что у новой страны нет записи, откуда она была добавлена и находим те записи, которые ссылаются на нее (брать первую запись по дате изменения). Это можно сделать периодическим бизнес процессом.
Тогда можно ещё проще: при сохранении контрагента во встроенном или отдельном БП проверять значение «Страна.Источник» и если там пусто, заполнять Id этого контрагента.