1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| &НаКлиенте
Процедура НайтиСлова(Команда)
// Очищаем сообщения на случай повторного использования процедуры
ОчиститьСообщения();
// Устанавливаем переменную
ИсходныйТекст = Объект.Текст;
// Выполняем проверку на предмет наличия текста
Если ПустаяСтрока(ИсходныйТекст) Тогда
Сообщить("Отсутствует текст для поиска слов!");
Возврат;
КонецЕсли;
// Заменяем разделители на пробелы
ТекстДляРазбора = ИсходныйТекст;
ТекстДляРазбора = СтрЗаменить(ТекстДляРазбора, ".", " ");
ТекстДляРазбора = СтрЗаменить(ТекстДляРазбора, ",", " ");
ТекстДляРазбора = СтрЗаменить(ТекстДляРазбора, ";", " ");
ТекстДляРазбора = СтрЗаменить(ТекстДляРазбора, ":", " ");
ТекстДляРазбора = СтрЗаменить(ТекстДляРазбора, "!", " ");
ТекстДляРазбора = СтрЗаменить(ТекстДляРазбора, "?", " ");
// Создаем массив слов
МассивСлов = СтрРазделить(ТекстДляРазбора, " ");
Слова = Новый Соответствие;
// Выполняем поиск трёхбуквенных слов
Для каждого Слово Из МассивСлов Цикл
Слово = НРег(Слово);
Если СтрДлина(Слово) = 3 Тогда
Если Слова.Получить(Слово) <> Неопределено Тогда
Количество = Слова.Получить(Слово);
Слова.Вставить(Слово, Количество + 1);
Иначе
Слова.Вставить(Слово, 1);
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Проверяем, были ли найдены трехбуквенные слова
// В случае отсутствия трехбуквенных слов
// сообщаем об этом пользователю
Если Слова.Количество() = 0 Тогда
Сообщить("В введенном тексте нет трехбуквенных слов.");
Возврат;
КонецЕсли;
// Задаём формат вывода результата в одну строку через запятую
Результат = "";
Для каждого Элемент Из Слова Цикл
Если Результат <> "" Тогда
Результат = Результат + ", ";
КонецЕсли;
Результат = Результат + Элемент.Ключ + " - " + Элемент.Значение;
КонецЦикла;
// Выводим результат в виде сообщения
Сообщить(Результат);
КонецПроцедуры |