Как включить бегунок в 1с
Продолжаем разбирать особенности интерфейса 1С Предприятие 8. Как и раньше, все примеры будут приводиться в 1С Бухгалтерии (8.2 или 8.3). Сегодня речь пойдёт об особенностях прокрутки списков документов, справочников, регистров, а также всего что можно прокручивать в программе.
Любому пользователю Windows (да и не только Windows) хорошо знаком такой элемент управления, как полоса прокрутки. Он появляется там, где что-то куда-то не влезает. Например, файлы в окно Проводника, текст в Microsoft Word и так далее. Особые комментарии тут не нужны. Классический вариант полосы прокрутки показан на рисунке ниже.
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
У такой полосы прокрутки есть всем известное и очень любимое свойство — ползунок можно зацепить мышкой и перетаскивать, таким образом осуществляя быструю прокрутку. Это, безусловно, очень удобно. И вот пользователи 1С Предприятие 8 (любой версии), привыкнув к такому удобному способу, начинают пытаться прокручивать большие списки документов или данные справочников. Вот тут-то их всех и поджидает один неприятный сюрприз!
Конфигурация 1С:Бухгалтерия 8.3 не доставит Вам неприятных сюрпризов, если Вы будете понимать как она работает. Изучить конфигурацию «с нуля» Вам поможет специальный учебный видеокурс, содержащий 42 часа практических задач. С примерами уроков из нашего видеокурса Вы можете познакомиться по ссылке.
На рисунке ниже приведён пример обычной для 1С Бухгалтерии 8 полосы прокрутки в журнале документов.
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
На первый взгляд такая прокрутка ничем не отличается от полосы прокрутки в обычных программах для Windows (например, прокрутка в браузере). Но на самом деле её возможности сильно ограничены.
Запомните: Полоса прокрутки во всех версиях 1С Предприятие 8 практически нефункциональна!. У неё может быть только три положения — самый верх, самый низ и посередине окна. Перетаскивать её мышкой с целью быстрой прокрутки бесполезно!
Некоторые пользователи думают, что это ошибка. На самом же деле подобное поведение полосы прокрутки связано с особенностью чтения данных из информационной базы и для всех версий 1С:Бухгалтерии 8 является абсолютно нормальным.
Поэтому если вам потребовалось быстро перейти из одного конца списка в другой, воспользуйтесь клавишами Home (в начало) или End (в конец). Также есть быстрый поиск, фильтры по времени и дате документа, типу документа и прочее. Всё это позволяет обойтись без полосы прокрутки без особого ущерба для удобства использования 1С Предприятие 8.
Однако при всём вышесказанном, в 1С Предприятие 8 встречаются окна с "нормальной" полосой прокрутки, как в обычных Windows программах. Это окна, отображающие как правило, некие статичные неизменяемые данные (предустановленные), которых к тому же в списке ограниченное количество (в отличие от документов, которых в большой базе легко может быть 100 000). Такие списки легко определить.
Правило: если в окне 1С Предприятие 8 вы видите полосу прокрутки, у которой ползунок маленький (практически квадратный) и находится ровно посередине полосы (хотя вы только что открыли список и должны были попасть его начало / конец), то перед вами как раз такая нефункциональная полоса прокрутки. Если же вы видите обычный ползунок в начале / конце списка, причем его размер, как правило, больше "того самого квадратного", то это обычная полоса прокрутки и её ползунок можно смело перетаскивать мышкой.
Пример нормальной полосы прокрутки в 1С Предприятии 8 приведён ниже. Вот такой ползунок перетаскивать можно.
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
Так что будьте внимательны с прокруткой в 1С Предприятии 8 и не пытайтесь сделать невозможное с её (прокруткой) "ограниченными" версиями.
Рассмотрение всех особенностей стандартного интерфейса 1С входит в представленные на сайте учебные курсы. Ознакомиться с учебным планом занятий вы можете, например, здесь.
Зато в некоторых прокручивает нормально. А в определенных вообще прокрутки нет.
PS. Вот и поговорили.
ох, извиняюсь, постоянно забываю про эти формальности
крутится то оно крутится вопрос в том почему оно ничего непрокручиват
если точнее сказать то передвижение полосы прокрутки приводит зачастую к непредсказуемым результатам, колёсиком мышки можно крутить но это же долго
(10) Потому что не может рассчитать позицию курсора относительно количества данных в наборе. Так устроены СУБД.
Листайте с клавиатуры.
да так повеселей конечно, но все равно не так удобно как было бы с нормальной полосой прокрутки, они (полосы прокрутки) ведь не просто так придуманы были
(0) в клиент-серверной базе это работает вот так. Живите с этим.
неприятность эту мы конечно переживём, но неприятный осадок остаётся
(18) это новая суперфишка. Прокрутки везде будут полностью уничтожены.
Задача динамического списка - быстро показать небольшую часть из, возможно, огромного массива данных, хранящегося в базе данных. При этом динамический список не анализирует весь имеющийся массив данных. С одной стороны это позволяет ему работать быстро, с другой стороны, по этой же причине, он не имеет информации о том, в какой части массива данных находится часть, которую он отображает.
Поэтому, убрав вертикальную полосу прокрутки с бегунком, мы, по сути, просто привели внешний вид таблицы динамического списка в соответствие с его фактическими возможностями.
разве нельзя сделать динамическую полосу прокрутки которая бы отражала количество элементов в локальном датасете и автоматически пересчитывалась по мере обновления локального датасета? Так все нормальные люди делают. Если это правильно реализовать то поведение полосы прокрутки будет вполне предсказуемым и юзабельным. Что не так с 1С?
(19), эта "суперфишка" - решение проблемы перекачивания больших массивов данных для браузеров и "тонких" клиентов.
Для нормального _полноценного_ скролла в оперативной памяти компьютера приходится держать ВСЮ таблицу с данными. Для 7.7 это не было проблемой, так как и сама база и приложение были монолитны и работали с одного файла, который легко подгружался в память.
Много ли мало ли времени прошло, про то не ведомо. Старые разработчики и архитекторы уходили на пенсию, приходили молодые свежие умы. Однаждны в их рядах появился один странный парень, имя которого мы все уже забыли, но идеи его проникли в сердца даже в сердца старичков-основателей фирмы и програмистов-фортранщиков. И поведал он всем истину: "Не пытайся согнуть ложку. Это невозможно. Вместо этого попытайся понять правду. Ложки не существует. Тогда ты увидишь, что это не ложка гнётся. Это только ты сам.". Так появилась прокрутка без скролла. Появилась в версии плаформы 8.3.8.1652. И называться стала Прокрутка в таблицах динамических списков. Там нет ни полосы прокрутки, ни ползунка. Ну вот примерно таким образом развитие интерфейсов выродила так нами любымый скролл-бар в 4 простые кнопки: Home, Back, Next, End. Эволюция сделала очередной виток.Полоса прокрутки то постоянно подпрыгивает!
Но это нормально для динамических списков, это просто свидетельствует о том что записей больше или возможно появились новые, это удобно, теперь вообще непонятно что где, если нажать например на кнопку "перейти к концу списка" то что будет если появятся новые записи? кнопка "отожмётся" или список автоматически прокрутится вниз? или ничего не произойдёт? Главарь у них там самый настоящий главнюк.
(20) Это всё здорово, но почему внешняя обработка на УФ с табличной частью несколько тысяч строк тормозит перед отображением данных? Значит на уровне платформы динамическое (или в данном случае "порционное") считывание не работает? Приходится выводить то же самое в табличный документ, что на порядок быстрее.
(21) Зачем на клиент? Это можно сделать на сервере, большей частью СУБД, а остальное 1С, а потом передать на клиента позицию и размер ползунка. Нагрузка, конечно, вырастет, но выглядеть будет как раньше.
(25) ничего там не фиксируется и не отжимается. Переходишь в конец списка, при появлении новых данных в конце списка форма обновляется ии это уже не конец списка, нужно нажимать кнопку и снова переходить в конец списка. Что не понятного?
Вот в 8.3.8.1675 в обычных формах почти все ползунки прокрутки стали недоступными - вот это жесть и косяк платформы.
(22)вот как твои нормальные люди запилят журнал проводок на миллиард записей с полосой прокрутки - "локальный датасет" этот положит сначала сеть, а потом сервер
зато бегуночек мы крутить могём
(29) нельзя, потому что сервер не занимается задачами отображения данных ни в каком виде. Это задача клиента. Данные подкачиваются тогда, когда клиент подходит к концу набора данных, в этом случае скроллинг автоматически продлевается, и пользователь никогда точно не знает, когда это закончится, может там 100 записей, а может и миллион. Так было, есть и будет на клиент-серверных приложениях.
Для того, чтобы сделать нормальную полосу прокрутки нужно иметь:
1. Датасет для отоброжения (точно есть)
Этого достаточно, чтобы получть точный скролл, который рядом с текущим окном будет бегать быстро, а вдаль с небольшим лагом. Собственно, так все фильмы мотаются и пользователям это будет понятно.
Откуда у вас в фантазиях берется полный датасет в памяти клиента я не понимаю.
Разработка на платформе 1С:Предприятие
— Главное меню — Вопрос/Ответ — 1. Вопрос: Не работает бегунок в скроллинге журнала документов?
1. Вопрос: Не работает бегунок в скроллинге журнала документов?
Ответ:Во всех динамических списках 1С:Предприятия 8.0 полоса прокрутки не отображает относительное положение в списке видимой области и используется только для листания списка страницами, перехода к началу и концу списка, а также отображения того что видимая область включает начало или конец списка.
Это объясняется тем, что динамические списки не считывают всю информацию сразу, а обращаются к базе данных по мере листания списка пользователем. Поэтому определение относительного положения видимой области не может быть выполнено без существенных потерь в производительности при просмотре списка.
Немного подробнее.
В 1С:Предприятии 8.0 реализован специальный механизм работы с динамическими списками. Он позволяет просматривать в форме таблицы (справочники, документы и т. д.) любого размера без задержек по времени при открытии списка или переходе к какой-либо его строке. Записи из базы данных считываются блоками близкими по размеру к видимой области экрана. Считывание производится в процессе листания списка пользователем. Каждое получение блока выполняется одним запросом, включая представления ссылочных полей. Таким образом, с одной стороны количество запросов к базе данных невелико, а с другой стороны не происходит считывание сразу большой порции информации. С точки зрения сервера базы данных каждый запрос исполняется независимо. Механизм устроен так, что может считывать список с любой записи. Например, если нужно открыть список, установившись на конкретном документе, то будут считаны только несколько документов до и после, которые нужно отобразить на экране. Соответственно информации об относительном положении текущей записи среди общего множества нет, так считывается только видимая область.
Читайте также: