tormozit / RDT1C

Подсистема "Инструменты разработчика" для платформы 1С 8
http://devtool1c.ucoz.ru
87 stars 8 forks source link

Поиск метода по модулям в консоли кода для УТ прерывается ошибкой "Поле объекта недоступно для чтения" #593

Closed d-hurricane closed 2 months ago

d-hurricane commented 2 months ago

Программное окружение Платформа: 8.3.22.2501 Режим БД: файловый Конфигурация. Название: Управление торговлей, редакция 11 (11.5.11.86) Конфигурация. Основной режим запуска: Управляемое приложение Конфигурация. Вариант встроенного языка: Русский Конфигурация. Режим управления блокировкой данных: Управляемый Конфигурация. Режим совместимости: Версия8_3_17 Конфигурация. Режим использования синхронных вызовов: Использовать Конфигурация. Версия БСП: 301 Конфигурация. Использовать обычные формы в управляемом приложении: Да Инструменты разработчика. Версия: Расширение 7.26.2e Инструменты разработчика. Инструмент: Прочее Инструменты разработчика. Перехват клавиатурного ввода: Да Инструменты разработчика. Объекты на сервере: Да Инструменты разработчика. Асинхронность запрещена: Нет Инструменты разработчика. Разрешены имитаторы: Да Расширения. ИнструментыРазработчикаTormozit (7.26.2e) Расширения. InfostartToolkitPROF (2024.1.00) Расширения. ЗащитаРолейРасширенийДляАдминовБСП3 (1.1) Расширения. НастройкиДинамическогоСпискаTormozit (1.00) Расширения. RDVМаркет3 (3.0.8.153) Клиент. Приложение: Управляемое приложение 64б Клиент. Проверка модальных вызовов: Нет Клиент. Язык интерфейса конфигурации: ru Клиент. Язык интерфейса системы: ru Клиент. Отладка разрешена: Нет Клиент. Постоянный кэш метаданных: Да Клиент. ОС: Майкрософт Windows 11 Pro 64-разрядная Русский Клиент. ОС от имени администратора: Нет Клиент. ОС выполнение BAT: Да Клиент. ОС ╥хъє∙р  ъюфютр  ёЄЁрэшЎр: 866

Воспроизведение проблемы

  1. Открыл инструмент "Консоль кода"
  2. Нажал кнопку "Найти ссылки на слово или выделенный фрагмент в модулях"
  3. В форме поиска по модулям заполнил следующие поля: Режим = Ссылки, Искать = СообщитьПользователю, Тип слова = Метод.
  4. Нажал кнопку "Найти". Запустился поиск.
  5. Спустя 25 секунд на 19 % выполнения поиск прерывается сообщением об ошибке:

Поле объекта недоступно для чтения (ДеревоДокумента) {ИнструментыРазработчикаTormozit Обработка.ирПлатформа.МодульОбъекта(9985)}:Типы.Добавить(ТипЗнч(Форма[ИмяРеквизита])); {ИнструментыРазработчикаTormozit Обработка.ирПлатформа.МодульОбъекта(2848)}:СтруктураИмен = ИменаРеквизитовФормы(МетаданныеРодителя, ПутьКРодителю).Все; {ИнструментыРазработчикаTormozit Обработка.ирПлатформа.МодульОбъекта(4507)}:ТаблицаСлов = СловаКонтекстаМетаданные(СтруктураТипа,, "Свойство",,,,,,, МодульВременный); {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(14897)}:мМодульМетаданных = мПлатформа.ПодготовитьМодульМетаданных(СтруктураТипа, ТипМодуля,, Текст, НовоеКонецВыделения); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКэш.Модуль(1944)}:ПолеТекстаМодуля.УстановитьТекст(,,,,, СтрЗаменить(ИмяМодуля, "\", " ")); {ИнструментыРазработчикаTormozit Обработка.ирПлатформа.МодульОбъекта(6626)}:ПолеТекстаМодуляКэш = ирКэш.ПолеТекстаМодуляЛкс(ИмяМодуля); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(17680)}:ПолеТекстаМодуля = мПлатформа.ПолеТекстаМодуля(ИмяФайлаИлиМодуля); // Актуализируемый в памяти кэш {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(17639)}:выхПолеТекста = ПолеТекстаМодуляБезСтруктурыТипаЛкс(ИмяФайлаИлиМодуля, ТекстФайла, выхФайлМодуля); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(17578)}:НомерСтрокиМодуля = НомерСтрокиМодуляИзПозицииЛкс(ИмяФайлаМодуля, Позиция, ТекстФайла, ТекстФрагмента, ПолеТекстаМодуля, ФайлМодуля); {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.Форма.ПоискВМодулях.Форма(446)}:ирКлиент.РазобратьПозициюМодуляВСтрокеТаблицыЛкс(ТекущаяСтрока, ТекущаяСтрока.Модуль, ПолеФрагмента,,,,, РезультатСодержитПолныеСтроки()); {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.Форма.ПоискВМодулях.Форма(353)}:УточнитьСтрокуРезультата(СтрокаВызова);

Последний выведенный результат поиска, что успел появиться до возникновения ошибки, относится к объекту: Обработка.ЗапросыКоммерческихПредложений.Форма.КарточкаЗапроса.Форма.Модуль

Ожидаемое поведение Поиск должен завершиться без ошибок.

tormozit commented 2 months ago

Вижу что ты уже используешь правильный вариант подсистемы. Ошибки подтверждаю https://www.hostedredmine.com/issues/985380 https://www.hostedredmine.com/issues/985373

Прошу тебя повторить тест под отладчиком с остановкой по ошибке с фильтром "Поле объекта недоступно для чтения". Мне очень хочется знать, какие свойства у реквизита формы "ДеревоДокумента", т.к. я не знаю возможных причин такой ошибки. Имя формы будет в СлужебныеДанные.ИмяФормы.

d-hurricane commented 2 months ago

Вижу что ты уже используешь правильный вариант подсистемы.

И даже багрепорт сам нашел. Чуть позже за пирожком к полке схожу. :)

какие свойства у реквизита формы "ДеревоДокумента"

Тип Произвольный. На выходе процедуры ПриСозданииНаСервере формы значение Неопределено. Может баг платформы? Но воспроизводится у меня стабильно.

tormozit commented 2 months ago

Может баг платформы?

Нет. Причину моей ошибки описал в задаче.

tormozit commented 2 months ago

Исправлено в 7.27