- Ширина колонки в СКД по содержимому
- Как в 1С СКД изменить ширину колонок отчета
- Настройка колонок в 1С СКД
- Сохранение ширины колонок в отчете СКД
- Специальные предложения
- См. также
- Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо
- Что за ? в коде, или Секретный оператор в 1С
- Полезные примеры СКД, ч.2
- Обзор полезных методов БСП 3.1.4
- Использование классов .Net в 1С для новичков Промо
- Звуковое управление в 1С 8.3
- Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions
- Базовые вещи БСП, которые облегчат жизнь программисту 1С
- Использование программных перечислений, ч.1: строковые константы Промо
- Форма выбора (подбор) в управляемых формах
- Программная работа с настройками СКД
- [СКД] Программное создание схемы компоновки данных
- Вспомогательные инструкции в коде 1С Промо
- Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения
- Сходство Джаро — Винклера. Нечеткое сравнение строк
- Полезные процедуры и функции для программиста
- Оформление и рефакторинг сложных логических выражений Промо
- Таблица значений. Нюансы
- [Шпаргалка] Программное создание элементов формы
- Агрегатные функции СКД, о которых мало кто знает
- Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо
- Регистры бухгалтерии. Общая информация
- Три костыля. Сказ про фокусы в коде
- Иерархия без «В ИЕРАРХИИ»
- Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо
- Отслеживание выполнения фонового задания
- Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив
- Фоновое выполнение кода в 1С — это просто
- Выгрузка документа по условию Промо
- СКД — наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты
- Обработчики событий при записи объектов. Зачем и что за чем?
Ширина колонки в СКД по содержимому
Решение найдено:
В модуле объекта внешнего отчета добавила процедуру, выделенную жирным шрифтом:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
,
,
,
ПроцессорВывода.НачатьВывод();
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
РасчетШириныКолонок(ДокументРезультат);
ПроцессорВывода.ЗакончитьВывод();
КонецПроцедуры
Сама процедура:
Процедура РасчетШириныКолонок(ТабличныйДокумент)
Перем МаксимальноеКоличествоСтрок, МаксимальнаяШиринаКолонки;
Перем КонечнаяСтрока, НачальнаяСтрока, ТекущаяКолонка, ТекущаяСтрока, НачалоДанных;
Перем ОбластьШапки, ОбластьПодвала;
Перем ШиринаКолонки, ТекстЯчейки, НомерСтрокиТекста;
Перем КоличествоУровнейГруппировокСтрок, Отступ;
Перем ШириныКолонок;
// Максимальное количество строк отчета, которые будут использованы для расчета ширин колонок
МаксимальноеКоличествоСтрок = ТабличныйДокумент.ВысотаТаблицы;
// Ограничение максимальной ширины колонки
МаксимальнаяШиринаКолонки = 30;
// Массив, в который будут помещаться ширины колонок
ШириныКолонок = Новый Массив;
// Получим количество уровней группировок в отчете для учета автоматического отступа
КоличествоУровнейГруппировокСтрок = ТабличныйДокумент.КоличествоУровнейГруппировокСтрок();
// Инициализируем начальные строки
НачальнаяСтрока = 9; //У МЕНЯ РАСЧЕТ ШИРИНЫ КОЛОНОК НАЧИНАЕТСЯ СО СТРОКИ ВЫВОДИМЫХ ДАННЫХ (ПОД ШАПКОЙ ТАБЛИЦЫ)
НачалоДанных = 9;
КонечнаяСтрока = НачальнаяСтрока + МаксимальноеКоличествоСтрок;
// Ограничим конечную строку
КонечнаяСтрока = Мин(КонечнаяСтрока, ТабличныйДокумент.ВысотаТаблицы);
// Переберем все колонки отчета
Для ТекущаяКолонка = 1 По ТабличныйДокумент.ШиринаТаблицы Цикл
// Переберем строки, которые будут использованы для расчета ширин колонок
Для ТекущаяСтрока = НачальнаяСтрока По КонечнаяСтрока Цикл
// Получим область текущей ячейки
ОбластьЯчейки = ТабличныйДокумент.Область(ТекущаяСтрока, ТекущаяКолонка);
Если ОбластьЯчейки.Лево <> ТекущаяКолонка Или ОбластьЯчейки.Верх <> ТекущаяСтрока Тогда
// Данная ячейка принадлежит объединенным ячейкам и не является начальной ячейкой
Продолжить;
Если КоличествоУровнейГруппировокСтрок > 0 И ТекущаяСтрока = НачалоДанных Тогда
// Для первой строки с данными получим значение автоотступа
АвтоОтступ = ОбластьЯчейки.АвтоОтступ;
// Получим текст ячейки
ТекстЯчейки = ОбластьЯчейки.Текст;
// Для каждой строки из текста ячейки рассчитаем количество символов в строке
Для НомерСтрокиТекста = 1 По СтрЧислоСтрок(ТекстЯчейки) Цикл
ШиринаТекстаЯчейки = СтрДлина(СтрПолучитьСтроку(СокрЛП(ТекстЯчейки), НомерСтрокиТекста));
// Если используется автоотступ, то прибавим к ширине ячейки его величину
Если АвтоОтступ <> Неопределено И АвтоОтступ > 0 Тогда
ШиринаТекстаЯчейки = ШиринаТекстаЯчейки + КоличествоУровнейГруппировокСтрок * АвтоОтступ;
ШиринаКолонки = Макс(ШиринаКолонки, ШиринаТекстаЯчейки);
Если ШиринаКолонки > МаксимальнаяШиринаКолонки Тогда
// Ограничим ширину колонки
ШиринаКолонки = МаксимальнаяШиринаКолонки;
КонецЕсли;
Если ШиринаКолонки <> 0 Тогда
// Ширина колонки рассчитана
// Определим, сколько ячеек по ширине используется в области для текущей ячейки
КоличествоКолонок = ОбластьЯчейки.Право — ОбластьЯчейки.Лево;
// Переберем все ячейки, расположенные в области
Для НомерКолонки = 0 По КоличествоКолонок Цикл
Если ШириныКолонок.ВГраница() > ТекущаяКолонка — 1 + НомерКолонки Тогда
// В массиве ширин колонок уже был элемент для текущей колонки
Если ШириныКолонок[ТекущаяКолонка — 1 + НомерКолонки] = Неопределено Тогда
// Значение ширины колонки еще не было установлено
ШириныКолонок[ТекущаяКолонка — 1 + НомерКолонки] = ШиринаКолонки / (КоличествоКолонок + 1);
Иначе
// Значение ширины колонки уже было установлено
// Вычислим максимум ширины колонки
ШириныКолонок[ТекущаяКолонка — 1 + НомерКолонки] =
Макс(ШириныКолонок[ТекущаяКолонка — 1 + НомерКолонки], ШиринаКолонки / (КоличествоКолонок + 1));
// В массиве ширин колонок еще не было элемента для данной колонки
// Добавим элемент в массив ширин колонок
ШириныКолонок.Вставить(ТекущаяКолонка — 1 + НомерКолонки, ШиринаКолонки / (КоличествоКолонок + 1));
КонецЦикла; // Конец цикла перебора строк
КонецЦикла; // Конец цикла перебора колонок
// Переберем все элементы в массиве вычисленных ширин колонок
Для ТекущаяКолонка = 0 По ШириныКолонок.ВГраница() Цикл
Если ШириныКолонок[ТекущаяКолонка] <> Неопределено Тогда
// Ширина колонок установлена
// Установим ширину области ячеек
ТабличныйДокумент.Область(, ТекущаяКолонка + 1, НачалоДанных, ТекущаяКолонка + 1).ШиринаКолонки = ШириныКолонок[ТекущаяКолонка] + 1;
Источник
Как в 1С СКД изменить ширину колонок отчета
В 1С при создании отчетов с помощью системы компоновки данных (СКД) очень часть необходимо настроить ширину колонок отчета. Так как в большинстве случаев в отчет выводиться очень много данных и в все они могут не поместиться на экран монитора. Может быть и другая ситуация, например, в отчет выводиться колонка «Наименование» чего либо, по умолчанию ширина колонки при формирование отчета будет равна максимальному количеству символов в наименование, т.е если у вас все наименование примерно 15-20 символов но одно будет 30 то и ширина всей колонки будет 30, визуально все это будет смотреться не красиво. Поэтому при создании какого либо отчета об этом нужно подумать и ограничить максимальную ширину колонок.
Так же рекомендую ознакомиться со следующими статьями.
Настройка колонок в 1С СКД
Для примера я возьму вот такой простеньких отчет, как видим при его формирование первые две колонки занимают практически половину, а остальные даже не влазят на экран. Конечно, ширину колонок можно изменить прямо в пользовательском режиме, но это придется делать каждый раз.
Лучше сразу настроить ширину в СКД, тем боле что делается это очень просто. Открываем основную схему компоновки данных, в полях ищем нужную колонку и в правой части открываем оформление.
Далее ищем пункт «Максимальная ширина» и указываем необходимое количество символов.
Сохраняем и пробую сформировать отчет заново и видим что ширина колонки изменилась.
Все это необходимо продумывать на этапе создания отчета. Хороший отчет должен всегда помещаться на экран монитора пользователя.
Источник
Сохранение ширины колонок в отчете СКД
Использовали данный функционал в универсальном отчете СКД (УниверсальныйОтчетСхемСКД)
В модуле формы добавлены две функции:
В процедуре Сохранения настройки добавили код:
Добавили код в процедуре Восстановления настроек:
В процедуре ПриОткрытии():
Соответственно, настройка колонок после формирования отчета (отделено комментарием):
В регистр сведений «Сохраненные настройки» мы добавили ресурс Дополнительные параметры и сохраняем настройку в это поле, чтобы наши настройки не путались с типовыми настройками (ресурс «СохраненнаяНастройка») . Соответственно нам пришлось немного изменить типовой функционал. Вы можете поступить как Вам удобно.
Специальные предложения
Спасибо большое за статью.
Стандартный функционал плохо работает для отчета состоящего из более одной таблицы.
Только этот метод сработал.
Обновление 17.09.15 16:39
Код открыт Не указано
См. также
Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо
В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.
12.12.2020 4342 Eugen-S 23
Что за ? в коде, или Секретный оператор в 1С
Инкремент, модуль и прочая магия, которая скрыта под символом «?»
21.10.2021 7265 SeiOkami 39
Полезные примеры СКД, ч.2
Еще несколько примеров решения задач в СКД.
06.04.2021 10515 Neti 8
Обзор полезных методов БСП 3.1.4
Библиотека стандартных подсистем (далее — БСП) является частью любой типовой конфигурации, поэтому умение применять готовые процедуры и функции повышает качество разработки и избавляет от написания лишнего кода. К сожалению, не у всех есть время и упорство овладеть всей документацией, поэтому я собрал воедино наиболее популярный функционал.
25.03.2021 39566 rayastar 51
Использование классов .Net в 1С для новичков Промо
Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)
27.01.2016 85540 Serginio 115
Звуковое управление в 1С 8.3
В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.
16.03.2021 7099 velemir 33
Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions
«Я не могу просто взять и скопировать код с гитхаба», «у нас 1С микросервисами окружена», «возможностей мало» — частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще — берём и используем.
28.12.2020 8807 comol 31
Базовые вещи БСП, которые облегчат жизнь программисту 1С
В данной публикации я опишу полезные процедуры и функции модуля общего назначения библиотеки стандартных подсистем, обязательные к использованию любым программистом 1С.
30.08.2020 19966 quazare 34
Использование программных перечислений, ч.1: строковые константы Промо
Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?
10.12.2016 41059 unichkin 74
Форма выбора (подбор) в управляемых формах
Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.
08.05.2020 76566 user5300 19
Программная работа с настройками СКД
Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.
27.01.2020 64843 ids79 26
[СКД] Программное создание схемы компоновки данных
Сделаем отчет на СКД полностью программно, без использования макета «схема компоновки данных».
15.01.2020 43268 John_d 22
Вспомогательные инструкции в коде 1С Промо
Помогаем редактору кода 1С помогать нам писать и анализировать код.
15.10.2018 36045 tormozit 106
Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения
Собрал информацию о событиях/подписках/расширениях в одном месте.
30.12.2019 34937 kuzyara 38
Сходство Джаро — Винклера. Нечеткое сравнение строк
В области информатики и статистики сходство Джаро — Винклера представляет собой меру схожести строк для измерения расстояния между двумя последовательностями символов. В публикации рассмотрены некоторые особенности алгоритма, и представлен вариант его реализации на языке 1С.
25.12.2019 8406 brooho 19
Полезные процедуры и функции для программиста
Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.
07.10.2019 39507 HostHost 41
Оформление и рефакторинг сложных логических выражений Промо
В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.
20.09.2012 82783 tormozit 131
Таблица значений. Нюансы
Обзор некоторых аспектов использования общеизвестного инструмента 1С.
01.10.2019 52665 Yashazz 56
[Шпаргалка] Программное создание элементов формы
Программное создание практически всех популярных элементов формы.
06.09.2019 100978 rpgshnik 75
Агрегатные функции СКД, о которых мало кто знает
Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.
05.09.2019 77044 ids79 56
Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо
Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.
11.07.2007 54312 tormozit 51
Регистры бухгалтерии. Общая информация
Общая информация о внутреннем устройстве регистров бухгалтерии.
05.09.2019 46256 YPermitin 25
Три костыля. Сказ про фокусы в коде
Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.
03.09.2019 30144 YPermitin 81
Иерархия без «В ИЕРАРХИИ»
Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи «Уровни, глубина, прародители, циклы и аналоги запросом» [https://infostart.ru/public/160707/].
22.08.2019 14986 ildarovich 24
Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо
Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки
10.09.2017 51087 tormozit 74
Отслеживание выполнения фонового задания
Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.
17.08.2019 44969 ids79 22
Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив
Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.
08.08.2019 150487 ids79 75
Фоновое выполнение кода в 1С — это просто
Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.
02.08.2019 60206 avalakh 26
Выгрузка документа по условию Промо
Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.
25.04.2019 17987 m-rv 3
СКД — наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты
Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.
26.07.2019 104625 ids79 17
Обработчики событий при записи объектов. Зачем и что за чем?
Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.
Источник