Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- &НаКлиенте
- Процедура Команда1(Команда)
- Команда1НаСервере();
- КонецПроцедуры
- &НаСервере
- Процедура Команда1НаСервере()
- // Вставить содержимое обработчика.
- //"DАЕWОО NЕХIА"
- //"DАЕWОО NЕХIА"
- //"DАЕWОО NЕХIА"
- //"DАЕWООNЕХIА"
- //СтрокаПоиска = Реквизит1;
- Текст = Новый ЧтениеТекста("C:\Users\Repin\Desktop\Сохр.csv", КодировкаТекста.OEM);
- Стр = Текст.ПрочитатьСтроку();
- МассивСтрок = СтрРазделить(Стр,";");
- МассивНужныхСтрок = Новый Массив;
- индекс = 1;
- Пока Истина Цикл
- Если индекс >= МассивСтрок.Количество() Тогда
- Прервать;
- КонецЕсли;
- МассивНужныхСтрок.Добавить(МассивСтрок[индекс]);
- индекс = индекс + 2;
- КонецЦИкла;
- //Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
- //Сообщить(МассивСтрок[1]);
- //Стр = Текст.ПрочитатьСтроку();
- //КонецЦикла;
- //ИмяИсточникДанных = "Справочник.МаркиАвтомобилей";
- //ИмяРеквизит = "АвтомобилиРаспознанные";
- //ТекстДерево = Дерево("Строки.АвтомобилиРаспознанные", -1, 50);
- ////ТекстДерево = "5" ;
- //Запрос = Новый Запрос();
- //Запрос.Текст =
- //"ВЫБРАТЬ
- //| Строки.АвтомобилиРаспознанные,
- //| " + ТекстДерево + " КАК Длина
- //|ИЗ
- //| " + ИмяИсточникДанных + " КАК Строки
- //|
- //|УПОРЯДОЧИТЬ ПО
- //| Длина УБЫВ";
- //
- //ВЫгрузка = Запрос.Выполнить().Выгрузить();
- ТЗ = Новый ТаблицаЗначений;
- ТЗ.Колонки.Добавить("ИсходнаяСтрока",,"ИсходнаяСтрока");
- ТЗ.Колонки.Добавить("Элемент",,"Элемент");
- ТЗ.Колонки.Добавить("Оценка",,"Оценка");
- Для Каждого Строка Из МассивНужныхСтрок ЦИкл
- СтрокаПоиска = ПолучитьСтрокуНаЛатинском(Строка);
- СтрокаПоиска1 = ПолучитьСтрокуЗаменойНаЛатиницу(Строка);
- СтруктураОтвета = ПолучитьЭлементСправочника(СтрокаПоиска);
- СтруктураОтвета1 = ПолучитьЭлементСправочника(СтрокаПоиска1);
- Если СтруктураОтвета.Оценка > СтруктураОтвета1.Оценка тогда
- Стр = ТЗ.Добавить();
- Стр.ИсходнаяСтрока = Строка;
- Стр.Элемент = Строка(СтруктураОтвета.Элемент);
- Стр.Оценка = Строка(СтруктураОтвета.Оценка);
- Иначе
- Стр = ТЗ.Добавить();
- Стр.ИсходнаяСтрока = Строка;
- Стр.Элемент = Строка(СтруктураОтвета1.Элемент);
- Стр.Оценка = Строка(СтруктураОтвета1.Оценка);
- КонецЕсли;
- //Сообщить(СтруктураОтвета.Элемент + СтруктураОтвета.Оценка);
- //Сообщить(СтруктураОтвета1.Элемент + СтруктураОтвета1.Оценка);
- КонецЦикла;
- тз1 = ТЗ;
- КонецПроцедуры
- Функция ПолучитьЭлементСправочника(СтрокаПоиска)
- //СтрокаПоиска = Реквизит1;
- ИмяИсточникДанных = "Справочник.МаркиАвтомобилей";
- ИмяРеквизит = "АвтомобилиРаспознанные";
- СтрокаПоиска = Лев(СтрокаПоиска, 300);
- ДлинаСтроки = СтрДлина(СтрокаПоиска);
- Если НЕ ДлинаСтроки > 2 Тогда
- Возврат Неопределено;
- КонецЕсли;
- ТекстПоиск = "0";
- Для Индекс = 1 По ДлинаСтроки - 2 Цикл
- ТекстПоиск = ТекстПоиск + " + ВЫБОР КОГДА ИсточникДанных." + ИмяРеквизит + " ПОДОБНО ""%" + Сред(СтрокаПоиска, Индекс, 3) + "%"" ТОГДА 1 ИНАЧЕ 0 КОНЕЦ";
- КонецЦикла;
- ТекстДерево = Дерево("ИсточникДанных.АвтомобилиРаспознанные", -1, 50);
- //ТекстРанг = "";
- ТекстРанг = "ВЫБОР КОГДА ПОДСТРОКА(ИсточникДанных." + ИмяРеквизит + ", " + (ДлинаСтроки + 1) + ", 3) = """" ТОГДА " + ДлинаСтроки + " ИНАЧЕ " + ТекстДерево + " КОНЕЦ";
- Запрос = Новый Запрос();
- Запрос.Текст = "
- |ВЫБРАТЬ ПЕРВЫЕ 10
- | ИсточникДанных.Ссылка КАК Ссылка,
- | ИсточникДанных." + ИмяРеквизит + " КАК Реквизит,
- | 100*(" + ТекстПоиск + ")/(" + ТекстРанг + " - 2) КАК Ранг
- |ИЗ " + ИмяИсточникДанных + " КАК ИсточникДанных
- |
- |УПОРЯДОЧИТЬ ПО
- | Ранг УБЫВ";
- Выгрузка = Запрос.Выполнить().Выгрузить();
- СтруктураОтвета = Новый Структура("Элемент, Оценка", Выгрузка[0].Реквизит, Выгрузка[0].Ранг);
- Возврат СтруктураОтвета;
- КонецФункции
- Функция Дерево(Реквизит, Начало, Конец) Экспорт
- Если Начало + 1 = Конец Тогда
- Возврат Строка(Конец);
- КонецЕсли;
- Середина = Начало + Цел((Конец - Начало) / 2);
- СтрокаДерево = "ВЫБОР КОГДА ПОДСТРОКА(" + Реквизит + ", " + (Середина + 1) + ", 3) = """" ТОГДА "
- + Дерево(Реквизит, Начало, Середина) + " ИНАЧЕ " + Дерево(Реквизит, Середина, Конец) + " КОНЕЦ";
- Возврат СтрокаДерево;
- КонецФункции // Дерево()
- Функция ПолучитьСтрокуНаЛатинском(ИсходныйТекст)
- СоответствиеСимволов = Новый Соответствие;
- СоответствиеСимволов.Вставить("А", "A");
- СоответствиеСимволов.Вставить("Б", "B");
- СоответствиеСимволов.Вставить("В", "V");
- СоответствиеСимволов.Вставить("Г", "G");
- СоответствиеСимволов.Вставить("Д", "D");
- СоответствиеСимволов.Вставить("Е", "E");
- СоответствиеСимволов.Вставить("Ё", "E");
- СоответствиеСимволов.Вставить("Ж", "ZH");
- СоответствиеСимволов.Вставить("З", "Z");
- СоответствиеСимволов.Вставить("И", "I");
- СоответствиеСимволов.Вставить("Й", "Y");
- СоответствиеСимволов.Вставить("К", "K");
- СоответствиеСимволов.Вставить("Л", "L");
- СоответствиеСимволов.Вставить("М", "M");
- СоответствиеСимволов.Вставить("Н", "N");
- СоответствиеСимволов.Вставить("О", "O");
- СоответствиеСимволов.Вставить("П", "P");
- СоответствиеСимволов.Вставить("Р", "R");
- СоответствиеСимволов.Вставить("С", "S");
- СоответствиеСимволов.Вставить("Т", "T");
- СоответствиеСимволов.Вставить("У", "U");
- СоответствиеСимволов.Вставить("Ф", "F");
- СоответствиеСимволов.Вставить("Х", "KH");
- СоответствиеСимволов.Вставить("Ц", "TS");
- СоответствиеСимволов.Вставить("Ч", "CH");
- СоответствиеСимволов.Вставить("Ш", "SH");
- СоответствиеСимволов.Вставить("Щ", "SHCH");
- СоответствиеСимволов.Вставить("Ъ", "");
- СоответствиеСимволов.Вставить("Ы", "Y");
- СоответствиеСимволов.Вставить("Ь", "");
- СоответствиеСимволов.Вставить("Э", "E");
- СоответствиеСимволов.Вставить("Ю", "YU");
- СоответствиеСимволов.Вставить("Я", "YA");
- ИсходныйТекст = СокрЛП(ВРег(ИсходныйТекст));
- ГотовоеЗначение = "";
- ТекущийСимвол = "";
- ТекущийГотовыйСимвол = "";
- Для к = 1 по СтрДлина(ИсходныйТекст) Цикл
- ТекущийСимвол = Сред(ИсходныйТекст, к, 1);
- ТекущийГотовыйСимвол = СоответствиеСимволов.Получить(ТекущийСимвол);
- Если ТекущийГотовыйСимвол = Неопределено Тогда
- ГотовоеЗначение = ГотовоеЗначение + ТекущийСимвол;
- Иначе
- ГотовоеЗначение = ГотовоеЗначение + ТекущийГотовыйСимвол;
- КонецЕсли;
- КонецЦикла;
- Возврат ГотовоеЗначение;
- КонецФункции
- Функция ПолучитьСтрокуЗаменойНаЛатиницу(ИсходныйТекст)
- СоответствиеСимволов = Новый Соответствие;
- СоответствиеСимволов.Вставить("А", "A");
- СоответствиеСимволов.Вставить("В", "B");
- СоответствиеСимволов.Вставить("Е", "E");
- СоответствиеСимволов.Вставить("К", "K");
- СоответствиеСимволов.Вставить("М", "M");
- СоответствиеСимволов.Вставить("Н", "H");
- СоответствиеСимволов.Вставить("О", "O");
- СоответствиеСимволов.Вставить("Р", "P");
- СоответствиеСимволов.Вставить("С", "C");
- СоответствиеСимволов.Вставить("Т", "T");
- СоответствиеСимволов.Вставить("У", "Y");
- СоответствиеСимволов.Вставить("Х", "X");
- ИсходныйТекст = СокрЛП(ВРег(ИсходныйТекст));
- ГотовоеЗначение = "";
- ТекущийСимвол = "";
- ТекущийГотовыйСимвол = "";
- Для к = 1 по СтрДлина(ИсходныйТекст) Цикл
- ТекущийСимвол = Сред(ИсходныйТекст, к, 1);
- ТекущийГотовыйСимвол = СоответствиеСимволов.Получить(ТекущийСимвол);
- Если ТекущийГотовыйСимвол = Неопределено Тогда
- ГотовоеЗначение = ГотовоеЗначение + ТекущийСимвол;
- Иначе
- ГотовоеЗначение = ГотовоеЗначение + ТекущийГотовыйСимвол;
- КонецЕсли;
- КонецЦикла;
- Возврат ГотовоеЗначение;
- КонецФункции
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement