День добрый.
Подскажите как установить значение в поле которого нет на странице редактирования.
Есть поле типа "справочник". В него нужно запихнуть id записи которая получается запросом, а само поле на странице не отображать.
Нравится
Добрый день!
Добавьте его в атрибуты страницы:
attributes: { "ProductType": { dataValueType: Terrasoft.DataValueType.LOOKUP, referenceSchemaName: "ProductType" } }
После этого можете с ним работать методами set и get
Я конечно догадываюсь, что, скорее всего, вас интересует возможность записи в объекты посредством esq. Почитайте подробнее тут: https://academy.terrasoft.ua/documents/technic-sdk/7-6-0/ispolzovanie-r…
И если возникнут точечные вопросы, задавайте, либо более подробно объясните что вам нужно, желательно с примерами, названиями полей, и.т.д. А то вопрос звучит слишком абстрактно.
Если же вас интересует глобальная "переменная", для переиспользования её далее в рамках схемы, то ответ выше.
"Дмитрий Степанов" написал:Добрый день!
Добавьте его в атрибуты страницы:
attributes: {
"ProductType": {
dataValueType: Terrasoft.DataValueType.LOOKUP,
referenceSchemaName: "ProductType"
}
}После этого можете с ним работать методами set и get
Добавил. Вот только в базе изменения не отображаются.
.Погодите, не понял. То, что вы спросили относится в атрибуту, который живет на страничке. Только на страничке. Если хотите, чтобы оно писалось в БД, создайте одноименное поле в объекте с аналогичным типом. Потом на страничке его объявите так, как я написал. Теоретически должно работать и сохранение.
"Сурмачевский Евгений Александрович" написал:Добавил. Вот только в базе изменения не отображаются
Естественно, атрибут это не физическая колонка в БД. Физическую колонку в бд вам необходимо добавить в объект, и\или если она там есть, использовать esq для установки её значения:
https://academy.terrasoft.ua/documents/technic-sdk/7-6-0/ispolzovanie-r…
Либо так как описано выше, создать атрибут, одноименнный колонке, и через this.set устанавливать её значение, не вы водя её на карточку.
"Дмитрий Степанов" написал:.Погодите, не понял. То, что вы спросили относится в атрибуту, который живет на страничке. Только на страничке. Если хотите, чтобы оно писалось в БД, создайте одноименное поле в объекте с аналогичным типом. Потом на страничке его объявите так, как я написал. Теоретически должно работать и сохранение.
Не до конца выразил мысль. Есть поле в объекте ("IncomeSpare") и тип его справочник. Я запросом получаю Guid и хочу это значение внести в базу в колонку "IncomeSpareID".
На самой странице редактирования я не хочу размещать данный справочник.
Использовать esq ? Описанный вами способ к сожалению не работает.
"Сурмачевский Евгений Александрович" написал:я не хочу размещать данный справочник.
Не прописывайте данное поле в diff
"Сурмачевский Евгений Александрович" написал: хочу это значение внести в базу в колонку "IncomeSpareID".
Делайте Insert в бд после получения Guid'а или
this.set(/*название поля*/, {value: /*id*/, displayValue: /*name поля из справочника*/})
1. Создаете в структуре объекта поле IncomeSpare, тип справочник
2. на странице объекта объявляете атрибут
attributes: { "IncomeSpare": { dataValueType: Terrasoft.DataValueType.LOOKUP, referenceSchemaName: "IncomeSpareLOOKUP" //ваше наименование справочника } }
3. В коде страницы перед сохранением присваиваете ему значение:
this.set("IncomeSpare", value)
Сделал как описал Дмитрий.
Вот только установил значение таким способом: this.set(/*название поля*/, {value: /*id*/, displayValue: /*name поля из справочника*/})
Все получилось.
Всем спасибо.