К статье
Практический материал

Разработка и Конфигурация · 13 мин

Как в 1С изменить форму списка

Как изменить форму списка в 1С: настройка колонок и отборов в пользовательском режиме, доработка в конфигураторе, типичные ошибки и способы проверки результата.

Форма списка в 1С — это таблица документов, справочников или регистров, которую пользователь видит при открытии раздела: журнал реализаций, список контрагентов, номенклатура. Изменить её можно двумя принципиально разными способами: в пользовательском режиме «1С:Предприятие» через команду «Изменить форму» или «Настроить список», либо в конфигураторе — через редактор форм и программный код. Первый способ доступен без прав программиста и не трогает конфигурацию, второй требует навыков разработки и аккуратности при обновлениях.

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

Ниже разобраны оба подхода: где искать нужные команды в типовых конфигурациях (УТ, ERP, БП, ЗУП), как добавить и убрать колонки, как доработать форму списка в конфигураторе, чем это рискованно и как проверить, что изменения применились корректно.

Способы изменения формы списка: пользовательский режим или конфигуратор

Прежде чем что-то менять, определите, к какому классу относится ваша задача. Пользовательская настройка хранится отдельно от конфигурации (в системных хранилищах настроек), применяется либо для конкретного пользователя, либо для всех — и не мешает обновлению типовой конфигурации. Доработка в конфигураторе меняет саму конфигурацию и требует контроля при каждом обновлении.

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

Сравнение подходов

Настройка в режиме «1С:Предприятие»

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

Доработка в конфигураторе

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

Расширение конфигурации

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

Настройка колонок и вида списка в режиме «1С:Предприятие»

Откройте нужный список (например, «Продажи → Реализации (акты, накладные)»). В правом верхнем углу нажмите кнопку «Ещё» и выберите «Изменить форму». Откроется окно настройки: слева — дерево элементов формы, справа — доступные реквизиты.

Чтобы добавить колонку, найдите в дереве элемент списка (обычно называется «Список»), раскройте его и перетащите нужный реквизит из правой панели или отметьте его флажком. Чтобы убрать колонку, снимите флажок видимости. Порядок колонок меняется перетаскиванием или кнопками «Вверх»/«Вниз». После нажатия «ОК» форма списка перестроится сразу, без перезапуска программы.

В некоторых типовых конфигурациях команда называется иначе или вынесена отдельно: «Настроить список» открывает отборы и сортировку, а «Изменить форму» — состав колонок. Если команды «Изменить форму» нет в меню «Ещё», значит, у пользователя нет права «Изменение форм» — его выдаёт администратор в настройках прав (раздел «Администрирование → Пользователи и права»).

Как добавить колонку в форму списка
  1. 1
    Откройте нужный список документов или справочника
  2. 2
    Нажмите «Ещё → Изменить форму»
  3. 3
    В дереве элементов найдите таблицу «Список»
  4. 4
    Отметьте флажком или перетащите нужный реквизит в список
  5. 5
    Настройте порядок колонок кнопками «Вверх»/«Вниз»
  6. 6
    Нажмите «ОК» и проверьте, что колонка появилась и заполнена данными

Настройка отборов, сортировки и группировки списка

Команда «Ещё → Настроить список» открывает окно с тремя вкладками: «Отбор», «Сортировка», «Группировка» (состав вкладок зависит от конфигурации). Отбор ограничивает показываемые строки: например, только проведённые документы за текущий месяц или контрагенты из конкретной группы. Сортировка задаёт порядок строк — по дате, номеру, сумме. Группировка объединяет строки в сворачиваемые блоки.

Добавленный отбор можно сохранить как постоянный: многие типовые конфигурации предлагают «Сохранить настройки» или запоминают отбор автоматически. Если список «пустеет» без видимой причины — первым делом проверьте, не остался ли включённым ранее установленный отбор: над списком обычно отображается строка с активными условиями.

