Имя: Пароль:
1C
1С v8
Sendkeys выделяет таблицу дин.списка, но не заполняет ее массив ВыделенныеСтроки
0 NikP123
 
26.08.19
18:58
Нужно программно выделить все строки дин. списка, делаю так:

WScript = Новый COMОбъект("WSCript.Shell");
WScript.SendKeys("^a");

В результате визуально на форме все выделено, но в Элементы.Список.ВыделенныеСтроки - пусто.
Если после этого опять нажимать на кнопку, которая вызывает этот код, то массив "ВыделенныеСтроки" уже заполнен всеми строками.

Я что-то делаю не так?
1 NikP123
 
26.08.19
18:58
WScript.SendKeys("^a"); // это имитация CTRL + A
2 runoff_runoff
 
26.08.19
19:04
а если код всегда вызывать дважды.. ВыделенныеСтроки заполняются?..
3 NikP123
 
26.08.19
19:05
(2) сейчас попробую
4 NikP123
 
26.08.19
19:11
WScript.SendKeys("^a");
WScript.SendKeys("^a");
WScript.SendKeys("^a");
WScript.SendKeys("^a");
WScript.SendKeys("^a");
WScript.SendKeys("^a");
WScript.SendKeys("^a");

вот это толку не дает
5 Кац
 
26.08.19
19:12
а если так?


Для каждого стр из Объект.Товары Цикл
    Элементы.Список.ВыделенныеСтроки.Добавить(стр.ПолучитьИдентификатор());
КонецЦикла;
6 NikP123
 
26.08.19
19:16
(5) это дин. список на форме списка документов, там нет таблицы с данными
7 NikP123
 
26.08.19
19:22
если с помощью ПодключитьОбработчикОжидания через 0.5 секунды задать вызов процедуры, которая должна обработать выделенные строки, то там уже вроде массив заполнен
8 Сияющий в темноте
 
26.08.19
23:04
через ожидание надо.
когда вы послали клавишу,она попала в буфер,а 1с что то делает,нужно прекратить на время что то делать и дать 1с шанс отработать буфер,а потом,когда она отработала,смотрим выделенные строки.

а в чем смысл такого выделения?можно же его кодом сделать?
9 NikP123
 
27.08.19
08:21
(8) кодом невозможно сделать, это список документов на форме документа. Таблицы со строками к которому привязана таблица формы - не существует в природе. Поэтому, чтобы их получить я их выделяю таким вот методом, тогда они все прогружаются в массив выделенных строк.

по крайней мере, вчера целый день сидел и другого нормального метода не нашел
10 FIXXXL
 
27.08.19
08:34
11 NikP123
 
27.08.19
08:36
(10) понятно - но это же вроде будет независимая другая тз на сервере - сворачивание/разворачивание возможно только на клиенте, куда эту тз тем более и не передать
12 NikP123
 
27.08.19
08:38
а мне надо именно сворачивание/разворачивание строк группировок