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

  • Автор темы Skellar
  • Дата начала
S

Skellar

Возникла такая задача - программно в табличной части определенную ячейку открыть на редактирование. То есть, к примеру, в табличной части товары есть колонки номер, цена, количество...
Нужно сделать так, чтобы после окончания редактирования цены в первой строке, открывалась в режиме редактирования цена во второй строке. Может кто знает, как это можно реализовать?
 
P

puh14

Можно через ВвестиЧисло() ВвестиСтроку() ВвестиДату() или просто выбрать() в зависимости от типа значения и если ввод состоялся програмно записываем значение в нужную ячейку. а просто открывать на редактирование - зачем? ткнет человек в другое поле и пропали труды. Можно еще попробовать настроить порядок обхода,но как это выглядит в табличной части я не знаю...
 
S

Skellar

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

Darlock

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

Дайнеко

А
К сожалению такого нет..

А народ против! Автору же сильно надо не нажимать стрелочку вниз (перейти на строку ниже) и Enter (войти в редактирование). Раз нажал сколько кнопок задавая вопрос.

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

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

Skellar

Darlock, да, это проблема, времени не много было, поэтому не успел решением заняться,а вообще сделал через ВвестиЧисло(). В данном случае строк не много (или 2 или 4), очень редко требуется изменить только отдельную строку, так что заказчик доволен остался.


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

Darlock

Skellar, если интересно копать в этом направлении тогда, у Дайнеко код для 7.7. В 8.х вместо "СоздатьОбъект()" используйте конструктор "Новый ComОбъект()"
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!