Показать сообщение отдельно
Старый 20.05.2022, 12:10   #1  
oleggy is offline
oleggy
Участник
 
253 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
двойная идентификация нового поля в таблице по fieldid (2 разных fieldid)
Привет.
Никак не могу понять что у определенного поля у таблицы может быть два fieldid.
И под обоими оно находится через:
X++:
new DictField(_tableId, _fieldId).dictField.name()
fieldId2name(_tableId, _fieldId)
Важно: данное поле не стоковое, а новое - созданное.
Вот код:
X++:
int id;
str name;

str _fieldName(tableId _tableId, fieldId _fieldId)
{
	DictField dictField = new DictField(_tableId, _fieldId);
	str     ret;
	;
	if (dictField)
		ret = dictField.name();
	return ret;
}
;

id = fieldNum(smmActivities, NewField);
info(strFmt("field name (%1) = %2", id, fieldId2name(tableNum(smmActivities), id)));
info(strFmt("field name (%1) = %2", 115539, fieldId2name(tableNum(smmActivities), 115539)));
info(strFmt("field name (%1) = %2", 115539, _fieldName(tableNum(smmActivities), 115539)));

Его выполнение дает результат:
Цитата:
field name (50003) = NewField
field name (115539) = NewField
field name (115539) = NewField
Т.е. получается у таблицы smmActivities есть новое поле NewField
которое одинакого находится под id 50003 и 115539.

Посмотрел в таблице SqlDictinary в SQL под данным именем существует только запись с id 50003.
Вопрос, что за виртуальный номер 115539 ?
Кто нибуль сталкивался с таким?

Последний раз редактировалось oleggy; 20.05.2022 в 12:15.