Многие пользователи систем на базе 1С:Предприятие 8.3 (особенно в конфигурациях «Комплексная автоматизация 2» или «ЗУП 3.1») сталкиваются с проблемой некорректного отображения табличных частей. Часто бывает так, что одна колонка (например, «Отменено» или крайняя правая колонка в Табеле) растягивается «лаптем по монитору», а другие невозможно сузить до нужного размера. Это приводит к появлению неудобной горизонтальной прокрутки, из-за которой важные данные уходят за границу видимости.
В этой статье мы подробно разберем, почему интерфейс ведет себя подобным образом, и проанализируем все доступные способы решения задачи — от простых пользовательских настроек до небольших хитростей, позволяющих «обмануть» алгоритмы платформы.
Первым делом рассмотрим самый эффективный инструмент, заложенный в платформу 1С. Большинство проблем с «раздутыми» колонками решается через тонкую настройку элементов формы. Для этого в правом верхнем углу окна нажмем кнопку «Еще» и выберем пункт «Изменить форму...». Для интерактивной проверки и изменения параметров элементов интерфейса можно также использовать обработку для редактирования свойств открытых форм в режиме предприятия.
В открывшемся окне найдем дерево элементов и выберем интересующую нас колонку (например, ту самую колонку «Отменено»). Проанализируем следующие свойства в правой части окна:
Да или Авто, 1С будет пытаться занять этой колонкой всё доступное пространство. Чтобы зафиксировать размер, установим значение Нет.Важное замечание: Если колонки объединены в группы (папки в дереве настроек), обязательно проверим свойства самой группы. Если у родительской группы стоит Растягивание по горизонтали = Да, то все вложенные колонки будут пытаться заполнить экран, игнорируя ваши точечные настройки.
Часто выясняется, что сузить колонку мешает слишком длинное слово в её заголовке. Платформа 1С по умолчанию не умеет «обрезать» текст заголовка, поэтому ширина колонки всегда будет не меньше самого длинного непереносимого слова в названии.
Разберем, как это обойти по шагам:
2 или 3, текст в заголовках начнет переноситься по словам. Это позволит сделать колонки значительно уже, так как ширина будет подстраиваться под короткие части слов, а не под всю фразу целиком.Если нам нужно уместить на экране большое количество данных (например, 31 день месяца в Табеле), проанализируем общие настройки внешнего вида программы. В современных версиях платформы 8.3 предусмотрен специальный режим, уменьшающий отступы.
Для включения выполним следующие действия:
В этом режиме элементы управления становятся меньше, шрифт чуть плотнее, что часто позволяет избавиться от полосы прокрутки без изменения ширины каждой отдельной колонки.
Иногда пользователю нужно временно «впихнуть» таблицу в экран, не занимаясь долгой настройкой. Для этого рассмотрим возможность изменения масштаба конкретного окна. Это делается двумя способами:
Ctrl и покрутим колесико мыши вниз. Это пропорционально уменьшит все элементы формы, включая таблицу и её содержимое.Проанализируем ситуацию, когда пользователь «двигает» колонки мышкой, но после закрытия и открытия формы они возвращаются в исходное (неудобное) состояние. Это верный признак того, что кэш настроек формы переполнен или содержит ошибки.
Чтобы исправить это, выполним «сброс»:
После этого форма вернется к виду «как задумано разработчиком». Теперь можно заново, более аккуратно, настроить ширину нужных полей, и платформа с большей вероятностью «запомнит» эти изменения корректно.
Существует известная особенность отрисовки таблиц в управляемом интерфейсе 1С: последняя видимая колонка всегда стремится растянуться на всё оставшееся свободное место справа. Именно поэтому, как бы мы ни уменьшали колонку «Отменено», если она крайняя — она будет огромной.
Выясним, как это обойти:
Если у вас есть права на минимальное изменение формы, можно добавить в самый конец списка колонок пустую декоративную колонку (или просто включить какую-то ненужную техническую колонку и очистить её заголовок). В окне «Изменить форму» переместим её в самый низ списка. В этом случае именно эта «пустая» колонка будет принимать на себя всё лишнее растяжение, а ваша колонка «Отменено» сохранит тот размер, который вы ей задали вручную.
В сложных конфигурациях, таких как КА 2.0, разработчики могут программно управлять шириной колонок. В коде это может выглядеть так:
// Пример программной установки ширины
ЭлементКолонка = Элементы.СписокТабельДата1;
ЭлементКолонка.Ширина = 3;
ЭлементКолонка.РастягиваниеПоГоризонтали = Ложь;
Если программный код жестко прописывает ширину при открытии, то пользовательские настройки через «Изменить форму» могут сбрасываться. В такой ситуации поможет только обращение к программисту для создания небольшого расширения, которое будет корректировать поведение формы под ваши нужды.
Резюме: Чтобы добиться идеального отображения, рекомендуется комбинировать методы: установите Компактный интерфейс, в настройках формы для проблемных колонок отключите Растягивание по горизонтали и настройте Высоту заголовка. Это позволит максимально эффективно использовать рабочую область монитора. Чтобы централизованно перенести полученный вариант оформления на рабочие места коллег, можно воспользоваться обработкой для сохранения настроек формы для всех пользователей.