Новый способ перехода к объекту конфигурации при установленном отборе

bolsun Открыто

Нашел новый способ перехода, нужно оценить возможные подводные камни.

Переход выполняется с использованием окна "Сравнение конфигураций".
Вот пример. Оверлей специально отключил, чтобы было видно, что происходит.

1cv8_6ZTo4pNP14.mp4

Пока нашел только две проблемы

  1. на больших конфигурациях, типа ERP поиск может занимать до 20 секунд (у меня). Это если сравнивать основную конфигурацию с самой же основной конфигурацией.
    Но нашел другой способ. Если сравнивать с файлом выгрузки пустой конфигурации, то окно открывается практически мгновенно.
  2. расширения можно сравнивать только с файлом, поэтому придется выгружать расширение в файл, не проверял можно ли сравнить с пустым файлом cfe от другой конфигурации.

Комментарии

tormozit
#1, ред. 10 марта 2025 21:52

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


tormozit
#2, ред. 10 марта 2025 21:56

Идея с постоянно открытым прикрепленным окном похоже не сработает, т.к. непонятно как его активировать.


bolsun
#3, 10 марта 2025 22:02

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


tormozit
#4, 10 марта 2025 22:05

Еще идея - для форм сначала проверять список закладок CTRL+SHIFT+F2. Если там нашли, то открытие оттуда будет самым быстрым. У меня обычно много закладок расставлено в модулях.


tormozit
#5, ред. 10 марта 2025 22:07

(3) bolsun, проблем при сравнении с файлом конфигурации не будет, если он будет сохранен в самой нижней поддерживаемой версии 8.3


bolsun
#6, 10 марта 2025 22:08

(5) tormozit, а что на счет расширений? Можно без проблем сравнивать расширение с файлом другого пустого расширения?


tormozit
#7, 10 марта 2025 22:12

(6) bolsun, думаю что не будет, если оно будет пустым и опять же от нижней версии платформы.


bolsun
#8, ред. 10 марта 2025 22:16

Еще непредсказуемо сделан пункт для открытия объекта. Где-то это "Открыть форму", интерфейс, команду... и т.д.
Где-то "Изменить", где-то "Открыть модуль" и т.д.
Все придется предусматривать.


bolsun
#9, 10 марта 2025 22:16

Может логика и есть какая-то пока не уловил.


bolsun
#10, 11 марта 2025 16:26

Нашел одну неприятную проблему, закрытие окна сравнения расширения, закрывает все открытые из него объекты. Таким образом придется держать открытым окно сравнения, пока есть необходимость работы с этими объектами.

Объекты основной конфигурации тем не менее не закрываются при закрытии окна сравнения.


bolsun
#11, ред. 11 марта 2025 16:32

И еще нашел более худшую проблему, изменения внесенные в модули расширения, открытые из окна сравнения не сохраняются (баг платформы?).
Для основной конфигурации изменения тем не менее сохраняются.


bolsun
#12, ред. 11 марта 2025 16:35

Хорошая новость, похоже, что эти проблемы возникают только при открытии окна сравнения из главного меню, а не панели расширений.


bolsun
#13, 13 марта 2025 18:48

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


bolsun
#14, ред. 13 марта 2025 18:51

Также пока не ясно, нужно ли выводить сообщение о переходе через сравнение, в виде диалога.

В котором предупредить, что текущие окна будут сохранены.

Также можно добавить действие в уведомлении, для отключения/включения данной возможности.


tormozit
#15, ред. 13 марта 2025 19:08

Во многих случаях открытия панели свойств объекта будет достаточно, т.к. там есть гиперссылки для открытия его формы, модулей и т.д.

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

RDT.os

Открывать формы и модули и макеты - это кажется самый быстрый и надежный способ.


tormozit
#16, 13 марта 2025 19:17

