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

Тема в разделе "1C и всё что с ней связано", создана пользователем Skellar, 28 ноя 2011.

  1. Skellar

    Skellar Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Возникла такая задача - программно в табличной части определенную ячейку открыть на редактирование. То есть, к примеру, в табличной части товары есть колонки номер, цена, количество...
    Нужно сделать так, чтобы после окончания редактирования цены в первой строке, открывалась в режиме редактирования цена во второй строке. Может кто знает, как это можно реализовать?
     
  2. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Можно через ВвестиЧисло() ВвестиСтроку() ВвестиДату() или просто выбрать() в зависимости от типа значения и если ввод состоялся програмно записываем значение в нужную ячейку. а просто открывать на редактирование - зачем? ткнет человек в другое поле и пропали труды. Можно еще попробовать настроить порядок обхода,но как это выглядит в табличной части я не знаю...
     
  3. Skellar

    Skellar Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    ВвестиЧисло() - вариант интересный, спасибо, но не знаю, насколько устроит заказчика. А зачем - для оптимизации работы, чтобы мышкой не двигать лишний раз и кнопку tab не нажимать.
    Неужели нет стандартных способов или методов?
     
  4. Darlock

    Darlock Well-Known Member
    1C Team

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

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    А
    А народ против! Автору же сильно надо не нажимать стрелочку вниз (перейти на строку ниже) и Enter (войти в редактирование). Раз нажал сколько кнопок задавая вопрос.

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

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

    Skellar Well-Known Member

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


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

    Darlock Well-Known Member
    1C Team

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

Поделиться этой страницей