Код функции, учитывающий разделители строк.

 

Функция ПолучитьВысотуСтроки(Стр, ШиринаСтолбца, Шрифт)
  Количество = 1;
  ОстатокСтроки = Стр;
  Пока ОстатокСтроки <> "" Цикл
    Длина = 0;
    Пробел = 0;
    ИндексРазделителя = Найти(ОстатокСтроки, РазделительСтрок);
    Если ИндексРазделителя > 0 Тогда
      Подстрока = Лев(ОстатокСтроки, ИндексРазделителя-1);
      ОстатокСтроки = Сред(ОстатокСтроки, ИндексРазделителя+2);
      Количество = Количество + 1;
    Иначе
      Подстрока = ОстатокСтроки;
      ОстатокСтроки = "";
    КонецЕсли;
    Для Х = 1 По СтрДлина(Подстрока) Цикл
      Код=КодСимв(Сред(Подстрока, Х, 1));
      Если Код = 32 Тогда Пробел = Длина КонецЕсли;
      Длина = Длина + Шрифт.ПолучитьЗначение(Код);
      Если Длина > ШиринаСтолбца Тогда
        Длина = ?(Пробел = 0, Длина-ШиринаСтолбца, Длина - Пробел);
        Количество = Количество + 1;
        Пробел = 0;
      КонецЕсли;
    КонецЦикла;
  КонецЦикла;
  Возврат Шрифт.ПолучитьЗначение(256) + (Количество - 1) * Шрифт.ПолучитьЗначение(257);
КонецФункции




Hosted by uCoz