1c-edt-issues
1c-edt-issues copied to clipboard
Контент-ассист не видит повторно используемый тип в цепочке обращений к полям объекта
Описание ошибки
Ошибка в том что, если я обращаюсь к полю структуры, которое имеет тип структуры, и в текущей цепочке обращений уже было поле того же типа, то контент ассист не видит тип.
Как воспроизвести
модуль 1:
// @strict-types
#Область ПрограммныйИнтерфейс
// Сообщение.
//
// Параметры:
// ЦитируемоеСообщение - см. тСообщение
// Чат - см. тЧат
//
// Возвращаемое значение:
// Структура - сообщение:
// * ЦитируемоеСообщение - см. тСообщение
// * Чат - см. тЧат
Функция тСообщение(ЦитируемоеСообщение = Неопределено, Чат = Неопределено) Экспорт
сообщение = Новый Структура;
сообщение.Вставить("ЦитируемоеСообщение", ЦитируемоеСообщение);
сообщение.Вставить("Чат", Чат);
Возврат сообщение;
КонецФункции
// Чат.
//
// Параметры:
// ЗакрепленноеСообщение - см. тСообщение
// Пользователь - см. Пользователь
//
// Возвращаемое значение:
// Структура - чат:
// * ЗакрепленноеСообщение - см. тСообщение
// * Автор - см. Пользователь
Функция тЧат(ЗакрепленноеСообщение = Неопределено, Пользователь = Неопределено) Экспорт
чат = Новый Структура;
чат.Вставить("ЗакрепленноеСообщение", ЗакрепленноеСообщение);
чат.Вставить("Автор", Пользователь);
Возврат чат;
КонецФункции
// Пользователь.
//
// Параметры:
// Имя - Строка - Имя
// Аватар - см. Аватар
//
// Возвращаемое значение:
// Структура - Пользователь:
// * Имя - Строка -
// * Аватар - См. Аватар
Функция Пользователь(Имя = Неопределено, Аватар = Неопределено) Экспорт
пользователь = Новый Структура;
пользователь.Вставить("Имя", Имя);
пользователь.Вставить("Аватар", Аватар)
Возврат пользователь;
КонецФункции
// Аватар.
//
// Возвращаемое значение:
// Структура - Аватар:
// * Размер - Число -
Функция Аватар() Экспорт
аватар = Новый Структура;
аватар.Вставить("Размер", 0);
Возврат аватар;
КонецФункции
#КонецОбласти
модуль 2:
// @strict-types
#Область ПрограммныйИнтерфейс
Процедура Тест() Экспорт
сообщение = ОбщийМодуль1.тСообщение();
пЧисло = 0;
пЧисло = сообщение.Чат.Автор.Аватар.Размер;
цитата1 = сообщение.Чат.ЗакрепленноеСообщение.ЦитируемоеСообщение;
цитата2 = сообщение.ЦитируемоеСообщение.ЦитируемоеСообщение;
чат2 = сообщение.Чат.ЗакрепленноеСообщение.Чат;
КонецПроцедуры
#КонецОбласти
В модуле 2 видно, что пЧисло рассчитывается и контент ассист работает на всей цепочке вызовов (в этой цепочке вызываемые поля имеют разные типы) А вот цитата1, цитата2, чат2 уже не могут быть вычислены ("сообщение", "ЗакрепленноеСообщение" и "ЦитируемоеСообщение" имеют один тип)
Скриншоты
Ожидаемое поведение
Контент-ассист подсказывает "пользовательские" типы, ранее использованные в текущей цепочке вызовов
Лог рабочей области
- в журнале ошибок при вводе или вызове контент ассиста нет.
Версия 1С:EDT
2022.1
Операционная система
Windows, Linux
Установленные плагины
1C:Code style V8, 1C:SSL-support, 1C:Language Tool
Дополнительная информация
На метаданных такой проблемы нет. На прочих типах, кроме структуры, не смотрел