Работа с таблицами и формами в 1С:Предприятие часто требует тонкой настройки интерфейса — особенно когда речь идет о ширине строк. Слишком узкие строки ухудшают читаемость данных, а чрезмерно широкие — занимают лишнее пространство на экране. В этой статье разберем все доступные способы изменения ширины строк в различных элементах 1С: от простых табличных документов до управляемых форм.
Проблема настройки ширины актуальна как для разработчиков, так и для обычных пользователей. Например, бухгалтеру может понадобиться увеличить строки в отчете Оборотно-сальдовая ведомость, чтобы удобнее было анализировать данные, а программисту — подогнать высоту строк в динамическом списке под корпоративный стиль. Важно понимать, что методы изменения ширины зависят от контекста: это может быть табличный документ, управляемая форма или обычная форма 1С.
Не все способы универсальны — некоторые работают только в режиме Конфигуратор, другие доступны непосредственно пользователю в 1С:Предприятие. Мы рассмотрим варианты для разных версий платформы (включая 1С 8.3 и 8.2), а также уделим внимание программным методам с примерами кода.
1. Изменение ширины строк в табличном документе
Табличные документы в 1С — это основа для формирования печатных форм, отчетов и выгрузки данных. Ширину строк здесь можно изменить как вручную, так и программно. В пользовательском режиме (1С:Предприятие) достаточно выделить строку, зажать левую кнопку мыши на нижней границе и потянуть вверх или вниз. Однако этот метод временный — при следующем открытии документа настройки сбросятся.
Для постоянного изменения ширины строк табличного документа требуется вмешательство в код. Например, чтобы установить фиксированную высоту для всех строк отчета, используйте метод УстановитьВысотуСтроки() в модуле формы или обработки. Пример кода для установки высоты в 30 пикселей:
ТабличныйДокумент.ВысотаСтроки = 30;
ТабличныйДокумент.ТолькодляЧтения = Ложь;
Обратите внимание: если табличный документ формируется динамически (например, в отчете Анализ субконто), изменение высоты строк может потребовать правки шаблона. В некоторых случаях проще создать пользовательский макет с заранее настроенными параметрами.
Важно! При программном изменении высоты строк учитывайте разрешение экрана пользователей. Слишком большие значения (например, ВысотаСтроки = 50) могут привести к тому, что на экране поместится меньше данных, и потребуется прокрутка.
⚠️ Внимание: В версиях 1С ниже 8.3.10 метод УстановитьВысотуСтроки() может работать некорректно для динамических таблиц. Проверьте поведение на тестовой базе перед внедрением изменений.
- 📏 Ручная настройка: Подходит для разовых изменений (например, при подготовке отчета для печати). Не сохраняется между сеансами.
- 💻 Программная настройка: Используется для постоянных изменений. Требует прав доступа к конфигуратору.
- 📑 Шаблоны макетов: Оптимально для стандартных отчетов. Изменения применяются ко всем пользователям.
2. Настройка высоты строк в управляемых формах
Управляемые формы (доступны с версии 1С 8.2) предоставляют больше гибкости в настройке интерфейса. Здесь ширина строк регулируется через свойства элементов формы, таких как ТаблицаДокумента или ДинамическийСписок. Чтобы изменить высоту строк:
1. Откройте форму в Конфигураторе (раздел Объекты → Управляемые формы).
2. Выделите элемент формы (например, таблицу).
3. В палитре свойств найдите параметр ВысотаСтроки и установите нужное значение в пикселях.
Для динамических списков также доступно свойство АвтоВысотаСтрок. Если его включить, система будет автоматически подстраивать высоту строк под содержимое. Это удобно для таблиц с многострочным текстом (например, в поле Комментарий документа).
В управляемых формах изменение высоты строк через конфигуратор применяется ко всем пользователям сразу. Если требуется гибкость (например, разная высота для разных ролей), используйте программный код в модуле формы.
Пример кода для динамической настройки высоты строк в зависимости от разрешения экрана:
Процедура ПриОткрытии(Отказ)
Если Экран.Высота() < 900 Тогда
ЭлементыФормы.СписокДокументов.ВысотаСтроки = 22;
Иначе
ЭлементыФормы.СписокДокументов.ВысотаСтроки = 28;
КонецЕсли;
КонецПроцедуры
⚠️ Внимание: В web-клиенте 1С высота строк может отображаться иначе, чем в толстом клиенте, из-за особенностей рендеринга браузера. Всегда тестируйте изменения в обоих режимах.
Сделать резервную копию конфигурации|Проверить права доступа к объекту|Убедиться, что форма не используется пользователями|Протестировать изменения на тестовой базе-->
3. Программное изменение ширины строк через код
Для опытных пользователей и разработчиков доступно программное управление высотой строк. Этот метод универсален и работает как для обычных, так и для управляемых форм. Основные объекты, с которыми предстоит работать:
- 📄
ТабличныйДокумент— для печатных форм и отчетов. - 🖥️
ЭлементФормыТаблица— для таблиц в формах. - 📊
ДинамическийСписок— для списков данных в управляемых формах.
Пример кода для изменения высоты строк в таблице документа РеализацияТоваровУслуг:
Процедура УстановитьВысотуСтрок(Таблица, Высота)
Для Каждого Строка Из Таблица.Строки Цикл
Таблица.ВысотаСтроки(Строка.Индекс) = Высота;
КонецЦикла;
КонецПроцедуры
// Вызов процедуры для таблицы в форме документа
УстановитьВысотуСтрок(ЭлементыФормы.Товары, 35);
Для динамических списков подход немного иной — здесь высота строк задается через свойство ВысотаСтроки непосредственно в коде формы. Пример:
ЭлементыФормы.СписокНоменклатуры.ВысотаСтроки = 25;
Совет: Если требуется изменить высоту строк только для определенных условий (например, для строк с пометкой удаления), используйте обработчик события ПриАктивизацииСтроки:
Процедура СписокДокументовПриАктивизацииСтроки(Элемент, Строка)
Если Строка.ПометкаУдаления Тогда
Элемент.ВысотаСтроки(Строка) = 20;
Иначе
Элемент.ВысотаСтроки(Строка) = 28;
КонецЕсли;
КонецПроцедуры
| Объект 1С | Свойство для высоты строк | Пример кода | Применение |
|---|---|---|---|
ТабличныйДокумент |
ВысотаСтроки |
ТабДок.ВысотаСтроки = 30; |
Отчеты, печатные формы |
ЭлементФормыТаблица |
ВысотаСтроки |
ЭлементыФормы.Товары.ВысотаСтроки = 25; |
Обычные формы |
ДинамическийСписок |
ВысотаСтроки |
ЭлементыФормы.Список.ВысотаСтроки = 22; |
Управляемые формы |
ПолеТаблицы |
АвтоВысота |
ЭлементыФормы.Таблица.АвтоВысота = Истина; |
Адаптивная высота |
4. Особенности настройки для разных версий 1С
Методы изменения ширины строк могут отличаться в зависимости от версии платформы. Рассмотрим ключевые особенности для наиболее распространенных редакций:
1С 8.3 (управляемое приложение):
- 🔧 Поддержка свойства
АвтоВысотаСтрокдля динамических списков. - 🎨 Возможность гибкой настройки высоты через CSS-подобные стили (в веб-клиенте).
- 📱 Адаптивный интерфейс автоматически подстраивает высоту строк под мобильные устройства.
1С 8.2 (обычное приложение):
- 🖥️ Настройка высоты строк только через свойства элементов формы или программно.
- 🚫 Отсутствует свойство
АвтоВысотаСтрок— требуется ручная настройка. - 📄 Для табличных документов доступны те же методы, что и в 8.3.
1С 7.7:
- ⚠️ Ограниченные возможности настройки интерфейса.
- 📏 Изменение высоты строк возможно только для табличных документов через макросы.
- 🔄 Для форм требуется правка шаблонов вручную (например, в 1С:Конвертация данных).
В версиях 1С 8.3.14+ появилась возможность настройки высоты строк через стили оформления. Это позволяет задавать разную высоту для разных состояний строк (например, выделенная строка, строка с ошибкой). Пример применения стиля:
ЭлементыФормы.СписокДокументов.СтильОформления = Стили.ВыделеннаяСтрока;
⚠️ Внимание: В версиях 1С ниже 8.3.8 программное изменение высоты строк в динамических списках может приводить к "подергиванию" интерфейса при прокрутке. Рекомендуется тестировать производительность на больших объемах данных.
Как узнать версию платформы 1С?
Откройте 1С:Предприятие, в главном меню выберите Справка → О программе. В открывшемся окне будет указана версия платформы (например, 8.3.21.1234). Для конфигуратора путь аналогичный: Справка → О программе.
5. Типичные ошибки и их решение
При изменении ширины строк в 1С пользователи часто сталкиваются с типичными проблемами. Рассмотрим наиболее распространенные ошибки и способы их устранения:
1. Изменения не сохраняются после закрытия формы
Это происходит, если высота строк задается только в пользовательском режиме (например, растягивается мышью). Решение: Используйте программный код в модуле формы или настройте свойства в конфигураторе.
2. Слишком большая высота строк приводит к обрезке текста
Если после увеличения высоты строк текст все равно не помещается, проверьте свойство ПереносТекста для колонок таблицы. Включите его через конфигуратор или программно:
ЭлементыФормы.Товары.Колонки.Наименование.ПереносТекста = Истина;
3. В веб-клиенте высота строк отображается некорректно
Это связано с особенностями рендеринга браузера. Решение: Используйте относительные единицы измерения (например, em) вместо пикселей или настройте отдельные стили для веб-клиента.
4. При печати высота строк отличается от экрана
Проблема возникает из-за разницы в разрешениях экрана и принтера. Решение: Настройте отдельный макет для печати с фиксированной высотой строк или используйте метод Печать() с параметром Масштаб.
- 🔄 Проблема: После обновления 1С сбросились настройки высоты строк.
Решение: Перенесите настройки в расширение конфигурации или сохраните их в пользовательских настройках (
ПользовательскиеНастройки.Сохранить()). - 🖱️ Проблема: Не получается изменить высоту строк мышью (границы не тянутся).
Решение: Проверьте, не заблокирована ли форма для изменений (
ТолькодляЧтения = Ложь).
Если вам нужно временно увеличить высоту строк для анализа данных, но нет прав на изменение конфигурации, используйте пользовательские настройки. В большинстве форм 1С можно сохранить текущее состояние таблицы (включая ширину колонок и высоту строк) через меню Еще → Сохранить настройки.
6. Альтернативные способы улучшения читаемости таблиц
Если изменение высоты строк не дает желаемого эффекта или невозможно по техническим причинам, рассмотрите альтернативные методы улучшения визуального восприятия данных:
1. Настройка шрифтов
Увеличение размера шрифта часто решает проблему с читаемостью без изменения высоты строк. В конфигураторе это делается через свойство Шрифт элемента формы. Пример:
ЭлементыФормы.Товары.Шрифт = Новый Шрифт("Arial", 12, Ложь, Ложь, Ложь);
2. Цветовая маркировка
Используйте условное оформление для выделения важных строк. Например, строки с просроченными документами можно подкрашивать в красный цвет, что облегчит их поиск даже при стандартной высоте.
3. Группировка данных
В динамических списках и отчетах применяйте группировку по ключевым полям (например, по Контрагенту или Дате). Это сокращает количество отображаемых строк и улучшает навигацию.
4. Горячие клавиши для навигации
Обучите пользователей использовать клавиши Page Up/Page Down, Home/End для быстрого перемещения по таблицам. Это компенсирует неудобства от небольшой высоты строк.
| Метод | Преимущества | Недостатки | Когда применять |
|---|---|---|---|
| Увеличение высоты строк | Прямое решение проблемы | Может уменьшить количество видимых строк | Если данные сложно читать из-за мелкого шрифта |
| Увеличение шрифта | Не требует изменения высоты строк | Может привести к обрезке текста | Если высота строк фиксирована |
| Цветовая маркировка | Улучшает визуальное восприятие | Требует настройки условного оформления | Для выделения важных данных |
| Группировка данных | Сокращает количество строк | Может скрыть детали | Для аналитических отчетов |
Перед изменением высоты строк всегда оценивайте контекст использования. Для отчетов, которые печатаются на бумаге, оптимальная высота — 18-22 пикселя. Для экранных форм с большим количеством данных лучше использовать 25-30 пикселей.
7. Практические примеры для разных объектов 1С
Рассмотрим конкретные примеры изменения ширины строк для наиболее востребованных объектов в 1С.
Пример 1: Отчет "Оборотно-сальдовая ведомость"
Чтобы увеличить высоту строк в этом отчете:
- Откройте отчет в режиме
1С:Предприятие. - Перейдите на закладку
Настройки. - В разделе
Оформлениенайдите параметрВысота строкии установите значение (например, 25). - Сохраните настройки как пользовательские.
Пример 2: Документ "Поступление товаров"
Для табличной части Товары в документе:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Форма.ЭлементыФормы.Товары.ВысотаСтроки = 30;
КонецПроцедуры
Пример 3: Справочник "Номенклатура"
Для списка номенклатуры в управляемой форме:
Процедура ПриОткрытии(Отказ)
ЭлементыФормы.Список.ВысотаСтроки = 22;
ЭлементыФормы.Список.АвтоВысотаСтрок = Истина;
КонецПроцедуры
Пример 4: Отчет "Анализ субконто"
Для изменения высоты строк в макете отчета:
- Откройте отчет в конфигураторе (
Объекты → Отчеты → АнализСубконто). - Перейдите на закладку
Макеты. - Выделите табличный документ и в палитре свойств установите
ВысотаСтроки = 20.
Для динамического изменения высоты в зависимости от количества субконто:
Процедура ПриКомпоновкеРезультата(ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Результат = ДанныеРасшифровки.ПолучитьРезультат();
ТабДок = Результат.Вывести();
Если Результат.ВыбранныеПоля.Количество() > 5 Тогда
ТабДок.ВысотаСтроки = 18;
Иначе
ТабДок.ВысотаСтроки = 25;
КонецЕсли;
КонецПроцедуры
FAQ: Частые вопросы по настройке ширины строк в 1С
Можно ли изменить высоту строк в 1С без прав администратора?
Да, в пользовательском режиме (1С:Предприятие) вы можете временно изменить высоту строк мышью (растянуть границу строки). Однако эти настройки не сохранятся после закрытия формы. Для постоянных изменений требуются права на редактирование конфигурации или использование пользовательских настроек (если они разрешены администратором).
Почему после изменения высоты строк в конфигураторе ничего не поменялось?
Вероятные причины:
- Изменения не сохранены (нажмите
Ctrl+Sили кнопкуСохранитьв конфигураторе). - Форма открыта в пользовательском режиме — закройте все сеансы и обновите конфигурацию (
Конфигурация → Обновить конфигурацию базы данных). - Изменения перекрываются пользовательскими настройками (проверьте меню
Еще → Настройкив форме).
Как сделать разную высоту строк в одной таблице?
Для этого используйте программный код в обработчике события ПриАктивизацииСтроки или ПриОтрисовкеСтроки. Пример для динамического списка:
Процедура СписокПриОтрисовкеСтроки(Элемент, Отрисовка, ДанныеСтроки)
Если ДанныеСтроки.Сумма > 100000 Тогда
Элемент.ВысотаСтроки(ДанныеСтроки) = 35;
Иначе
Элемент.ВысотаСтроки(ДанныеСтроки) = 25;
КонецЕсли;
КонецПроцедуры
Влияет ли высота строк на производительность 1С?
Да, но незначительно. Основное влияние на производительность оказывает:
- Количество одновременно отображаемых строк (при большой высоте их помещается меньше, что ускоряет отрисовку).
- Сложность оформления строк (условное оформление, картинки, шрифты).
- Режим работы (в веб-клиенте производительность может падать при частых изменениях высоты).
Для больших таблиц (более 1000 строк) рекомендуется использовать стандартную высоту (20-25 пикселей) и включать постраничный вывод.
Как вернуть стандартную высоту строк, если настройки сбились?
Способы сброса:
- Для пользовательских настроек: в форме выберите
Еще → Восстановить стандартные настройки. - Для конфигурации: откройте форму в конфигураторе и сбросьте свойство
ВысотаСтроки(установите значение по умолчанию). - Для табличных документов: удалите пользовательский макет или восстановите стандартный.
Если проблема возникла после обновления 1С, проверьте журнал изменений конфигурации (Конфигурация → Поддержка → Журнал изменений).