Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 18:42

Почему не получается? Надо сравнить 2 строки

Автор 1СNachalo, 04 мар 2018, 18:31

0 Пользователей и 1 гость просматривают эту тему.

1СNachalo

Создала реквизиты Документа (с типом Строка Строка1 и Строка2).



На форме этого документа создала кнопку и в процедуре прописала вызов функции. Саму же функцию нашла в Инете.



Выдает ошибку: "{Документ.РешениеЗадач.Форма.ФормаДокумента.Форма(346,13)}: Обнаружено логическое завершение исходного текста модуляКонецФункции<<?>>  (Проверка: Тонкий клиент)"



А процедура кнопки получилась такая:




&НаКлиентеПроцедура СравнитьСтроки(Команда)             

Наим1=    Объект.Строка1;  Наим2= Объект.Строка2;



Результат = СходствоНаименований (Наим1,Наим2);



Функция СходствоНаименований(Знач Наим1="",Знач Наим2="")   



Наим1 = СокрЛП(Наим1);   



Наим2 = СокрЛП(Наим2);   



Наим1 = СтрЗаменить(Наим1,"  ",""); //Удаляем двойные пробелы



  Наим1 = СтрЗаменить(Наим1," ","");  //Удаляет одинарные пробелы   



Наим2 = СтрЗаменить(Наим2,"  ","");   



Наим2 = СтрЗаменить(Наим2," ","");    //проверяем значения на схожесть     



Длина1  = СтрДлина(Наим1);



  Длина2  = СтрДлина(Наим2);   



Если Длина1 > Длина2 Тогда   



    Длина = Длина1;   

Стр   = Наим1;



  Иначе    Длина = Длина2;



  Стр   = Наим2;   



КонецЕсли;   



Сч = 0;



Вхождение1 = 0;



Вхождение2 = 0;



  Пока (Стр<>"")



Цикл        Символ = Лев(Стр,1);



      Вхождение1 = Вхождение1+СтрЧислоВхождений(Наим1,Символ);       



Вхождение2 = Вхождение2+СтрЧислоВхождений(Наим2,Символ);       



Наим1 = СтрЗаменить(Наим1,Символ,"");       



Наим2 = СтрЗаменить(Наим2,Символ,"");       



Стр = Прав(Стр,СтрДлина(Стр)-1);   



КонецЦикла;   



Возврат  ?(Вхождение1>Вхождение2,Окр((Вхождение2/Вхождение1)*100,3,1),Окр((Вхождение1/Вхождение2)*100,3,1));



КонецФункции

//СходствоНаименований()



В чем загвоздка?

В идеале нужна примерная оценка совпадения на уровне 3-4 градаций.

Теги: 1С 8.3 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск