Как при открытии списка справочника в 1С:Предприятие 7.7 автоматически переходить к последней записи?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Часто в процессе разработки прикладных решений на платформе 1С:Предприятие 7.7 возникает задача улучшения эргономики интерфейса. Одной из типичных просьб пользователей является автоматическое позиционирование курсора на последней добавленной записи при открытии формы списка справочника. Это позволяет менеджеру сразу видеть актуальные данные без лишних манипуляций с полосой прокрутки.

Анализ неэффективных подходов

В ходе обсуждения мы выяснили, что первоначальная попытка решения задачи через цикл Пока с полным перебором всего справочника является крайне неоптимальной. Такой метод создает избыточную нагрузку на базу данных и существенно замедляет открытие формы, особенно если в справочнике тысячи элементов. Мы рекомендуем отказаться от перебора всех записей в пользу методов прямого доступа к данным.

Оптимальное решение: использование обратного порядка выборки

Для того чтобы быстро получить последнюю запись, не нагружая систему, воспользуемся возможностью 1С 7.7 перевернуть порядок выборки элементов. Для этого применяются методы ОбратныйПорядок(1) и ПолучитьЭлемент(). Рассмотрим пошаговую реализацию:

  1. Создаем объект Справочник с нужным видом.
  2. Включаем обратный порядок для выборки, чтобы первым же элементом получить «последний» по критерию сортировки.
  3. Позиционируемся на найденном элементе с помощью метода АктивизироватьОбъект.

Приведем пример программного кода, который реализует данный алгоритм:


// Инициализируем объект справочника
Спр = СоздатьОбъект("Справочник." + Вид());

// Включаем обратный порядок, чтобы первым элементом выборки был последний
Спр.ОбратныйПорядок(1);

// Выполняем выборку элементов
Спр.ВыбратьЭлементы();

// Получаем первый элемент в обратной выборке (фактически последний в справочнике)
Если Спр.ПолучитьЭлемент() = 1 Тогда
    // Активизируем найденный элемент в форме списка
    АктивизироватьОбъект(Спр.ТекущийЭлемент());
КонецЕсли;

Важные нюансы реализации

При работе с иерархическими справочниками или специфической сортировкой необходимо учитывать следующие моменты:

Рекомендации по UX

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

Таким образом, использование метода АктивизироватьОбъект в связке с ОбратныйПорядок(1) является лучшим решением для реализации поставленной задачи в среде 1С:Предприятие 7.7.

← На главную