Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 23:27

Перенос строки параметра.

Автор mila1231, 10 июл 2015, 12:23

0 Пользователей и 1 гость просматривают эту тему.

mila1231

Не могу разобраться, помогите знающие, есть параметр в макете состояние <Состояние> , он равен значение Состояние_объекта, который заполняется в документе, тип строка, так вот как разбить параметр который выводится Состояние на две строки?
Т.е в документе мы например вводим: Мама мыла раму. Мама, а в отчёте должно быть
Мама мыла рама.
Мама
Т.е по сути нужно делать цикл типа
Если СтрДлина(Состояние_объекта)>50 тогда
Найти(состояние объекта, ".") // ищем точку и после точки мы должны перенести на следующую строку и вот тут я встала.. вообще не могу понять как сделать

или как то по другому, я сообразить не могу....
Зы заранее спсб, тапками не бросать.

Дмитрий@

Добавьте в строчку перенос строки "Символы.ПС"

mila1231

Цитата: Дмитрий@ от 10 июл 2015, 12:38
Добавьте в строчку перенос строки "Символы.ПС"

Нее она тогда просто расширит мне строку, а мне надо именно на другую строку перенести....

Дмитрий@

В поле макета установите свойство "РазмещениеТекста = Переносить".

KrivosheevEV

Можно создать два параметра в макете: СостояниеПерваяСтрока и СостояниеВтораяСтрока. И заполнять их в зависимости от длины строки.

cska-fanat-kz

1. разбиваем строку на массив строк
2. обходим массив циклом и выводим в табдок
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

mila1231

Цитата: Дмитрий@ от 10 июл 2015, 13:00
В поле макета установите свойство "РазмещениеТекста = Переносить".
если честно в свойстве такого не нашла...и думаю в любом случае строка будет только расширяться, а не переноситься.
Добавлено: 13 июл 2015, 06:56


Цитата: KrivosheevEV от 10 июл 2015, 13:11
Можно создать два параметра в макете: СостояниеПерваяСтрока и СостояниеВтораяСтрока. И заполнять их в зависимости от длины строки.
Да я об этлом подумала уже, но тут не могу сообразить как правильно надо.. то ли понедельник так влияет, хотя наверно нехватка знания
так вот если не сложно может помножите
так вот есть строка в ней N символов нужно по сути отсчитать 20 левых, потом найти ".", после чего присвоить это значение параметру... и тут я встала.. вроде что то такое нужно...
   ф= Прав(соответствие, СтрДлина(Соответствие)-20);
   ы = Строка(Найти(у,"."));
   ОбластьТело.параметры.Соответствие =Лев(ы,20) ; в итоге он отсчитывает количество символов до точки...


Добавлено: 13 июл 2015, 07:07


Цитата: mila1231 от 13 июл 2015, 06:51
Цитата: Дмитрий@ от 10 июл 2015, 13:00
В поле макета установите свойство "РазмещениеТекста = Переносить".
если честно в свойстве такого не нашла...и думаю в любом случае строка будет только расширяться, а не переноситься.
Добавлено: 13 июл 2015, 06:56


Цитата: KrivosheevEV от 10 июл 2015, 13:11
Можно создать два параметра в макете: СостояниеПерваяСтрока и СостояниеВтораяСтрока. И заполнять их в зависимости от длины строки.
Да я об этлом подумала уже, но тут не могу сообразить как правильно надо.. то ли понедельник так влияет, хотя наверно нехватка знания
так вот если не сложно может помножите
так вот есть строка в ней N символов нужно по сути отсчитать 20 левых, потом найти ".", после чего присвоить это значение параметру... и тут я встала.. вроде что то такое нужно...
   Если(СтрДлина(Соответствие)>50) тогда
      ц = Лев(Соответствие, 50);
      у = Прав(соответствие, СтрДлина(Соответствие)-20);
      й = Строка(Найти(у,"."));
      ОбластьТело.параметры.Соответствие =ц+й ;// в итоге он выдаёт 50 символов но не как надо надо то до ".".
Добавлено: 13 июл 2015, 07:42


Написала в итоге так.... работает, но не красиво и кажется неправильно
   Если(СтрДлина(Соответствие)>50) тогда
      ц = Лев(Соответствие, 20);
      у = (Прав(соответствие, СтрДлина(Соответствие)-20));
      й = Найти(у,".");
      к = СтрДлина(Соответствие);
      е=20+й ;
      ОбластьТело.параметры.Соответствие =Лев(Соответствие, е);
      ОбластьТело.параметры.Соответствие2 = Прав(соответствие,СтрДлина(Соответствие)-е)


            иначе

         ОбластьТело.Параметры.Соответствие = соответствие;
      конецЕсли;


vitasw

Цитата: mila1231 от 13 июл 2015, 06:51Цитата: Дмитрий@ от 10 Июл 2015, 13:00

    В поле макета установите свойство "РазмещениеТекста = Переносить".

если честно в свойстве такого не нашла...и думаю в любом случае строка будет только расширяться, а не переноситься.

Вы очень плохо искали. В вашем последнем скрине это свойство как раз и выделено(первое свойство "Размещение текста" = авто.) Установите "переносить". И нет расширяться не будет а будет как раз переносить. И переносить будет в этой же строке. НО судя по макету вам это не поможет т.к. по идее у вас должно быть 2 параметра: Соответствие1 и Соответствие2. И такое разделение только через программное вычисление длинны наименования и т.д.

mila1231

Цитата: vitasw от 13 июл 2015, 10:04
Цитата: mila1231 от 13 июл 2015, 06:51Цитата: Дмитрий@ от 10 Июл 2015, 13:00

    В поле макета установите свойство "РазмещениеТекста = Переносить".

если честно в свойстве такого не нашла...и думаю в любом случае строка будет только расширяться, а не переноситься.

Вы очень плохо искали. В вашем последнем скрине это свойство как раз и выделено(первое свойство "Размещение текста" = авто.) Установите "переносить". И нет расширяться не будет а будет как раз переносить. И переносить будет в этой же строке. НО судя по макету вам это не поможет т.к. по идее у вас должно быть 2 параметра: Соответствие1 и Соответствие2. И такое разделение только через программное вычисление длинны наименования и т.д.

да я увидела, правда уже после того, как сообщение отправила, но в моём случае этот вариант не подходит, сделала по другому.. кривенько конечно.. но посмотрим как будет работать.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск