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

Ложное срабатывание проверки: invocation-parameter-type-intersect - для методов с несколькими вариантами вызова #992

Closed
RedMammoth opened this issue Feb 17, 2022 · 3 comments · Fixed by #1048
Assignees
Labels
bsl 1C Built-in Script Language bug Something isn't working standards Поддержка стандартов strict-types Система строгой типизации

Comments

@RedMammoth
Copy link
Contributor

Название/код проверки

Код проверки: invocation-parameter-type-intersect

Версия плагина: 0.2.0.159

Пример кода/метаданных содержащих ошибку

Возможно ошибка не в проверке, а в ЕДТ и проверка просто ее вскрыла

// @strict-types

// Тест.
// 
// Параметры:
//  СправочникСсылка - СправочникСсылка.Справочник - Справочник ссылка
// 
// Возвращаемое значение:
//  Строка - Тест
Функция Тест(СправочникСсылка) Экспорт
	Возврат ПолучитьНавигационнуюСсылку(СправочникСсылка);
КонецФункции

image

Почему это НЕ ошибка

Согласно СП есть вариант функции ПолучитьНавигационнуюСсылку с один параметром - ЛюбаяСсылка

@RedMammoth RedMammoth added bug Something isn't working standards Поддержка стандартов labels Feb 17, 2022
@marmyshev
Copy link
Collaborator

С проверкой всё в порядке - она проверяет то, что ей предоставляют.

image

Надо дальше разбираться почему выдается из нескольких вариантов вызова - только этот тип.

@marmyshev marmyshev self-assigned this Feb 17, 2022
@RedMammoth
Copy link
Contributor Author

Вот еще один пример нашел, когда выдается только один вариант вызова:

Процедура Тест()

	// Метод Скопировать у ТаблицыЗначений подобрался корректно
	МояТаблица = Новый ТаблицаЗначений;
	МояТаблица.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число"));
	МояТаблица.Колонки.Добавить("ПометкаУдаления", Новый ОписаниеТипов("Булево"));
	МояТаблица.Колонки.Добавить("СсылкаНаСправочник", Новый ОписаниеТипов("СправочникСсылка.Справочник"));

	СтруктураПоиска = Новый Структура;
	СтруктураПоиска.Вставить("ПометкаУдаления", Истина);

	СтрокиКОбработке = МояТаблица.Скопировать(СтруктураПоиска, "НомерСтроки, СсылкаНаСправочник");
	Для Каждого СтрокаТЗ Из СтрокиКОбработке Цикл

	КонецЦикла;
	
	// А вот метод Выгрузить у ТабличнойЧасти - нет
	// метод ожидает всегда массив
	НовыйСправочник = Справочники.Справочник.СоздатьЭлемент();
	СтрокиТЧ = НовыйСправочник.ТабличнаяЧасть.Выгрузить(СтруктураПоиска, "НомерСтроки, СсылкаНаСправочник");
	Для Каждого СтрокаТЧ Из СтрокиТЧ Цикл

	КонецЦикла;

КонецПроцедуры

@marmyshev marmyshev added bsl 1C Built-in Script Language strict-types Система строгой типизации labels Feb 18, 2022
@Nspection
Copy link

Nspection commented Mar 10, 2022

image
похожая ошибка.
Хочет метод "ОткрытьФорму" только с 2 мя параметрами Форма и окно

@marmyshev marmyshev changed the title Ложное срабатывание проверки: invocation-parameter-type-intersect Ложное срабатывание проверки: invocation-parameter-type-intersect - для методов с несколькими вариантами вызова Jun 25, 2022
@marmyshev marmyshev added this to the 0.3 для EDT 2022.1 milestone Jul 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bsl 1C Built-in Script Language bug Something isn't working standards Поддержка стандартов strict-types Система строгой типизации
Projects
None yet
3 participants