Для динамических списков (а большинство списков в управляемых формах — именно динамические) отборы накладываются на уровне запроса, поэтому работают быстро даже на больших таблицах. Но есть ограничение: отбор доступен только по полям, присутствующим в запросе списка. Если нужного поля в настройке отбора нет — задача уже для конфигуратора.

Изменение формы списка в конфигураторе

Когда пользовательской настройки недостаточно, откройте конфигуратор: «Конфигурация → Открыть конфигурацию». В дереве конфигурации найдите нужный объект (например, «Документы → РеализацияТоваровУслуг»), раскройте ветку «Формы» и откройте «ФормаСписка». Если формы списка нет — используется автоматически генерируемая форма, и её нужно создать: правой кнопкой по объекту → «Добавить → Форма списка».

Редактор формы состоит из нескольких областей: дерево элементов формы (слева вверху), реквизиты формы (справа), командный интерфейс и модуль формы (вкладка «Модуль» внизу). Чтобы добавить колонку, добавьте элемент формы типа «Поле формы» в таблицу «Список» и свяжите его с путём к данным — полем динамического списка. Если нужного поля нет, сначала откройте свойства реквизита «Список», включите «Произвольный запрос» и добавьте поле в текст запроса (например, соединение с другой таблицей).

Программная логика пишется в модуле формы. Типичные задачи: обработчик «ПриСозданииНаСервере» для установки отбора по умолчанию, подписка на событие «ПриПолученииДанныхНаСервере» для оформления строк, добавление команды формы с обработчиком на клиенте. Помните про директивы компиляции: &НаСервере, &НаКлиенте — динамический список и запросы доступны только на сервере.

bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Проведен");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = Истина;
    ЭлементОтбора.Использование = Истина;
КонецПроцедуры

Условное оформление и раскраска строк списка

Частая задача — выделить цветом просроченные документы, непроведённые строки или контрагентов с задолженностью. Это делается через условное оформление динамического списка. В пользовательском режиме часть возможностей доступна через «Настроить список → Условное оформление» (если конфигурация это поддерживает). В конфигураторе откройте свойства реквизита «Список» → «Условное оформление» и добавьте элемент: условие отбора, оформляемые поля и параметры (цвет фона, шрифт, текст).

Пример: документы с признаком «Проведен = Ложь» подсвечиваются серым цветом фона. В условном оформлении создаётся отбор по полю «Проведен», вид сравнения «Равно», значение «Ложь», устанавливается оформление «Цвет фона» и указывается оформляемое поле — весь список или конкретные колонки.

Программно условное оформление добавляется аналогично отбору — через коллекцию Список.УсловноеОформление.Элементы в обработчике «ПриСозданииНаСервере». Это удобно, когда правила оформления должны зависеть от прав пользователя или функциональных опций.

Риски, типичные ошибки и как их избежать

Главный риск доработки формы списка в конфигураторе — конфликты при обновлении типовой конфигурации. Если разработчик изменил типовую форму списка, а в новом релизе поставщик тоже её изменил, при обновлении потребуется ручное сравнение и объединение форм — это трудоёмко и чревато потерей доработок. Поэтому для нетиповых изменений рекомендуется механизм расширений: форма списка заимствуется в расширение, дорабатывается там, а типовая конфигурация остаётся на поддержке.

Вторая группа ошибок — производительность. Произвольный запрос динамического списка с соединениями и вложенными запросами может резко замедлить открытие списка на больших объёмах данных. Правила: соединяйте только с нужными таблицами, не используйте в запросе списка функции и вычисления по каждой строке без необходимости, проверяйте скорость открытия на копии рабочей базы с реальным объёмом данных.

Третья ошибка — потеря пользовательских настроек. Если форму списка существенно переработали в конфигураторе, ранее сохранённые пользовательские настройки могут стать неприменимыми: у пользователей «пропадут» привычные колонки или возникнут ошибки вида «Поле не найдено». После обновления доработанной формы проверьте список под учётной записью обычного пользователя, а не только под администратором.

