1C-Company / v8-code-style

Расширение для 1C:EDT, которое помогает разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприятие 8".
Eclipse Public License 2.0
175 stars 53 forks source link

Ложное срабатывание проверки invocation-parameter-type-intersect для СтрокаТабличнойЧасти и Документ/Справочник/ОбработкаТабличнаяЧастьСтрока #1227

Closed RedMammoth closed 1 year ago

RedMammoth commented 1 year ago

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

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

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

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

// @strict-types
#Область ПрограммныйИнтерфейс

Процедура Тест() Экспорт
    ПроверкаТипаТЧ(Справочники.Справочник1.СоздатьЭлемент().ТабличнаяЧасть1);
    ПроверкаТипаТЧ(Документы.Документ1.СоздатьДокумент().ТабличнаяЧасть1);
    ПроверкаТипаТЧ(Обработки.Обработка1.Создать().ТабличнаяЧасть1);
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

// Параметры:
//  Параметр - СтрокаТабличнойЧасти
Процедура ПроверкаТипаТЧ(Параметр)
    Возврат;
КонецПроцедуры

#КонецОбласти

image

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

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

Если я не прав на счет общего типа, подскажите, пожалуйста какой использовать. В контент-ассисте ничего подходящего больше не нашел.

marmyshev commented 1 year ago

Это не ошибка - т.к. Справочники.Справочник1.СоздатьЭлемент().ТабличнаяЧасть1 - это объект Табличной части. А входящий параметр - СтрокаТабличнойЧасти - т.е. ничего общего. Проверка срабатывает правильно.

Закрываем?

RedMammoth commented 1 year ago

Да, моя невнимательность