- Как программно установить ширину колонки в табличном документе
- Табличный документ, ширина колонки
- Изменение колонок табличного документа СКД
- Особенности работы с форматами строк табличного документа
- Создание формата строк
- Выделение и копирование
- Экспорт
- Основы формирования табличного документа на основе макета
- Общая схема
- Пример вывода табличного документа
- Основные методы
Как программно установить ширину колонки в табличном документе
ШиринаКолонки (ColumnWidth)
Использование:
Чтение и запись.
Описание:
Тип: Число.
Содержит ширину колонок в области (в так называемых средних символах шрифта).
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
———————————————————————————
а может просто «Переносить» нуна сделать в параметрах ячеек?
Тип: Строка.
Имя области или адрес в формате «R1C1:R2C2», где число после «R» обозначает номер строки, число после «C» — номер колонки, символом «:» (двоеточие) разделяются координаты левого верхнего и правого нижнего угла области. В качестве имени также можно передавать пересечение двух областей, записываемое как » | «.
Тип: Число.
Номер первой строки области таблицы.
Номер первой колонки области таблицы.
Номер последней строки области таблицы.
Номер последней колонки области таблицы.
Описание варианта метода:
Если последняя строка и последняя колонка отсутствуют, то область задана единственной ячейкой. Если строки или колонки отсутствуют, то область задана диапазоном строк или колонок соответственно. Если метод вызван без параметров, то область задана всей таблицей.
Возвращаемое значение:
Тип: ОбластьЯчеекТабличногоДокумента; РисунокТабличногоДокумента.
Получает область табличного документа как область ячеек табличного документа либо как рисунок с указанным именем. Область может состоять из нескольких расположенных подряд строк или колонок либо быть прямоугольной областью таблицы.
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример:
Источник
Табличный документ, ширина колонки
(1) Я вот для таких случаев так пишу после вывода
(2) Так и сделала. криво. но.
(1) Я вот для таких случаев так пишу после вывода
(4) Данные в макете меняются. надо вычислять ширину колонок. поясню — есть печатная форма табеля.
В большинстве колонок 1 или 2 символа (8, 8К, УК, ОЖ) и так далее.. Для столбцов в макете выставлена ширина 4,5
Но бывают и изыски например — 24ДД. Тогда надо ширину колонки менять.
По идее это команда РастягиватьПоГоризонтали.
Область.РастягиватьПоГоризонтали=Истина.
Использование :
Чтение и запись.
Описание :
Тип: Булево.
Содержит признак того, что ширина колонки рассчитывается автоматически в зависимости от размера отображаемой области документа.
Доступность :
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание :
Значение по умолчанию: Ложь.
Но я попробовал, что то слишком сильно растягивает, больше чем нужно для текста, а это тоже не удобно.
Еще для информации есть такая команда РежимИзмененияРазмераКолонки, которая по описанию включает выключает режим изменения ширины по двойному щелчку.
пОбласть.РежимИзмененияРазмераКолонки=РежимИзмененияРазмера.Обычный; выключен
пОбласть.РежимИзмененияРазмераКолонки=РежимИзмененияРазмера.БыстроеИзменение; включен
Но опять же, попробовал, этот режим всегда остается включенным (что конечно лучше чем выключен), но почему такие странности не понятно.
Источник
Изменение колонок табличного документа СКД
Мне нужно программно изменять ширину колонок табличного документа, который создается СКД с заданным макетом.
При попытке выполнить что-то в духе:
. я не вижу никакой реакции. Попытка через тот же код задать, например, цвет фона колонки приводит к непонятному результату: цвет меняется, однако результат выполнения СКД он не затрагивает никак (пример на приложенном скриншоте). При этом ширина раскрашенной области второй колонки уже, чем область выведенной второй колонки (это «Amount» на скриншоте).
Очевидно, я чего-то не знаю о принципах работы табличных документов 1С и / или формированию их в СКД. Возможно, кто-то подтолкнет в правильном направлении. Код (если это важно) пытаюсь выполнять в конце процедуры ПриКомпоновкеРезультата().
(1) bytecoded, там где не выделилось, в строках, свои колонки созданы.
Попробуйте выделить несколько строк и изменить ширину колонок. Почитайте внимательно текст!
(3) Agapov_Stas, к сожалению, не срабатывает. Думаю, это из-за использования кастомного макета СКД.
(2) dj_serega, работает. Но этот метод влияет на весь документ, несмотря на то, что установить размер колонок я пытаюсь для отдельных ячеек (например, на скриншоте видно, как установка ширины колонки Aging в первой таблице сплюснула колонку Balance в таблице ниже). При настройке макета СКД есть возможность убедиться, что колонки строк имеют ширину, независимую друг от друга?
(5) bytecoded, Я знаю про только визуальный метод.
Стали на ячеку и выделили колонку. Выделится только то что входит в группу.
Если ячейка в группе колонок из нескольких строк, то выделяться только колонки этих строк. Как-то так. Надеюсь понял о чем я.
Программно не смотрел. Так что если найдешь, пиши 😉
(6) dj_serega, понял. А каким образом можно разгруппировать строки макета, чтобы можно было задавать колонкам независимую ширину?
Например, на прикрепленном скриншоте видно, что в группу входят все строки, кроме второй; я хочу получить возможность разбить каждую строку на отдельную группу и управлять шириной колонок каждой группы независимо от остальных.
(7) Boneman, понял, спасибо. Попробую, если с макетом не получится — пытаюсь понять, как разбить его на отдельные, независимые друг от друга группы строк.
По-прежнему чего-то недопонимаю.
Итак, я создал для каждого фрагмента макета свой формат строк, проверил отсутствие привязки к другим фрагментам через выделение строк фрагмента + выделение колонки. Однако результирующий табличный документ все равно ведет себя так, как будто привязка существует: например, все колонки с цифрами в макете имеют ширину 14, но после генерации документа:
- Колонки с цифрами имеют разную ширину, отличную от 14 (например, колонка Amount на скрине имеет ширину 18, хотя везде, где встречается в макете, выставлена в 14 и в отдельный формат);
- Колонки выделяются так, как будто никакого формата строк не существует (т.е. выделяется полная вертикаль, хотя там чуть ли не каждая строка со своим форматом).
Соответственно, макет продолжает ехать по ширине. Куда имеет смысл посмотреть?
Поигрался немного с шириной колонок. Действительно, компоновка по-особенному подбирает ширину.
Зато стал понимать зачем нужен ИдентификаторТаблицы у объекта СтрокаТаблицыОбластиКомпоновкиДанных. Обратил внимание, что если у ячеек макетов разная ширина, но одинаковые идентификаторы, то они будут выведены в одном формате строк. Ширина колонки при этом будет подобрана как максимальная ширина всех входящих в колонку ячеек.
Теперь выполнение вот этого кода (обрати внимание на МакетКомпоновки.Макеты.Макет2.Макет[0].ИдентификаторТаблицы = «»;):
Приводит к такому результату. см вложение
Заголовок и детальная запись выведены в разных форматах строк.
(17) Armando, спасибо. Через программное искажение идентификаторов удалось добиться нужного эффекта. Не подскажешь, где можно прочитать подробнее про эти идентификаторы и порядок их назначения в стандартной обработке? Попробовал поискать информацию, но не нашел. Опасаюсь какого-то негативного эффекта от такого грубого вторжения в макет 🙂
Чистые 1с-ники — те, для которых жизнь за пределами 1с не существует
Условные 1с-ники — это мастадонты программирования, для которых 1с — просто диалект
Это была ода тем, которые видят дальше чем разработчики 1с
Источник
Особенности работы с форматами строк табличного документа
Табличный документ платформы 1С:Предприятия позволяет использовать различную ширину колонок для различных строк. В данном разделе рассказывается, каким образом использовать данную возможность, описываются некоторые особенности использования данной возможности.
Создание формата строк
Для того чтобы создать новый формат строк (сделать у некоторых строк собственную ширину колонок), достаточно выделить строки, у которых необходимо изменить ширину колонки, и при помощи мыши изменить размер любой колонки. После изменения размера будет выдан запрос на создание нового формата строк. В случае подтверждения создания нового формата строк, для выделенных строк будет создан новый формат, и в дальнейшем, при изменении размеров колонок в данных строках, будут изменяться размеры колонок только в данных строках, остальные строки при этом затрагиваться не будут.
Для программной установки формата строк для определенной области табличного документа, следует воспользоваться методом СоздатьФорматСтрок() . После вызова метода строки, которые входили в область, для которой вызывался метод, будут иметь новый формат строк.
Выделение и копирование
Табличный редактор платформы 1С:Предприятие не позволяет осуществлять выделение прямоугольных областей, в которые входят несколько строк с различными форматами. Для копирования части документа, в которой присутствует более чем один формат строк, следует выделять строки целиком. Для этого можно с помощью мыши выделить заголовки строк, которые необходимо скопировать, либо воспользоваться комбинацией клавиш Alt+Shift+Вверх/Вниз.
Если при копировании строк табличного документа будут скопированы строки, у которых был установлен собственный формат строк, то при вставке таких строк в табличный документ данные строки будут также иметь отдельный формат строк. В случае если в документе, в который происходит вставка строк из буфера обмена, уже присутствуют строки с таким же форматом, вставляемые строки будут иметь тот же формат, что и присутствующие строки. Т.е. если скопировать строку с собственным форматом строк и вставить в документ, из которого было осуществлено копирование, то в документе будет две строки с одним форматом, и при изменении ширин колонок, будут изменяться ширины колонок обеих строк.
Вся выше сказанная информация о копировании строк с установленным форматом актуальна и для программного вывода строк в табличный документ — выводимые строки, которые в исходном документе имели одинаковый формат строк, будут выведены в результирующий документ с одним форматом строк.
Экспорт
Если табличный документ содержит строки с различным форматом строк, при выводе его в формат Microsoft Excel, настройки ширин колонок будут потеряны. Для того чтобы передать файл табличного документа и при этом сохранить оформление, можно воспользоваться экспортом табличного документа в формат HTML.
Источник
Основы формирования табличного документа на основе макета
Обычно табличный документ формируется на основе макета как из строительных блоков. Макет представляет собой шаблон для формирования печатной формы. Построение макета производится в конфигураторе в специальном табличном редакторе. Разработчик может создавать области, изменять высоту строк и ширину колонок, задавать форматирование ячеек и всего табличного документа, включать в макет рисунки, диаграммы и сводные таблицы.
Области макета предназначены для однократного или многократного вывода, например, ниже представлен макет для печати расходной накладной:
Некоторые ячейки содержат только текст, который должен быть выведен. Другие ячейки содержат имена параметров (в угловых скобках). Значения этих параметров должны указываться в программном модуле. В отличие от версии 7.7, в ячейку нельзя вписать выражение. В версии 8.0 весь программный код сосредоточен в программных модулях и при выводе секций нет связи с текущим контекстом программного модуля. Назначение параметров табличного документа должно производиться явно из программного модуля через коллекцию «Параметры» объекта «ТабличныйДокумент».
Область может состоять из нескольких расположенных подряд строк или колонок, либо быть прямоугольной областью таблицы. К области можно обратиться по имени или по координатам. Можно также обращаться к пересечению областей, используя вертикальную черту (как в версии 7.7).
Общая схема
Общая схема формирования печатной формы на основе макета:
- Создание макета в табличном редакторе (определение областей, имен параметров, форматирования).
- Создание нового табличного документа (этот пункт не требуется, если отчет выводится в элемент управления ПолеТабличногоДокумента).
- Получение макета в переменную (метод ПолучитьМакет).
- Получение областей макета (метод ПолучитьОбласть).
- Заполнение параметров области (свойство Параметры).
- Вывод области в табличный документ (методы Вывести и Присоединить).
- Установка свойств отображения табличного документа (сетка, заголовки, только просмотр и т.д.).
- Отображение табличного документа на экране (а может быть отправка на принтер или сохранение).
Пример вывода табличного документа
Ниже приведен пример формирования печатной формы расходной накладной из модуля документа:
Процедура Печать(ТабДок) Экспорт
//создание нового табличного документа
ТабДок = Новый ТабличныйДокумент ;
//получение макета для печати расходной накладной
Макет = Документы.РасходнаяНакладная. ПолучитьМакет («Основной»);
//получим область «Заголовок» как новый табличный документ (!)
Область = Макет. ПолучитьОбласть («Заголовок»);
//укажем параметры области
Область. Параметры .НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметры.Кому = Контрагент;
//выведем заполненную область «Заголовок» в табличный документ
ТабДок. Вывести (Область);
//выведем область «Шапка» в табличный документ
ТабДок.Вывести(Макет.ПолучитьОбласть(«Шапка»));
//получение области «Строка»
//обратите внимание, что это можно сделать до цикла по строкам
Область = Макет.ПолучитьОбласть(«Строка»);
//вывод строк документа в печатную форму
Для Каждого СтрСостава Из Состав Цикл
//заполнение параметров области из строки табличной части
Область.Параметры. Заполнить (СтрСостава);
//вывод сформированной области в табличный документ
ТабДок.Вывести(Область);
//вывод области «Подвал»
Область = Макет.ПолучитьОбласть(«Подвал»);
Область.Параметры.ИтогоКоличество = Состав.Итог(«Количество»);
Область.Параметры.ИтогоСумма = Состав.Итог(«Сумма»);
ТабДок.Вывести(Область);
//установим параметры отображения табличного документа
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ОтображатьСетку = Ложь;
//покажем табличный документ на экране
ТабДок. Показать ();
Основные методы
Основные методы формирования итогового табличного документа следующие:
Источник