Как настроить положение курсора при открытии списка документов в 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Часто в процессе разработки или поддержки конфигураций на управляемых формах возникает вопрос: почему при открытии списка документов у одних пользователей фокус устанавливается на последнем документе, а у других — на первом? Давайте разберемся, как устроена логика позиционирования списка в 1С и какими инструментами мы можем управлять этим поведением.

Настройка через свойства формы в Конфигураторе

Первым делом проанализируем стандартные возможности платформы. В управляемых формах поведение списка при открытии определяется свойством элемента формы НачальноеОтображениеСписка. Это свойство доступно в палитре свойств для динамических списков, связанных с данными.

Разберем подробнее, как работает значение Авто:

  1. Если установлено значение Авто, платформа сама определяет, куда перевести фокус, основываясь на типе списка и порядке сортировки.
  2. Переход в конец списка по умолчанию срабатывает для списков документов, журналов, записей регистров и задач, если первым полем в сортировке является Дата или Период.
  3. Для прочих типов данных или при иной сортировке список по умолчанию будет открываться с начала.

Если вы заметили, что поведение отличается у разных пользователей, несмотря на одинаковые настройки в конфигураторе, рассмотрим вероятные причины и методы их устранения.

Программное управление фокусом и текущей строкой

Иногда стандартных настроек недостаточно, и нам требуется принудительно установить курсор на конкретную строку (например, на документ с текущей датой). Для этого мы можем использовать серверный код в обработчике ПриСозданииНаСервере или ПриОткрытии.

Рассмотрим, как это реализовать на практике:


// Установка фокуса на определенный элемент формы
ЭтаФорма.ТекущийЭлемент = Элементы.Список;

// Программное выделение конкретной строки в коллекции
// Допустим, мы нашли нужный нам идентификатор строки
ИскомыйИдентификатор = ПолучитьИдентификаторНужнойСтроки();
Элементы.Список.ТекущаяСтрока = ИскомыйИдентификатор;

Обратите внимание, что если вы принудительно задаете ТекущуюСтроку в коде, это значение будет иметь приоритет над свойством НачальноеОтображениеСписка.

Почему поведение пользователей отличается?

Ситуация, когда у одного пользователя список «прыгает» в конец, а у другого — в начало, обычно связана не с ошибкой в конфигурации, а с персональными настройками:

Рекомендации по диагностике

Чтобы понять, где именно скрыта проблема, выполним следующие шаги:

  1. Проверим наличие активных отборов в меню списка. Часто пользователи случайно включают фильтрацию, которая меняет восприятие списка.
  2. Выполним команду «Установить стандартные настройки» в меню «Еще» формы списка. Это сбросит все персональные колонки и отборы.
  3. Если проблема сохраняется только у одного пользователя, проанализируем его права доступа. Возможно, RLS ограничивает видимость записей, из-за чего сортировка работает не так, как ожидалось.
  4. Проверим код в модуле формы. Убедимся, что нет вызовов, которые принудительно меняют ТекущуюСтроку при определенных условиях, зависящих от параметров пользователя.

Используя данные методы, вы сможете точно определить причину разного поведения системы и настроить удобный интерфейс для всех сотрудников.

← На главную