Обсудить правило: небольшой копипаст/дублирование в пределах одного метода

Проверка дублирования сейчас работает для довольно больших блоков кода
Но часто разработчики допускают небольшие копипасты в пределах одного метода
Выполняют повторные вычисления. например, без необходимости.
Например,

&НаКлиенте
Процедура ОбработатьСтрокуДерева(Строка)
	ИдентификаторСтроки = Строка.ПолучитьИдентификатор();
	Если Условие Тогда
		Какой-то код и в нет переустановки ИдентификаторСтроки
	КонецЕсли;

	ИдентификаторСтроки = Строка.ПолучитьИдентификатор();
	ЕщеКод(ИдентификаторСтроки);
КонецПроцедуры

Хочется сделать правило для обнаружения подобных простых дублирований в рамках одного метода.
Конечно, нужно понять, какие сложные срабатывания здесь могут быть

что скажете?

1 Симпатия

Спорно. Может быть такая конструкция.

Процедура МояПроцедура()
СтрокаДерева = ПолучитьСтрокуДерева("КакойТоПараметр1"):
ИдентификаторСтроки = СтрокаДерева .ПолучитьИдентификатор();

Если ИдентификаторНеСоответствуетНужному() Тогда
  СтрокаДерева = ПолучитьСтрокуДерева("ДругойПараметр"):
КонецЕсли
ИдентификаторСтроки = СтрокаДерева .ПолучитьИдентификатор();

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

Может быть ложное срабатывание. Возможно пример не совсем удачный. Суть его в том, что в первом параметре может быть разные значения.

думаю, что количество ложных срабатываний будет превышать количество полезных, если не решить как исключить случаи, когда выражения полностью по тексту совпадают, но контекст уже изменился. контекст не в смысле наклиенте/насервере, а значения переменных

по дублированию кмк интереснее прикрутить нечеткий поиск, когда пишут абсолютно идентичные конструкции, но переменные названы по-разному и как обычный копипаст не детектятся

ИМХО, тогда будет еще больше ложных срабатываний.