Как отобразить дополнительные реквизиты на форме номенклатуры в два столбика?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с большим количеством дополнительных реквизитов в 1С:Предприятие пользователи часто сталкиваются с тем, что форма номенклатуры становится слишком длинной, и для поиска нужного поля приходится постоянно использовать прокрутку. Одним из эффективных способов оптимизации экранного пространства является размещение этих реквизитов в два или более столбика. Рассмотрим детально, как это реализовать, используя различные подходы: от пользовательских настроек до программной доработки.

Способ 1. Настройка в режиме «1С:Предприятие» через «Изменить форму»

Этот метод является наиболее предпочтительным, так как он не требует внесения изменений в конфигурацию и может быть выполнен опытным пользователем или администратором системы. Разберем по шагам, как настроить визуальное разделение элементов.

Для начала откроем карточку любой номенклатуры. В верхней части формы нажмем кнопку «Ещё» и выберем пункт «Изменить форму...». В открывшемся окне настройки нам необходимо найти группу, отвечающую за дополнительные реквизиты. Обычно в типовых решениях (УТ 11, ERP, КА) она называется ГруппаДополнительныеРеквизиты или просто ДополнительныеРеквизиты.

Проанализируем структуру элементов внутри этой группы. Поскольку дополнительные реквизиты создаются динамически при открытии формы, в дереве элементов мы можем не увидеть конкретных названий полей, но мы можем управлять самой родительской группой. Выполним следующие действия:

  1. Выделим группу дополнительных реквизитов в дереве.
  2. В правой части окна настроек найдем свойство «Группировка».
  3. Установим значение «Горизонтальная, если возможно». Это позволит платформе выстраивать вложенные элементы в ряд, если позволяет ширина экрана.
  4. Если мы хотим жестко закрепить два столбика, мы можем нажать кнопку «Добавить группу» внутри основной группы. Создадим две подгруппы с видом Обычная группа и заголовками «Колонка 1» и «Колонка 2».
  5. Для созданных групп установим свойство «Отображение» в значение Нет, чтобы заголовки колонок не мешали восприятию.
  6. Перетащим часть реквизитов (если они отображаются в списке) в первую группу, а часть — во вторую.

Важный нюанс: Если реквизиты добавляются системой динамически, ручное перетаскивание может не сработать для новых свойств. В этом случае лучше использовать свойство «Количество колонок», если оно доступно для данной группы в вашей версии платформы.

Способ 2. Использование свойства «Количество колонок» в конфигураторе

Если вы имеете доступ к конфигуратору и форма номенклатуры не является полностью динамической в части размещения свойств, можно задать количество колонок напрямую. Разберем, как это работает в управляемом приложении.

Найдем в дереве объектов метаданных форму элемента справочника Номенклатура. На закладке «Элементы» выберем группу, в которой программно или визуально размещаются свойства. В палитре свойств найдем параметр КоличествоКолонок. Установив значение 2, мы даем платформе указание автоматически распределять все подчиненные элементы в две вертикальные очереди.

Проанализируем, как платформа распределяет элементы: она заполняет их сверху вниз, сначала в левой колонке, затем в правой. Это стоит учитывать при планировании порядка обхода по клавише Tab. Чтобы визуально форма выглядела гармонично, желательно, чтобы количество реквизитов было четным, иначе правая колонка будет короче левой.

Способ 3. Программный метод через расширение конфигурации

Часто в типовых конфигурациях дополнительные реквизиты выводятся программным кодом, который прописан в общих модулях (например, УправлениеСвойствами). В таких случаях изменения в конфигураторе могут игнорироваться, так как программный код при создании формы переопределяет настройки. Выясним причину такого поведения и решим задачу с помощью расширения.

Нам необходимо создать расширение и добавить в него форму элемента справочника Номенклатура. Мы будем использовать обработчик события ПриСозданииНаСервере. Наша задача — выполнить свой код после того, как отработают стандартные механизмы размещения свойств.

Рассмотрим пример кода, который находит программно созданную группу и устанавливает ей режим отображения в две колонки:


&НаСервере
Процедура ПослеСозданияНаСервере(Отказ, СтандартнаяОбработка)
    // Стандартные механизмы БСП обычно создают группу с определенным именем
    // Попробуем найти группу, где размещены дополнительные реквизиты
    ИмяГруппы = "ГруппаДополнительныеРеквизиты"; 
    ГруппаСвойств = Элементы.Найти(ИмяГруппы);
    
    Если ГруппаСвойств <> Неопределено И ТипЗнч(ГруппаСвойств) = Тип("ГруппаФормы") Тогда
        // Устанавливаем количество колонок
        ГруппаСвойств.КоличествоКолонок = 2;
        
        // Дополнительно можно настроить группировку подчиненных элементов
        ГруппаСвойств.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно;
        
        // Если нужно, чтобы элементы распределялись равномерно
        ГруппаСвойств.ОтображениеУправленияГиперссылкой = ОтображениеУправленияГиперссылкой.Нет;
    КонецЕсли;
КонецПроцедуры

Этот код следует разместить в модуле формы расширения. Обратите внимание, что имя группы (ГруппаДополнительныеРеквизиты) может отличаться в зависимости от версии вашей конфигурации. Чтобы узнать точное имя, рекомендуется запустить отладку и посмотреть коллекцию ЭтаФорма.Элементы.

Особенности и возможные проблемы

При разделении формы на два столбика следует учитывать несколько технических факторов, которые могут повлиять на удобство работы:

Таким образом, мы разобрали основные способы решения задачи. Выбор конкретного метода зависит от ваших прав доступа к системе и того, насколько гибкой должна быть эта настройка. В большинстве случаев достаточно стандартного механизма «Изменить форму», но для тиражных решений или сложных интерфейсов программный метод через расширение будет более надежным и долговечным.

← На главную