Доброго времени суток. Подскажите ,пожалуйста, есть ли возможность в 1с77 задать высоту строки в печатной форме в ручную?
Подробнее.
1) пробовал сделать высоту строк автоматически (+ свойства "переносить") в 1с77 в печатной форме длинные названия выходит нормально (полностью). а вот при сохранении в Ексель выводит только первую строку, все остальное скрывает (так как есть объединенные ячейки в печатной форме). Переделывать все печатную форму очень сложно.
2) вижу как правильно. в Задать параметр ВысотаСтроки программно в зависимости от количества символов. Пробовал так:
Но все ровно высота не выставляется. В чес может быть проблема? подскажите кто нить сталкивался с такой задачей и как её решить?
Подробнее.
1) пробовал сделать высоту строк автоматически (+ свойства "переносить") в 1с77 в печатной форме длинные названия выходит нормально (полностью). а вот при сохранении в Ексель выводит только первую строку, все остальное скрывает (так как есть объединенные ячейки в печатной форме). Переделывать все печатную форму очень сложно.
2) вижу как правильно. в Задать параметр ВысотаСтроки программно в зависимости от количества символов. Пробовал так:
Секция = Таб.ПолучитьСекцию("Строка");
ТабОбл = Секция.Область();
ТабОбл.ВысотаСтроки(100);
Таб.ВывестиСекцию("Строка");
Но все ровно высота не выставляется. В чес может быть проблема? подскажите кто нить сталкивался с такой задачей и как её решить?
По теме из базы знаний
- Создание договоров средствами 1С
- Интеллектуальная загрузка в 1С счетов, накладных из файлов электронных таблиц (типа XLS), не требующая настроек, с указанием номеров строк и колонок. Для примера обработка загрузки в документ "Поступление товаров и услуг" для "Управление Торговлей 10.3"
- MS Office Excel для пользователей. Подводные камни и полезные возможности
- Повторение строк заголовка на каждой странице при обработке файлов Excel средствами платформы 1С:Предприятие
- Рекомендации по оформлению кода на 1С в презентациях
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) ToJIuK,
Правильная последовательность действий:
1. Вывести секцию.
2. Получить область уже выведенной секции таблицы.
3. Установить высоту строки в этой области.
В чес может быть проблема?
В том, что в своем коде вы пытаетесь установить высоту еще не выведенной сроки, т.е. макета. А это делается только интерактивно в конфигураторе.
Правильная последовательность действий:
1. Вывести секцию.
2. Получить область уже выведенной секции таблицы.
3. Установить высоту строки в этой области.
(4) ToJIuK,
Вот эта строка кода:
Неужели трудно было заглянуть в Синтакс-Помищник? Что же, читайте:
Или вы вообще не понимаете, чем выведенная таблица отличается от макета? Ваша теперешняя ошибка - в результирующей таблице нет секций. Вообще. Какую область вы собрались получить таким способом?
Копайте сюда:
Готовый код не стану приводить принципиально.
поменял местами
А разве я советовал поменять местами неработающие в принципе строки?
Вот эта строка кода:
Секция = Таб.ПолучитьСекцию("Строка");
Неужели трудно было заглянуть в Синтакс-Помищник? Что же, читайте:
Назначение:
Возвращает именованную секцию исходной таблицы-шаблона. При получении секции, ячейки секции, имеющие тип ''Шаблон'' и ''Выражение'' будут заполнены соответствующими данными.
Возвращает именованную секцию исходной таблицы-шаблона. При получении секции, ячейки секции, имеющие тип ''Шаблон'' и ''Выражение'' будут заполнены соответствующими данными.
Или вы вообще не понимаете, чем выведенная таблица отличается от макета? Ваша теперешняя ошибка - в результирующей таблице нет секций. Вообще. Какую область вы собрались получить таким способом?
Копайте сюда:
Область(<?>)
Синтаксис:
Область(<R1>,<C1>,<R2>,<C2>)
Назначение:
Возвращает значение типа ''ОбластьТаблицы'' области выходной секции таблицы или секции таблицы в режиме ввода данных.
А в качестве аргументов использовать методы ВысотаТаблицы() и ШиринаТаблицы(), если надо поменять высоту строки последней выведенной строки. А если не последней - считать строки.
Синтаксис:
Область(<R1>,<C1>,<R2>,<C2>)
Назначение:
Возвращает значение типа ''ОбластьТаблицы'' области выходной секции таблицы или секции таблицы в режиме ввода данных.
Готовый код не стану приводить принципиально.
разобрался.
и после этого в экселе и PDF строки видны нормально.
Функция РасчитатьКоличествоПереносов(Наим)
ВысотаОднСтроки = 13;
длСтр = СтрДлина(Наим);
КолвоСтрок = длСтр / 50;
Целых = КолвоСтрок - цел(КолвоСтрок);
Если Целых > 0 Тогда
КолвоСтрок = Цел(КолвоСтрок)+1;
КонецЕсли;
возврат КолвоСтрок*ВысотаОднСтроки;
КонецФункции // РасчитатьКоличествоПереновос
Показать Таб.ВывестиСекцию("Строка");
//Секция = Таб.Область("Строка");
ТекущаяВысота = Таб.ВысотаТаблицы();
ТабОбл = Таб.Область(ТекущаяВысота);
ВысотаСтр = РасчитатьКоличествоПереносов(Наименование);
ТабОбл.ВысотаСтроки(ВысотаСтр);
и после этого в экселе и PDF строки видны нормально.
(9) Огромное спасибо! Помогли в моем решении. Только я еще добавил алгоритм поиска текста заполненной(через "Шаблон") области.
ТабДок.Вывести(Область);
//Меняем высоту строки исходя из значений
ОбластьРаздел3Строка2 = ТабДок.НайтиТекст("Размер платы", Область);
Если ЗначениеЗаполнено(ОбластьРаздел3Строка2) Тогда
ВысотаСтрокиРассчитанная = РасчитатьВысотуСтроки(ОбластьРаздел3Строка2.Текст);
ОбластьРаздел3Строка2.ВысотаСтроки = ВысотаСтрокиРассчитанная;
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот