Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Возможность указания в типах ссылки на элемент коллекции #1482

Open
mralexjoin opened this issue Feb 7, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@mralexjoin
Copy link

Описание проблемы

Есть следующая экспортная функция в общем модуле:

// Найти строку таблицы формы.
// 
// Параметры:
//  ТаблицаФормы - ДанныеФормыКоллекция - таблица формы
//  Значение - Произвольный - Значение
//  Колонка - Строка - колонка
// 
// Возвращаемое значение:
//  ДанныеФормыЭлементКоллекции - найденная строка
//  
Функция НайтиСтрокуТаблицыФормы(ТаблицаФормы, Значение, Колонка) Экспорт
	
	СтрокиТаблицы = ТаблицаФормы.НайтиСтроки(Новый Структура(Колонка, Значение));
	Если СтрокиТаблицы.Количество() > 0 Тогда
		Возврат СтрокиТаблицы[0];
	КонецЕсли;
	
	Возврат Неопределено;
	
КонецФункции

При обращении к возвращаемому значению метода, получаю ошибку property-return-type:

Image

При этом, если перенести метод в форму и не указывать документирующий комментарий, то вывод типов работает корректно:

&НаКлиентеНаСервереБезКонтекста
Функция НайтиСтрокуТаблицыФормыПоЗначению(Таблица, Значение, ИмяКолонки)
	
	Отбор = Новый Структура(ИмяКолонки, Значение);
	СтрокаТаблицы = Таблица.НайтиСтроки(Отбор);
	Если СтрокаТаблицы.Количество() > 0 Тогда
		Возврат СтрокаТаблицы[0];
	КонецЕсли;
	
КонецФункции

Image
Т.е. вывод типов EDT работает корректно.

Описание решения проблемы

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

// Найти строку таблицы формы.
// 
// Параметры:
//  ТаблицаФормы - ДанныеФормыКоллекция - таблица формы
//  Значение - Произвольный - Значение
//  Колонка - Строка - колонка
// 
// Возвращаемое значение:
//  ДанныеФормыЭлементКоллекции - см. НайтиСтрокуТаблицыФормы.ТаблицаФормы.Элемент
//
Функция НайтиСтрокуТаблицыФормы(ТаблицаФормы, Значение, Колонка) Экспорт

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

Дополнительная информация

No response

@mralexjoin mralexjoin added the enhancement New feature or request label Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant