Программно Открыть Ячейку Табличной Части На Редактирование

Skellar

Well-known member
22.07.2008
87
0
#1
Возникла такая задача - программно в табличной части определенную ячейку открыть на редактирование. То есть, к примеру, в табличной части товары есть колонки номер, цена, количество...
Нужно сделать так, чтобы после окончания редактирования цены в первой строке, открывалась в режиме редактирования цена во второй строке. Может кто знает, как это можно реализовать?
 

puh14

Well-known member
11.07.2008
1 412
0
#2
Можно через ВвестиЧисло() ВвестиСтроку() ВвестиДату() или просто выбрать() в зависимости от типа значения и если ввод состоялся програмно записываем значение в нужную ячейку. а просто открывать на редактирование - зачем? ткнет человек в другое поле и пропали труды. Можно еще попробовать настроить порядок обхода,но как это выглядит в табличной части я не знаю...
 

Skellar

Well-known member
22.07.2008
87
0
#3
ВвестиЧисло() - вариант интересный, спасибо, но не знаю, насколько устроит заказчика. А зачем - для оптимизации работы, чтобы мышкой не двигать лишний раз и кнопку tab не нажимать.
Неужели нет стандартных способов или методов?
 

Darlock

Well-known member
04.01.2008
560
1
#4
К сожалению такого нет. Порядок обхода регулирует порядок обхода элементов управления, а не строк в табличной части. "ВвестиЧисло()" - не плохой вариант и управлять им легко. Только вопрос. А если возникла необходимостьисправлять цену не во всех строках табличной части, а в некоторых? Т.е. у вас в табличной части 10 строк, а нужно поправить цену только в 3. Как действовать будете?
 

Дайнеко

Well-known member
19.11.2009
951
0
#5
А А народ против! Автору же сильно надо не нажимать стрелочку вниз (перейти на строку ниже) и Enter (войти в редактирование). Раз нажал сколько кнопок задавая вопрос.

Спору нет - стандартными ср-ми может и не получится. А нельзя ли имитировать нажатия клавиатуры?
Создать объект "WScript.Shell" и команду ему:
WShell = СоздатьОбъект("WScript.Shell");
WShell.SendKeys("{Down}{Enter}");

P.S. Не проверено. Я использую, но другие команды.
 

Skellar

Well-known member
22.07.2008
87
0
#6
Darlock, да, это проблема, времени не много было, поэтому не успел решением заняться,а вообще сделал через ВвестиЧисло(). В данном случае строк не много (или 2 или 4), очень редко требуется изменить только отдельную строку, так что заказчик доволен остался.


Дайнеко, Интересно, прямо руки чешутся покопать в этом направлении :) Как только меньше нагрузки будет, попробую реализовать. Что получится - выложу.
 

Darlock

Well-known member
04.01.2008
560
1
#7
Skellar, если интересно копать в этом направлении тогда, у Дайнеко код для 7.7. В 8.х вместо "СоздатьОбъект()" используйте конструктор "Новый ComОбъект()"