При работе с большим количеством дополнительных реквизитов в 1С:Предприятие пользователи часто сталкиваются с тем, что форма номенклатуры становится слишком длинной, и для поиска нужного поля приходится постоянно использовать прокрутку. Одним из эффективных способов оптимизации экранного пространства является размещение этих реквизитов в два или более столбика. Рассмотрим детально, как это реализовать, используя различные подходы: от пользовательских настроек до программной доработки.
Этот метод является наиболее предпочтительным, так как он не требует внесения изменений в конфигурацию и может быть выполнен опытным пользователем или администратором системы. Разберем по шагам, как настроить визуальное разделение элементов.
Для начала откроем карточку любой номенклатуры. В верхней части формы нажмем кнопку «Ещё» и выберем пункт «Изменить форму...». В открывшемся окне настройки нам необходимо найти группу, отвечающую за дополнительные реквизиты. Обычно в типовых решениях (УТ 11, ERP, КА) она называется ГруппаДополнительныеРеквизиты или просто ДополнительныеРеквизиты.
Проанализируем структуру элементов внутри этой группы. Поскольку дополнительные реквизиты создаются динамически при открытии формы, в дереве элементов мы можем не увидеть конкретных названий полей, но мы можем управлять самой родительской группой. Выполним следующие действия:
Обычная группа и заголовками «Колонка 1» и «Колонка 2».Нет, чтобы заголовки колонок не мешали восприятию.Важный нюанс: Если реквизиты добавляются системой динамически, ручное перетаскивание может не сработать для новых свойств. В этом случае лучше использовать свойство «Количество колонок», если оно доступно для данной группы в вашей версии платформы.
Если вы имеете доступ к конфигуратору и форма номенклатуры не является полностью динамической в части размещения свойств, можно задать количество колонок напрямую. Разберем, как это работает в управляемом приложении.
Найдем в дереве объектов метаданных форму элемента справочника Номенклатура. На закладке «Элементы» выберем группу, в которой программно или визуально размещаются свойства. В палитре свойств найдем параметр КоличествоКолонок. Установив значение 2, мы даем платформе указание автоматически распределять все подчиненные элементы в две вертикальные очереди.
Проанализируем, как платформа распределяет элементы: она заполняет их сверху вниз, сначала в левой колонке, затем в правой. Это стоит учитывать при планировании порядка обхода по клавише Tab. Чтобы визуально форма выглядела гармонично, желательно, чтобы количество реквизитов было четным, иначе правая колонка будет короче левой.
Часто в типовых конфигурациях дополнительные реквизиты выводятся программным кодом, который прописан в общих модулях (например, УправлениеСвойствами). В таких случаях изменения в конфигураторе могут игнорироваться, так как программный код при создании формы переопределяет настройки. Выясним причину такого поведения и решим задачу с помощью расширения.
Нам необходимо создать расширение и добавить в него форму элемента справочника Номенклатура. Мы будем использовать обработчик события ПриСозданииНаСервере. Наша задача — выполнить свой код после того, как отработают стандартные механизмы размещения свойств.
Рассмотрим пример кода, который находит программно созданную группу и устанавливает ей режим отображения в две колонки:
&НаСервере
Процедура ПослеСозданияНаСервере(Отказ, СтандартнаяОбработка)
// Стандартные механизмы БСП обычно создают группу с определенным именем
// Попробуем найти группу, где размещены дополнительные реквизиты
ИмяГруппы = "ГруппаДополнительныеРеквизиты";
ГруппаСвойств = Элементы.Найти(ИмяГруппы);
Если ГруппаСвойств <> Неопределено И ТипЗнч(ГруппаСвойств) = Тип("ГруппаФормы") Тогда
// Устанавливаем количество колонок
ГруппаСвойств.КоличествоКолонок = 2;
// Дополнительно можно настроить группировку подчиненных элементов
ГруппаСвойств.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно;
// Если нужно, чтобы элементы распределялись равномерно
ГруппаСвойств.ОтображениеУправленияГиперссылкой = ОтображениеУправленияГиперссылкой.Нет;
КонецЕсли;
КонецПроцедуры
Этот код следует разместить в модуле формы расширения. Обратите внимание, что имя группы (ГруппаДополнительныеРеквизиты) может отличаться в зависимости от версии вашей конфигурации. Чтобы узнать точное имя, рекомендуется запустить отладку и посмотреть коллекцию ЭтаФорма.Элементы.
При разделении формы на два столбика следует учитывать несколько технических факторов, которые могут повлиять на удобство работы:
РастягиватьПоГоризонтали в значение Ложь и задать фиксированную ширину меток.Горизонтальная, если возможно. Это поведение является правильным с точки зрения UX (User Experience).КоличествоКолонок для общей родительской группы лишена этого недостатка, так как платформа сама перераспределит только видимые элементы.Таким образом, мы разобрали основные способы решения задачи. Выбор конкретного метода зависит от ваших прав доступа к системе и того, насколько гибкой должна быть эта настройка. В большинстве случаев достаточно стандартного механизма «Изменить форму», но для тиражных решений или сложных интерфейсов программный метод через расширение будет более надежным и долговечным.