Подсмотрел реализацию onLookupResult в базовом коде
onLookupResult: function(args) { var selectedRows = args.selectedRows; if (!selectedRows.isEmpty()) {
всё работает, кроме случая, когда в окне выбора я нажал "Добавить".
В этом случае selectedRows.isEmpty() всегда true.
Как получить созданную запись?
Нравится
Добрый день, при нажатии кнопки "Добавить" из всплывающего окна (допустим при изменении поля с типом "Контакт") нас пересылает на страницу создания контакта. В этом случае мы не выбираем значение из списка и логично, что selectedRows.isEmpty() окажется true. Можете уточнить, для чего вам нужно получать созданную запись?
Дима Вовченко,
Полученная новая запись нужна, чтобы создать дополнительную связанную запись. В моём бизнес-кейсе это важно.
И эту запись нужно создавать, когда контакт создается именно в определенных местах.
Алексей-Карягин,
Я немного ошибся в прошлом сообщении,
selectedRows.isEmpty() окажется true в некоторых случаях. Например, поле "Ответственный", в которое можно записать только тот контакт, по которому существует пользователь системы. В этом случае после нажатия "Добавить" создастся новый контакт, но поскольку под него нет пользователя, то selectedRows окажется пустым и значение в поле не изменится. Если добавить новое поле справочник и уже в него добавлять запись, то selectedRows будет иметь значение созданного объекта.
Как вариант мне кажется сделать в ContactPageV2 в методе onSaved посыл сообщения о том что Контакт создан имеено таким способом, карточки подписчики будут получать сообщение и делать то что нужно.
Костыль, но думаю рабочий вариант.
Похоже у меня не правильная постановка вопроса.
selectedRows.isEmpty() == true из-за фильтра, но фильтр надо как-то обойти.
Привожу пример для поля "Ответственный". Сам фильтр находится в схеме BaseFiltersGenerateModule, и вы можете попробовать его переопределить. Фильтр привязывается через атрибут на схема ContactPageV2:
"Owner": { dataValueType: Terrasoft.DataValueType.LOOKUP, lookupListConfig: {filter: BaseFiltersGenerateModule.OwnerFilter} },
Можно попробовать поработать и с этим. Если ничего не поможет, вы можете создать новую колонку-справочник, где уже не будет использоваться фильтр.