Типичные ошибки
01
Доработка типовой формы напрямую в конфигурации вместо расширения — конфликты при каждом обновлении и риск потери изменений
02
Произвольный запрос списка с лишними соединениями — список открывается по несколько секунд и тормозит при прокрутке
03
Установка отбора в модуле формы без признака «Использование» у служебных элементов — пользователь не может снять отбор и видит неполные данные
04
Проверка только под администратором — у рядовых пользователей из-за старых настроек форма выглядит иначе или падает с ошибкой
05
Снятие флажка «Автообновление» динамического списка — пользователи не видят документы, введённые коллегами

Как проверить результат и откатить изменения

После пользовательской настройки проверка проста: колонка появилась и заполнена данными, отбор фильтрует строки (сравните количество записей до и после), сортировка соответствует заданной. Откат выполняется через «Ещё → Изменить форму → Установить стандартные настройки» или «Настроить список → Сбросить настройки» — вид списка вернётся к исходному состоянию.

После доработки в конфигураторе проверяйте по контрольным точкам: форма открывается без ошибок, новые поля заполнены, отборы и команды работают, скорость открытия списка приемлема, под пользователем без административных прав ошибок нет. Откат доработки — отключение расширения («Администрирование → Расширения») или возврат типовой формы из конфигурации поставщика («Поддержка → Настройка поддержки → Загрузить конфигурацию из файла» либо сравнение/объединение с конфигурацией поставщика).

Контрольные точки

Как проверить результат

Открытие списка
Норма

Форма открывается за 1–2 секунды, без сообщений об ошибках

Тревожный признак

Ошибка «Поле не найдено» или долгое открытие — проблема в запросе или настройках

Новая колонка
Норма

Колонка видна и заполнена данными по всем строкам

Тревожный признак

Колонка пустая — поле не попало в запрос динамического списка или нет прав на реквизит

Вид под обычным пользователем
Норма

Список выглядит так же, как под администратором

Тревожный признак

Другой состав колонок или ошибки — конфликт со старыми пользовательскими настройками

Отбор по умолчанию
Норма

Строки фильтруются, отбор можно снять в настройках

Тревожный признак

Отбор скрыт и не снимается — он задан программно с запретом изменения

Итог

Что важно запомнить

Колонки, отборы и сортировку меняйте в режиме «1С:Предприятие» через «Ещё → Изменить форму» — это безопасно и обратимо. Новые поля, команды и логику добавляйте в конфигураторе, предпочтительно через расширение, и обязательно тестируйте на копии базы и под учётной записью обычного пользователя.

Частые вопросы

Почему в меню «Ещё» нет пункта «Изменить форму»?

У пользователя нет права на изменение форм. Администратор должен включить его в настройках прав доступа (в типовых конфигурациях — профиль группы доступа, раздел «Администрирование → Пользователи и права»). Также команда может отсутствовать, если форма списка жёстко зафиксирована разработчиком конфигурации.

Как вернуть форму списка к исходному виду?

Откройте список, нажмите «Ещё → Изменить форму» и выберите «Установить стандартные настройки». Для отборов и сортировки используйте «Ещё → Настроить список → Сбросить настройки». Пользовательские настройки будут удалены, и форма вернётся к виду, заданному конфигурацией.

Можно ли добавить в список колонку из связанного документа или регистра?

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

Изменения в конфигураторе пропадут при обновлении конфигурации?

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

Как сделать настройку списка для всех пользователей сразу?

Настройте список под учётной записью администратора, затем скопируйте настройки другим пользователям: в типовых конфигурациях это делается через «Администрирование → Настройки пользователей и прав → Копирование настроек пользователей». Альтернатива — задать вид списка в конфигураторе или расширении, тогда он станет стандартным для всех.

Список стал открываться медленно после добавления колонки. Что делать?

Если колонка добавлена через произвольный запрос в конфигураторе, проверьте текст запроса: лишние соединения, виртуальные таблицы без отборов и вычисляемые выражения по каждой строке замедляют динамический список. Уберите лишние таблицы, добавьте индексируемые условия и протестируйте на копии базы с реальным объёмом данных.