Всем привет!
В разделах лиды и продажи при создании новой записи сразу ставится начальная стадия кейса. Теперь хочется сделать подобный функционал и для своего кастомного раздела.
По логике вещей у нас есть справочник, допустим стадии и в нем перечислены стадии кейса. Как я понимаю, при инициализации страницы необходимо в справочное поле передать нужное нем значение.
В голову приходит подобный код
if (this.isAddMode() || this.isCopyMode()) {
this.set("UsrStatus", значение справочника)
}
Но ничего подобного я не обнаружил в исходниках страницы продаж или лидов.
Внимание вопрос, можно ли делать так делать, может быть есть другой, более правильный способ установки первичной стадии?
Вопрос два, как установить значение справочного поля через set?
Знаю, что качестве второго аргумента в set нужно передавать конструкцию {value: "Guid",
displayValue: "Caption" }
Как правильно получить guid, зная только название справочного поля? Напрямую писать guid это слишком костыльно выглядит.
Нравится
1) На уровне объекта у колонки св-во: "значение по умолчанию". смотрим на какое справочное поле биндится полоска стадий, ну и соответственно ему задаём значение.
2) this.loadLookupDisplayValue(guid, #колонка_объекта_в_которую_надо_установить_значение#, callback, scope)
Варфоломеев Данила, а можно еще пример работы с методом loadLookupDisplayValue?
К примеру мне нужно получить установить значение "Подписан" в справочной поле Состояние договора, название схемы ContractState, название поля на карточке usrContractState. Что нужно выполнить?
Трефилов Павел Сергеевич пишет:
пример работы с методом
this.loadLookupDisplayValue("UsrContractState", "d7e40d7c-1fa4-49cb-a0d5-57a936f9a463"); //подменить на id значения "Подписан". Метод установит значение. //или, если нужен коллбек: this.loadLookupDisplayValue("UsrContractState", "d7e40d7c-1fa4-49cb-a0d5-57a936f9a463", function() { //сюда провалимся после того, как система установит значение. Удобно, когда надо дальше работать со значением UsrContractState. }, this)
Варфоломеев Данила,
Понятно, по сути не сильно это отличается от установки через set.
this.set("UsrContractState", {value: "d7e40d7c-1fa4-49cb-a0d5-57a936f9a463", displayValue: "Подписан"});
Единственный бонус, что можно работать с колбеком.
Трефилов Павел Сергеевич пишет:
Единственный бонус, что можно работать с колбеком.
Не только. К UsrContractState через lookupListConfig/columns вы можете подгружать допполя. Так вот в случае вызова loadLookupDisplayValue, функция их подгрузит, через set - нет.