Часто в процессе разработки или поддержки конфигураций на управляемых формах возникает вопрос: почему при открытии списка документов у одних пользователей фокус устанавливается на последнем документе, а у других — на первом? Давайте разберемся, как устроена логика позиционирования списка в 1С и какими инструментами мы можем управлять этим поведением.
Первым делом проанализируем стандартные возможности платформы. В управляемых формах поведение списка при открытии определяется свойством элемента формы НачальноеОтображениеСписка. Это свойство доступно в палитре свойств для динамических списков, связанных с данными.
Разберем подробнее, как работает значение Авто:
Авто, платформа сама определяет, куда перевести фокус, основываясь на типе списка и порядке сортировки.Дата или Период.Если вы заметили, что поведение отличается у разных пользователей, несмотря на одинаковые настройки в конфигураторе, рассмотрим вероятные причины и методы их устранения.
Иногда стандартных настроек недостаточно, и нам требуется принудительно установить курсор на конкретную строку (например, на документ с текущей датой). Для этого мы можем использовать серверный код в обработчике ПриСозданииНаСервере или ПриОткрытии.
Рассмотрим, как это реализовать на практике:
// Установка фокуса на определенный элемент формы
ЭтаФорма.ТекущийЭлемент = Элементы.Список;
// Программное выделение конкретной строки в коллекции
// Допустим, мы нашли нужный нам идентификатор строки
ИскомыйИдентификатор = ПолучитьИдентификаторНужнойСтроки();
Элементы.Список.ТекущаяСтрока = ИскомыйИдентификатор;
Обратите внимание, что если вы принудительно задаете ТекущуюСтроку в коде, это значение будет иметь приоритет над свойством НачальноеОтображениеСписка.
Ситуация, когда у одного пользователя список «прыгает» в конец, а у другого — в начало, обычно связана не с ошибкой в конфигурации, а с персональными настройками:
Чтобы понять, где именно скрыта проблема, выполним следующие шаги:
RLS ограничивает видимость записей, из-за чего сортировка работает не так, как ожидалось.ТекущуюСтроку при определенных условиях, зависящих от параметров пользователя.Используя данные методы, вы сможете точно определить причину разного поведения системы и настроить удобный интерфейс для всех сотрудников.