1С перенос строки в макете

Мне нужно сформировать многострочную строку, для этого необходимо осуществлять переход на новую строку, а я не знаю как. Подскажите как в 1С 8 поставить символ перехода на новую строку?

Для осуществления перехода на новую строку необходимо воспользоваться конструкцией встроенного языка 1С 8 Символы, которая содержит набор специальных символов. Переход на следующую строку делается при помощи символа ПС.

В конструкции Символы также содержаться:

  • ВК (CR) — возврат каретки;
  • ВТаб (VTab) — символ табуляции (вертикальной);
  • НПП (NBSp) — неразрывный пробел. Пробел, по которому не должен выполняться перенос на другую строку или другое разбиение текста при форматировании;
  • ПФ (FF) — перевод формы (страницы);
  • Таб (Tab) — символ табуляции (горизонтальной).

При работе с печатными формами периодически возникает одна и та же ситуация, когда строка, передаваемая параметром, не вмещается в выделенную для неё область.

Первое, что приходит на ум — просто изменить режим размещания текста:

Но такой вариант не всегда подходит. Например, требуется, чтобы чтобы у области было нижнее подчёркивание вне зависимости от заполнения. Тогда можно использовать нижнюю границу ячейки, но если строк борее одной(в результате переноса), тогда подчёркнутой окажется лишь нижняя. Можно поизвращаться с самой входной строкой, вставляя лишние пробелы или знак "_" и используя подчёркнутый шрифт, но проще и правильнее, как мне кажется, вывести область несколько раз передавая в неё параметром нужную часть строки. И здесь возникает необходимость разбить строку на подстроки.

Вариант 1. По количеству символов строки.

Разбивка по пробелам есть, символ переноса, если слово не входит целиком есть, "защита от дурака" есть. Кстати, если передать вторым параметром 1, то получим преобразвание строки в "столбец".

Читайте также:  Почему не устанавливается драйвера на видеокарту nvidia

Как узнать что передать в КоличествоСимволовПодстроки? Методом тыка или вводя в макете символы до заполнения области и, посчитав количество получившихся символов, использовать это значение.

Неплохо! С оговоркой, неплохо это только для моноширных шрифтов. А с обычными получается следующее. Посчитали, сколько входит единиц, а передав строку с буквами типа "Щ", "Ж", "Ю" окажется, что она не войдёт в область. Стоит это иметь ввиду и передавать количество символов с расчётом на самые широкие, но тогда в случае попадания узких символов, может показаться не очевидным, зачем произошёл перенос, если до правой границы ещё достаточно свободного места.

Вариант 2. По ширине ячейки / колонки.

Что изменяется из свойств области при переполнении? Высота! Отлично, она и будет индикатором для переноса строки.

Ну и выводим в табличный документ преобразованную строку:

Вариант 3. Не разбивать строку, а уменьшать шрифт.

Лично меня такой вариант не устраивает минимум по трём причинам:

  1. Размер шрифта ниже некоего становится нечитаемым (порог достигается раньше, если зрение неидеальное).
  2. Печатному документу могут диктоваться стогие правила оформления/форматирования.
  3. Размер шрифта достиг минимально возможного, но текст так и не вместился.

Методика та же, что и в варианте 2, с той разницей, что играться прийдётся не с длиной строки, а с размером шрифта.

В приложенном файле обработка(та, что на скриншотах), демонстрирующая варианты применения данных функций.

Программирование системы 10.05.2016 17:42 2723

Когда содержимое не помещается в ячейку по ширине, то в свойствах ячейки табличного документа можно установить параметр "Размещение текста" в значение "Переносить" и содержимое перенесётся на следующую строку внутри ячейки. Но иногда требуется перенести содержимое в ячейку на следующей строке.

Читайте также:  Как взломать qsp игру

Для этого нужно текст поделить на подстроки, которые будут выведены в ячейки. Ширина подстроки определяется количеством символов, которые помещаются в одной строке ячейки. Так как ширины символов отличаются, то ширина подстроки определяется приблизительно.

Заполненный макет в 1С:предприятии

Процедура заполнения и вывода макета

Процедура многострочного вывода

Процедура разделяет текст на подстроки по ширине области ячеек и выводит подстроки в эти области ячеек. Выводимые строки добавляются в конец табличного документа.

  • ТабДокумент — табличный документ для вывода
  • НомерПервойКолонки — номер первой колоки области ячеек
  • НомерПоследнейКолонки — номер последней колоки области ячеек
  • Ширина — приблизительное количество символов в области ячеек

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться