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

1С 8.2 УП : Динамический список ~ Как программно выделить все строки динамического списка?

В платформе “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 УП |  Дата:   Прочитано: 11570
 0 
Распечатать
Возможно, вас также заинтересует
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Excel файл как Внешний источник данных 4
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . ...
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
PostgreSQL: установка, настройка, обслуживание 2
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут...
Битая ссылка, <Объект не найден>, Уникальный Идентификатор, GUID 21
Когда кто-то удаляет данные из базы без проверки ссылок на эти объекты, то везде где этот объект использовался появляется сообщение вида: Объект не найден (84:bf5600145e3710ab11dda4c605dbe824) . https://helpf.pro/uploads/img/_1-46z7I4U7Ww.png В
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.