Ниже приведена сводная таблица самых частых элементов интерфейса. В колонке «Тип объекта» указано именно то значение, которое нужно подставлять в функцию

 

session.findById("wnd[0]").FindByName("Имя", "Тип")

а в последней колонке — главные свойства и методы для взаимодействия с ними.

Префикс в рекордере Тип объекта (для FindByName) Что это такое? Как взаимодействовать (Свойства / Методы)
txt GuiTextField Текстовое поле ввода .Text = "Значение" — записать текст
      .Text — прочитать текст
      .SetFocus — установить курсор в поле
lbl GuiLabel Текстовая метка (название поля, заголовок) .Text — прочитать текст (изменить нельзя)
      Часто используется для проверки, загрузился ли нужный экран.
btn GuiButton Обычная кнопка на экране .press — нажать кнопку
chk GuiCheckBox Галочка (Чекбокс) .Selected = True — поставить галочку
      .Selected = False — снять галочку
rad GuiRadioButton Радиокнопка (круглый переключатель) .Selected = True — выбрать этот пункт (остальные радиокнопки в этой группе сбросятся автоматически)
cmb GuiComboBox Выпадающий список .Key = "Ключ" — выбрать пункт по тех. ключу
      .Value = "Текст" — выбрать по тексту
      .Entries.Count — узнать количество пунктов
tabp GuiTab Вкладка на экране .Select — кликнуть/открыть вкладку
tbl GuiTableControl Классическая таблица .RowCount — количество строк
      .Columns(x).Cells(y).Text — чтение/запись ячейки
      .VerticalScrollbar.Position = i — прокрутка
      .Rows(i).Selected = True — выделить строку
shell GuiGridView Современная таблица ALV Grid .RowCount — количество строк
  (или GuiShell) .GetCellValue(i, "ИМЯ") — прочитать ячейку
      .modifyCell i, "ИМЯ", "Текст" — изменить ячейку
      .selectedRows = "i" — выделить строку
      .pressToolbarButton "ID" — нажать кнопку на панели таблицы
wnd GuiMainWindow Окно (главное или всплывающее) .maximize — развернуть на весь экран
  (или GuiModalWindow) .sendVKey 0 — нажать Enter
      .sendVKey 11 — сохранить (Ctrl+S)
      .sendVKey 12 — отмена (крестик)
sbar GuiStatusbar Строка состояния (внизу экрана) .Text — получить текст системного сообщения
      .MessageType — тип сообщения (E-ошибка, S-успех, W-предупреждение)
ctxt GuiCTextField Поле ввода с педалью поиска (F4) Работает абсолютно так же, как обычное текстовое поле txt (.Text). Отличается только наличием кнопки вызова справочника.

 

Несколько полезных советов по таблице:

  1. Как проверить доступность поля?
    У большинства полей ввода (txt, ctxt, chk) есть свойство .Changeable.
    Если myField.Changeable = True, макрос может вносить туда данные. Если False — поле заблокировано (серое), и попытка сделать .Text = "..." выдаст ошибку.
  2. Чтение системных сообщений (sbar)
    Это невероятно полезная вещь для контроля ошибок. После того как твой макрос нажал кнопку «Сохранить», ты можешь прочитать строку состояния:
Dim msg As String
msg = session.findById("wnd[0]/sbar").Text
Debug.Print "Система ответила: " & msg

Горячие клавиши (sendVKey)
Метод .sendVKey применяется ко всему окну wnd[0]. Вот самые популярные коды:

  • 0 = Enter
  • 3 = F3 (Назад)
  • 8 = F8 (Выполнить)
  • 11 = Ctrl+S (Сохранить)
  • 12 = F12 (Отмена)
Add comment