Как понять какому расширению принадлежит модуль?

Добавил: tormozit, 16 августа 2023 19:25, обновлено: 04 сентября 2023 22:08

Раздел: Предложения


Заголовок конфигуратора при активном окне модуля расширения отличается ничем от ситуации при активном модуле самой конфигурации. Прошу поискать способ их различить.


К списку тем

Комментарии

bolsun
27 августа 2023 14:10: #1

Такой способ на данный момент не известен. Только по префиксу в названии.


tormozit
02 сентября 2023 23:37: #2

Придумал способ - активируем окно дерева конфигурации и получаем текст корня - там будет имя конфигурации. Если оно не совпадает с именем основной конфигурации, то это имя расширения.
Чтобы удобно для пользователя сделать такой механизм, нужно как можно реже выполнять эти действия и как можно меньше шагов. Поэтому хотелось бы

  1. В API функцию для получения идентификатора поля списка дерева конфигурации, чтобы запоминать для каждого его имя расширения. Функция ПолучитьДанныеUIAutomation().AutomationId сейчас выдает пустой идентификатор даже для полей типа "документ"
  2. Нужно дать возможность обходить элементы поля типа "Список" и получать их текст. Это позволит избавиться от изменения активной строки списка для чтения их текстов. Тем самым операции станут выполняться быстрее, надежнее (через буфер обмена ненадежно) и с меньшим числом побочных эффектов

tormozit
03 сентября 2023 00:04: #3

К сожалению на корневом узле дерева конфигурации не срабатывает CTRL+C - это недорабока конфигуратора. Я вспомнил что даже сам жаловался на нее когда то давно. Так что без п.2 (появления в API методов для обхода элементов списка и получения их текста) тут придется добавлять открытие еще одного окна (ALT+Enter) и побочных эффектов становится совсем уж много.


tormozit
03 сентября 2023 12:15: #4

по п.2 нужны методы

  1. Получение количества видимых элементов
  2. Получение видимого элемента по индексу
  3. Активация элемента по индексу в списке

tormozit
04 сентября 2023 22:07: #5

Проверил немного другую реализацию получения имени расширения - кэширование имени конфигурации через ID элемента и родителя. Работает.
Но методы из сообщения #4 все же будут полезны например при обходе списка точек останова, который сейчас через буфер обмена читает тексты.


bolsun
04 сентября 2023 22:11: #6

(5) tormozit, зачем через буфер читать? Есть методы ПолучитьЗначение() и ПолучитьИмяЭлемента()


tormozit
04 сентября 2023 22:13: #7

(6) bolsun, они не работают в поле типа "таблица". Например в списке точек останова ПолучитьИмяЭлемента() возвращает для всех строк заголовок первой колонки, а ПолучитьЗначение() возвращает Неопределено.


bolsun
04 сентября 2023 22:15: #8

(7) tormozit, да вспомнил. Ну здесь эта информация останется, когда буду смотреть возможность добавления - пригодится )


bolsun
08 сентября 2023 00:40: #9

bolsun изменил статус на Закрыто


TurboConf

Расширение возможностей

Конфигуратора 1С

Скачать

Бесплатный пробный период 14 дней