During the study, I found that at the initial stage, when the order of the columns has not yet been changed, field.ActivePosition.Columnfor each column 0or == field.Index, therefore, by entering the following flag:
bool initialOrderChanged = fieldsLayout.Fields.Any(f =>
f.ActualPosition.Column != 0
&&
f.ActualPosition.Column != f.Index);
:
int position = initialOrderChanged
? field.ActualPosition.Column
: field.Index,