Обращение к пользовательскому полю

Здравствуйте.

В системе существует пользовательское поле Уровень лояльности (type_loyal, тип - справочник) для Контрагента.
Необходимо в скрипте при редактировании записи Контрагента обратиться к текущему значению этого поля в открытой еще не сохранненой карточке.
Подскажите, как правильно написать название поля, где уже заполнено это значение.
Пробовала написать edttype_loyal, но видимо это не правильно.

Нравится

4 комментария

Попробуйте так:

var Field = Self.ComponentsByName('dlData').Dataset.DataFields.
    ItemsByName('type_loyal');

Для какой цели Вы хотите обратиться к полю?

Можно даже немного проще, чем предложил Олег.
Если Вы находитесь в скрипте карточки редактирования, то получить доступ к содержимому пользовательского поля можно так (даталинк dlData доступен напрямую):

dlData.Dataset('UserFieldID')

где UserFieldID - это значение из поля "Имя в базе данных", которое Вы задавали при создании пользовательского поля. Соответственно полученное таким образом значение Вы можете использовать дальше так, как Вам необходимо.

"Кулак Олег" написал:Для какой цели Вы хотите обратиться к полю?

Цель - при изменении этого поля : сравнить старое значение этого поля и новое, и запустить необходимый для выполнения скрипт, если эти значения разные.

Для этого Вам нужно в сервисе Вашего окна wnd_*Edit на вкладке невизуальных компонентов для даталинка dlData определить обработчик события OnDataChange (или перейти на него если уже есть).
В скрипте вначале должен быть объявлен глобальный объект скрипта. Допустим, что он называется YourScriptObject. Будем сохранять старое значения поля в виде YourScriptObject.OldYourUserFieldValue.
В коде обработчика пропишите фрагмент

	if (DataField.Name = 'TestUserFieldID') {
		if (!IsEmptyValue(YourScriptObject.OldYourUserFieldValue) &&
		   YourScriptObject.OldYourUserFieldValue != DataField.Value) {
			//Ваши действия здесь
		}
		YourScriptObject.OldYourUserFieldValue = DataField.Value;
	}

который и будет реализовывать Вашу задачу.

Показать все комментарии