Высота строки в Ручную

1. ToJIuK 24.02.16 15:40 Сейчас в теме
Доброго времени суток. Подскажите ,пожалуйста, есть ли возможность в 1с77 задать высоту строки в печатной форме в ручную?
Подробнее.
1) пробовал сделать высоту строк автоматически (+ свойства "переносить") в 1с77 в печатной форме длинные названия выходит нормально (полностью). а вот при сохранении в Ексель выводит только первую строку, все остальное скрывает (так как есть объединенные ячейки в печатной форме). Переделывать все печатную форму очень сложно.
2) вижу как правильно. в Задать параметр ВысотаСтроки программно в зависимости от количества символов. Пробовал так:
		Секция = Таб.ПолучитьСекцию("Строка");
		ТабОбл = Секция.Область();
		ТабОбл.ВысотаСтроки(100);
		Таб.ВывестиСекцию("Строка");


Но все ровно высота не выставляется. В чес может быть проблема? подскажите кто нить сталкивался с такой задачей и как её решить?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Cooler 22 24.02.16 16:13 Сейчас в теме
(1) ToJIuK,
В чес может быть проблема?
В том, что в своем коде вы пытаетесь установить высоту еще не выведенной сроки, т.е. макета. А это делается только интерактивно в конфигураторе.

Правильная последовательность действий:
1. Вывести секцию.
2. Получить область уже выведенной секции таблицы.
3. Установить высоту строки в этой области.
3. Shreki2015 2 25.02.16 14:32 Сейчас в теме
(2) Cooler, или, сделать пару одинаковых секций, установить там разные высоты и соответственно их названия разные и выводить по необходимости одну или другую.
5. ToJIuK 26.02.16 14:33 Сейчас в теме
(3) Shreki2015, Ну это не вариант . что на все случаи жизни предусмотреть ?? а есть нудно будет что то изменить в печатной форме фо все 5-7 секциях менять? не не. Должно быть по проще.
4. ToJIuK 26.02.16 14:31 Сейчас в теме
(2) Cooler, поменял местами ,
        таб.ВывестиСекцию("Строка")     
        Секция = Таб.ПолучитьСекцию("Строка");
        ТабОбл = Секция.Область();
        ТабОбл.ВысотаСтроки(100);
        ;

Но все ровно не помогает. все остается на месте
6. ivsher 26.02.16 17:02 Сейчас в теме
(4) ToJIuK, Должно работать, в конфигураторе в макете высоту строки выставьте в авто.
8. Cooler 22 26.02.16 18:09 Сейчас в теме
(4) ToJIuK,
поменял местами
А разве я советовал поменять местами неработающие в принципе строки?
Вот эта строка кода:
Секция = Таб.ПолучитьСекцию("Строка");

Неужели трудно было заглянуть в Синтакс-Помищник? Что же, читайте:
Назначение:
Возвращает именованную секцию исходной таблицы-шаблона. При получении секции, ячейки секции, имеющие тип ''Шаблон'' и ''Выражение'' будут заполнены соответствующими данными.

Или вы вообще не понимаете, чем выведенная таблица отличается от макета? Ваша теперешняя ошибка - в результирующей таблице нет секций. Вообще. Какую область вы собрались получить таким способом?

Копайте сюда:
Область(<?>)
Синтаксис:
Область(<R1>,<C1>,<R2>,<C2>)
Назначение:
Возвращает значение типа ''ОбластьТаблицы'' области выходной секции таблицы или секции таблицы в режиме ввода данных.
А в качестве аргументов использовать методы ВысотаТаблицы() и ШиринаТаблицы(), если надо поменять высоту строки последней выведенной строки. А если не последней - считать строки.

Готовый код не стану приводить принципиально.
7. ToJIuK 26.02.16 17:47 Сейчас в теме
Пробовал и авто и в ручную проставлял высоту. Все ровно не помогает. Надо ещё покапаться.
9. ToJIuK 01.03.16 11:53 Сейчас в теме
разобрался.
Функция РасчитатьКоличествоПереносов(Наим)
	ВысотаОднСтроки = 13;
	длСтр 		= СтрДлина(Наим);
	КолвоСтрок 	= длСтр / 50;
	Целых = КолвоСтрок - цел(КолвоСтрок);
	Если Целых > 0 Тогда
		КолвоСтрок = Цел(КолвоСтрок)+1;
	КонецЕсли;
	возврат КолвоСтрок*ВысотаОднСтроки;
	
КонецФункции // РасчитатьКоличествоПереновос
Показать

		Таб.ВывестиСекцию("Строка");
		//Секция = Таб.Область("Строка");
		ТекущаяВысота 	= Таб.ВысотаТаблицы();
		ТабОбл		 	= Таб.Область(ТекущаяВысота);
		ВысотаСтр 		= РасчитатьКоличествоПереносов(Наименование);
		ТабОбл.ВысотаСтроки(ВысотаСтр);

и после этого в экселе и PDF строки видны нормально.
10. iD1n 12 14.11.23 22:42 Сейчас в теме
(9) Огромное спасибо! Помогли в моем решении. Только я еще добавил алгоритм поиска текста заполненной(через "Шаблон") области.

ТабДок.Вывести(Область);
	//Меняем высоту строки исходя из значений
	ОбластьРаздел3Строка2 = ТабДок.НайтиТекст("Размер платы", Область);
	Если ЗначениеЗаполнено(ОбластьРаздел3Строка2) Тогда
	    ВысотаСтрокиРассчитанная = РасчитатьВысотуСтроки(ОбластьРаздел3Строка2.Текст);
	    ОбластьРаздел3Строка2.ВысотаСтроки = ВысотаСтрокиРассчитанная;
	КонецЕсли;
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот