// Разбивает строку по длине по словам
//
// Параметры:
// Текст - Строка - Текст
// ДлинаСтроки - Число - Длина строки
//
// Возвращаемое значение:
// Строка - РазбитьСтрокуПоСловамСПредельнойДлиной
Функция РазбитьСтрокуПоСловамСПредельнойДлиной(Знач Текст, Знач ДлинаСтроки) Экспорт
Если СтрДлина(Текст) <= ДлинаСтроки Тогда
Возврат Текст;
КонецЕсли;
Разделитель = " ";
МассивИсходныхСлов = СтрРазделить(Текст, Разделитель);
МассивСтрокДляВозврата = Новый Массив;
СобраннаяСтрока = "";
Для Каждого ЭлементКоллекции из МассивИсходныхСлов Цикл
Если СтрДлина(ЭлементКоллекции) > ДлинаСтроки Тогда
Если Не ПустаяСтрока(СобраннаяСтрока) Тогда
МассивСтрокДляВозврата.Добавить(СобраннаяСтрока);
СобраннаяСтрока = "";
КонецЕсли;
МассивСтрокДляВозврата.Добавить(ЭлементКоллекции);
ИначеЕсли СтрДлина(СобраннаяСтрока + Разделитель + ЭлементКоллекции) > ДлинаСтроки Тогда
Если Не ПустаяСтрока(СобраннаяСтрока) Тогда
МассивСтрокДляВозврата.Добавить(СобраннаяСтрока);
КонецЕсли;
СобраннаяСтрока = ЭлементКоллекции;
Иначе
СобраннаяСтрока = СокрЛП(СобраннаяСтрока + Разделитель + ЭлементКоллекции);
КонецЕсли;
КонецЦикла;
Если Не ПустаяСтрока(СобраннаяСтрока) Тогда
МассивСтрокДляВозврата.Добавить(СобраннаяСтрока);
КонецЕсли;
ТекстПолный = СтрСоединить(МассивСтрокДляВозврата, Символы.ПС);
Возврат ТекстПолный;
КонецФункции
Показать
При делении по 32 символа Строка
Мороз и солнце; день чудесный! Еще ты дремлешь, друг прелестный — Пора, красавица, проснись: Открой сомкнуты негой взоры Навстречу северной Авроры, Звездою севера явись!
превращается в
Мороз и солнце; день чудесный!
Еще ты дремлешь, друг прелестный
— Пора, красавица, проснись:
Открой сомкнуты негой взоры
Навстречу северной Авроры,
Звездою севера явись!
При обнаружении в строке слов превышающих максимальную длину строки они остаются в неизменном виде, тк задача метода разбиавть строку по словам.