Доделал и открытие самих форм и макетов (не модулей). Вот код

		Попытка
			ТурбоКонф.Перейти(СсылкаСтроки);
		Исключение
			//Сообщить("Ошибка перехода к объекту метаданных """ + СсылкаСтроки + """: " + ОписаниеОшибки(), СтатусСообщения.Внимание);
		КонецПопытки;
		ТурбоКонф.ОтжатьВсеМодификаторы(); // Антибаг Турбоконфа, который иногда оставляет зажатыми клавиши после неуспешного перехода
		АктивироватьДеревоОсновнойКонфигурации(); // Антибаг Турбоконфа, который иногда ставит фокус не в эту панель
		Успех = НижнееИскомоеИмя = ТурбоКонф.ПолучитьИмяЭлемента(); // ПолучитьRuntimeIdСтрокой() тут нельзя использовать, т.к. он может повторяться (видимо опирается на номер видимого элемента списка)
		Если Не Успех И ТурбоКонф.ПолучитьТипТекущегоЭлемента() = ТипЭлемента.ЭлементСписка Тогда
			Если БылВременныйСдвиг Тогда
				ТурбоКонф.Клавиша(Клавиши.Down); 
			КонецЕсли; 
			ОткрытьРезультатыПоиска();
			ТурбоКонф.Клавиша(Клавиши.Enter);
			ЗакрытьДочернееОкноКонфигуратора();
			Если Ложь
				Или МодулиИР.ирОбщий.СтрНайтиЛкс(СсылкаСтроки, ".Макет.") > 0 
				Или МодулиИР.ирОбщий.СтрНачинаетсяСЛкс(СсылкаСтроки, "ОбщийМакет.") > 0 
			Тогда
				АктивироватьСвойствоВПалитреСвойств("Макет");
				ТурбоКонф.Клавиша(Клавиши.Enter);
			ИначеЕсли Ложь
				Или МодулиИР.ирОбщий.СтрНайтиЛкс(СсылкаСтроки, ".Форма.") > 0 
				Или МодулиИР.ирОбщий.СтрНачинаетсяСЛкс(СсылкаСтроки, "ОбщаяФорма.") > 0 
			Тогда
				АктивироватьСвойствоВПалитреСвойств("Форма");
				ТурбоКонф.Клавиша(Клавиши.Enter);
			Иначе
				Если УведомлятьЕслиНеНайден Тогда
					ПоказатьВсплывающееУведомление("Не удалось перейти к """ + СсылкаСтроки + """, но открыта панель свойств объекта. Отключите фильтр по подсистемам в дереве метаданных.");
				КонецЕсли;
				Возврат Ложь;
			КонецЕсли;
		КонецЕсли;


tormozit
#17, ред. 13 марта 2025 20:46

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

RDT.os


bolsun
#18, 13 марта 2025 21:34

(17) @tormozit, попробуй эту версию

6.4.9203.38380

Должно переходить к объектам скрытым отбором как в конфигурации, так и в расширении.
Добавлена поддержка нескольких расширений.
Доработан механизм активации дерева конфигураций и поиска.

Работает только для Навигатора, в методе Перейти пока нет.

https://disk.yandex.ru/d/XRPUNWQtrbwBUw


tormozit
#19, 13 марта 2025 22:14

TurboConf.Core.TurboAPI.TurboConfElementNotFoundException: Элемент не найден: Склады
в TurboConf.Core.TurboAPI.TurboApi.WaitForElementName(String targetName, Int32 timeout, Boolean regExp)
в TurboConf.Service.JumpToForm.​‍​‭‭‍​‬‍‌​‎‬‏‮‎‪‮‬‏‬‭‏‏‪‏‪‪‪‮(Boolean , Boolean )

Ссылка скрыта


tormozit
#20, ред. 13 марта 2025 22:20

Большая просьба. В методе Перейти() сделать новое долгое поведение (сравнение конфигураций) опциональным, т.к. мой новый метод (17) опирается на его текущее поведение в этой ситуации.


bolsun
#21, 13 марта 2025 22:35

(19) tormozit, больше бы информации, что искал и скриншот.


bolsun
#22, 13 марта 2025 22:39

(20) tormozit, новый метод можно доработать, чтобы искал сначала через Доп. свойства, и уже если не получится то через сравнение.
Доп. свойств на первый взгляд может быть недостаточно в большом количестве случаев.


bolsun
#23, 13 марта 2025 22:40

(21) bolsun, а еще лучше ролик


tormozit
#24, ред. 13 марта 2025 23:01

(22) bolsun, только это не доп. свойства, а просто палитра/панель свойств. Через нее например нельзя открыть редактор объекта метаданных (дочернее окно с закладками). Правда я им практически не пользуюсь.


bolsun
#25, ред. 13 марта 2025 23:07

(24) tormozit, да, я имел в виду панель Свойства, а не панель Дополнительно.


tormozit
#26, 13 марта 2025 23:52

(23) bolsun, LPk0hbxQoB.mp4


bolsun
#27, 14 марта 2025 12:52

(26) tormozit, почему-то фокус после сравнения конфигураций оказался в дереве конфигурации. Скорее всего из-за прикрепленного окна Сравнения. Проверю.


bolsun
#28, 14 марта 2025 13:09

(27) bolsun, нет, дело не в этом, у меня даже с прикрепленным срабатывает нормально.


bolsun
#29, 14 марта 2025 13:51

не могу понять в чем дело, т.к. лог не соответствует ролику. Прошу сделать новый ролик и лог, который относится к нему.


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера