Содержание:
1. Режимы выделения строк динамического списка
2. Выделение строк в пользовательском режиме 1С
3. Программное выделение строк динамического списка в 1С
1. Режимы выделения строк динамического списка
В 1С большая часть информации может быть представлена в виде списков (справочников, документов, записей регистров и т.д.). Размеры этих списков могут быть весьма значительными, а их цельная выборка из 1С информационной базы данных потребует много времени. Для повышения скорости отображения списков данных с большим количеством элементов платформа 1С поддерживает механизм строки динамических списков. Его суть заключается в том, что из 1С информационной базы данных читается только небольшая порция данных, достаточная для текущего отображения на форме. Когда мы двигаемся по списку вверх или вниз, система считывает недостающие данные новыми небольшими порциями. Малый размер считываемых данных в каждый конкретный момент работы с таким списком обеспечивает высокую скорость обновления его отображения.
Динамические списки имеют два режима выделения строк:
· Одиночный
· Множественный
При «одиночном» режиме пользователь в каждый момент времени сможет выделить только один элемент списка; во множественном – несколько. Какой режим удобнее использовать, зависит от контекста решаемой задачи. Например, в документе закупки в 1С валюта документа или 1С договор с поставщиком может быть только один, поэтому списки «Валюты» и «Договоры контрагентов» имеет смысл давать открывать в «одиночном» режиме. А вот закупаемых товаров в документе может быть несколько, поэтому в 1С списки номенклатуры делают с множественным выделением строк.
Режим выделения строк устанавливает разработчик в конфигураторе. Для этого используется свойство «РежимВыделения» элемента формы, соответствующего динамическому списку.
2. Выделение строк в пользовательском режиме 1С
Во множественном режиме выделения строк возможны несколько вариантов работы пользователя:
· Если требуемые элементы списка разнесены друг от друга, то для их одновременного выделения удобно использовать комбинацию клавиши ctrl и левую кнопку мыши
Номенклатура
· Если же требуемые элементы расположены подряд, сначала мышью выделяем крайний верхний выделяемый элемент, а затем зажимаем клавишу shift и кликаем по крайнему нижнему элементу, а будут выделены все элементы между этими двумя
- В последнем случае можно обойтись без мыши и использовать для выделения клавиши shift и стрелки «вверх» и «вниз»
3. Программное выделение строк динамического списка в 1С
В 1С строки динамического списка можно выделять программно. Для этого динамическому списку должна быть назначена основная таблица.
Динамический список
Для одиночного выделения достаточно использовать свойство ТекущаяСтрока элемента формы через который отображается динамический список; в это свойство следует передать ссылку на элемент основной таблицы, который нужно выделить:
Элементы.элСписок.ТекущаяСтрока = НоменклатураСсылка;
Для множественного выделения можно использовать свойство ВыделенныеСтроки, в которое требуется записать массив ссылок элементов основной таблицы:
Массив Номенклатур = Новый Массив;
массивНоменклатур.Добавить(НоменклатураСсылка1);
…
массивНоменклатур.Добавить(НоменклатураСсылкаN);
Элементы.элСписок. ВыделенныеСтроки = массивНоменклатур;
Итак, мы рассмотрели режимы выделения 1С строк динамических списков, как с точки зрения пользователя, так и с точки зрения программирования.
Специалист компании "Кодерлайн"
Игорь Борисенко