helpf.pro
Регистрация
 0 
Распечатать

Динамический список ~ Как программно выделить все строки динамического списка?

В платформе “1с предприятие 8.2″ появился такой замечательный объект как “динамический список“. Данный объект я часто использую в подборах, если не нужно делать сложные расчеты, а просто показать данные и выбрать.

Бывают такие ситуации, что список большой, более 10 позиций, и пользователю необходимо выбрать все строки. Стандартного способа как это сделать я не нашел.

Для решения это задачи я использовал объект “WSCript.Shell“.

В процессе реализации у меня получилось 2 варианта:
Вариант №1
Определим кнопку “Выделить все строки” и в модуль обработчика добавим код:
Код 1C v 8.2 УП
 wsh = Новый COMОбъект(“WSCript.Shell”);
ЭтаФорма.ТекущийЭлемент = Элементы.ДинамическийСписок;
wsh.sendkeys(“^{A}”);

С помощью данного кода выполняется нажатие клавиш “Ctrl + A“, т.е. “выделить все”.

Вариант №2
Вариант №1 не всегда срабатывал. Тогда данный код я переписал следующим образом:

Добавим реквизит формы “ПоследняяСтрокаСписка”
Для списка укажем свойство “Начальное отображение списка” = В конце списка
В процедуру “ПриОткрытии” добавим заполнение реквизита, определенного в пункте 1.
Код 1C v 8.2 УП
 ПоследняяСтрокаСписка = Элементы.ДинамическийСписок.ВыделенныеСтроки[0];   


Определим кнопку “Выделить все строки” и в модуль обработчика добавим код:
Код 1C v 8.2 УП
 wsh = Новый COMОбъект(“WSCript.Shell”);
ЭтаФорма.ТекущийЭлемент = Элементы.ДинамическийСписок;
wsh.sendkeys(“{END}”);
ТекДанные = Элементы.ДинамическийСписок.ТекущиеДанные;
Если ТекДанные <> Неопределено Тогда
wsh.sendkeys(“+{UP ” + ПоследняяСтрокаСписка + “}”);
КонецЕсли;


С помощью данного кода выполняется нажатие клавиш “Shift + кнопка вверх“.

Хочу обратить внимание. Данное решение не будет работать на клиентах, которые запускаются на Линукс.

Автор Сергей Сопелев
Разместил:   Версии: | 8.2 УП |  Дата:   Прочитано: 11619
 0 
Распечатать
Возможно, вас также заинтересует
Excel файл как Внешний источник данных 4
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . ...
PostgreSQL: установка, настройка, обслуживание 2
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут...
ZIP-архив Создание 0
Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий: * Создать архив с необходимыми параметрами, в который будут помещаться файлы. * Поместить в архив необходимые файлы. * Записать...
Автоматическая архивация баз 1С с использованием Cobian Backup и VBS скриптов 6
Клиент попросил настроить автоматическую архивацию баз 1С раз в три дня и выгрузку архивов на Dropbox и на FTP Сервер. Кроме 1С нужно архивировать папку с рабочими документами. Хочет - так хочет, делаем: Первым делом...
Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура...
Посмотреть все результаты поиска похожих
Комментарии
indapublic
06.06.2016 08:33Комментарий: 2
indapublic

Посыл Ctrl+A ("^{A}") работает только при русской раскладке (по крайней мере, у меня), посыл Ctrl+Ф ситуацию не исправляет

indapublic
06.06.2016 08:32Комментарий: 1
indapublic

Достаточно послать "{END}+{HOME}" (перемещение в конец списка, а затем перемещение в начало с клавишей Shift)

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.