Разработка и Конфигурация · 13 мин
Как в 1С изменить форму списка
Как изменить форму списка в 1С: настройка колонок и отборов в пользовательском режиме, доработка в конфигураторе, типичные ошибки и способы проверки результата.
Форма списка в 1С — это таблица документов, справочников или регистров, которую пользователь видит при открытии раздела: журнал реализаций, список контрагентов, номенклатура. Изменить её можно двумя принципиально разными способами: в пользовательском режиме «1С:Предприятие» через команду «Изменить форму» или «Настроить список», либо в конфигураторе — через редактор форм и программный код. Первый способ доступен без прав программиста и не трогает конфигурацию, второй требует навыков разработки и аккуратности при обновлениях.
Выбор способа зависит от задачи. Добавить колонку, поменять порядок полей, настроить отбор или сортировку — это пользовательская настройка, которая выполняется за пару минут и легко откатывается. Изменить состав команд, добавить вычисляемое поле, переопределить логику заполнения списка или условное оформление — уже доработка в конфигураторе, и она влияет на всех пользователей базы.
Ниже разобраны оба подхода: где искать нужные команды в типовых конфигурациях (УТ, ERP, БП, ЗУП), как добавить и убрать колонки, как доработать форму списка в конфигураторе, чем это рискованно и как проверить, что изменения применились корректно.
Способы изменения формы списка: пользовательский режим или конфигуратор
Прежде чем что-то менять, определите, к какому классу относится ваша задача. Пользовательская настройка хранится отдельно от конфигурации (в системных хранилищах настроек), применяется либо для конкретного пользователя, либо для всех — и не мешает обновлению типовой конфигурации. Доработка в конфигураторе меняет саму конфигурацию и требует контроля при каждом обновлении.
Признак того, что хватит пользовательского режима: нужно изменить внешний вид существующих данных — показать другие колонки, переименовать порядок, зафиксировать отбор. Признак того, что нужен конфигуратор или расширение: данных нет в списке вообще (например, нужен реквизит, которого нет в динамическом списке), требуется новая команда, раскраска строк по условию или программная логика.
Сравнение подходов
Подходит для колонок, отборов, сортировки, группировки. Не требует прав разработчика, легко откатить, безопасно при обновлениях. Ограничение: нельзя добавить поля, которых нет в запросе списка, и новые команды.
Позволяет всё: новые поля, команды, условное оформление, обработчики событий. Минус: изменения затрагивают всех пользователей и усложняют обновление типовой конфигурации.
Доработка формы списка без изменения типовой конфигурации. Рекомендуемый способ для нетривиальных изменений: обновления проходят проще, доработку легко отключить.
Настройка колонок и вида списка в режиме «1С:Предприятие»
Откройте нужный список (например, «Продажи → Реализации (акты, накладные)»). В правом верхнем углу нажмите кнопку «Ещё» и выберите «Изменить форму». Откроется окно настройки: слева — дерево элементов формы, справа — доступные реквизиты.
Чтобы добавить колонку, найдите в дереве элемент списка (обычно называется «Список»), раскройте его и перетащите нужный реквизит из правой панели или отметьте его флажком. Чтобы убрать колонку, снимите флажок видимости. Порядок колонок меняется перетаскиванием или кнопками «Вверх»/«Вниз». После нажатия «ОК» форма списка перестроится сразу, без перезапуска программы.
В некоторых типовых конфигурациях команда называется иначе или вынесена отдельно: «Настроить список» открывает отборы и сортировку, а «Изменить форму» — состав колонок. Если команды «Изменить форму» нет в меню «Ещё», значит, у пользователя нет права «Изменение форм» — его выдаёт администратор в настройках прав (раздел «Администрирование → Пользователи и права»).
- 1Откройте нужный список документов или справочника
- 2Нажмите «Ещё → Изменить форму»
- 3В дереве элементов найдите таблицу «Список»
- 4Отметьте флажком или перетащите нужный реквизит в список
- 5Настройте порядок колонок кнопками «Вверх»/«Вниз»
- 6Нажмите «ОК» и проверьте, что колонка появилась и заполнена данными
Настройка отборов, сортировки и группировки списка
Команда «Ещё → Настроить список» открывает окно с тремя вкладками: «Отбор», «Сортировка», «Группировка» (состав вкладок зависит от конфигурации). Отбор ограничивает показываемые строки: например, только проведённые документы за текущий месяц или контрагенты из конкретной группы. Сортировка задаёт порядок строк — по дате, номеру, сумме. Группировка объединяет строки в сворачиваемые блоки.
Добавленный отбор можно сохранить как постоянный: многие типовые конфигурации предлагают «Сохранить настройки» или запоминают отбор автоматически. Если список «пустеет» без видимой причины — первым делом проверьте, не остался ли включённым ранее установленный отбор: над списком обычно отображается строка с активными условиями.
Для динамических списков (а большинство списков в управляемых формах — именно динамические) отборы накладываются на уровне запроса, поэтому работают быстро даже на больших таблицах. Но есть ограничение: отбор доступен только по полям, присутствующим в запросе списка. Если нужного поля в настройке отбора нет — задача уже для конфигуратора.
Изменение формы списка в конфигураторе
Когда пользовательской настройки недостаточно, откройте конфигуратор: «Конфигурация → Открыть конфигурацию». В дереве конфигурации найдите нужный объект (например, «Документы → РеализацияТоваровУслуг»), раскройте ветку «Формы» и откройте «ФормаСписка». Если формы списка нет — используется автоматически генерируемая форма, и её нужно создать: правой кнопкой по объекту → «Добавить → Форма списка».
Редактор формы состоит из нескольких областей: дерево элементов формы (слева вверху), реквизиты формы (справа), командный интерфейс и модуль формы (вкладка «Модуль» внизу). Чтобы добавить колонку, добавьте элемент формы типа «Поле формы» в таблицу «Список» и свяжите его с путём к данным — полем динамического списка. Если нужного поля нет, сначала откройте свойства реквизита «Список», включите «Произвольный запрос» и добавьте поле в текст запроса (например, соединение с другой таблицей).
Программная логика пишется в модуле формы. Типичные задачи: обработчик «ПриСозданииНаСервере» для установки отбора по умолчанию, подписка на событие «ПриПолученииДанныхНаСервере» для оформления строк, добавление команды формы с обработчиком на клиенте. Помните про директивы компиляции: &НаСервере, &НаКлиенте — динамический список и запросы доступны только на сервере.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Проведен");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Истина;
ЭлементОтбора.Использование = Истина;
КонецПроцедурыУсловное оформление и раскраска строк списка
Частая задача — выделить цветом просроченные документы, непроведённые строки или контрагентов с задолженностью. Это делается через условное оформление динамического списка. В пользовательском режиме часть возможностей доступна через «Настроить список → Условное оформление» (если конфигурация это поддерживает). В конфигураторе откройте свойства реквизита «Список» → «Условное оформление» и добавьте элемент: условие отбора, оформляемые поля и параметры (цвет фона, шрифт, текст).
Пример: документы с признаком «Проведен = Ложь» подсвечиваются серым цветом фона. В условном оформлении создаётся отбор по полю «Проведен», вид сравнения «Равно», значение «Ложь», устанавливается оформление «Цвет фона» и указывается оформляемое поле — весь список или конкретные колонки.
Программно условное оформление добавляется аналогично отбору — через коллекцию Список.УсловноеОформление.Элементы в обработчике «ПриСозданииНаСервере». Это удобно, когда правила оформления должны зависеть от прав пользователя или функциональных опций.
Риски, типичные ошибки и как их избежать
Главный риск доработки формы списка в конфигураторе — конфликты при обновлении типовой конфигурации. Если разработчик изменил типовую форму списка, а в новом релизе поставщик тоже её изменил, при обновлении потребуется ручное сравнение и объединение форм — это трудоёмко и чревато потерей доработок. Поэтому для нетиповых изменений рекомендуется механизм расширений: форма списка заимствуется в расширение, дорабатывается там, а типовая конфигурация остаётся на поддержке.
Вторая группа ошибок — производительность. Произвольный запрос динамического списка с соединениями и вложенными запросами может резко замедлить открытие списка на больших объёмах данных. Правила: соединяйте только с нужными таблицами, не используйте в запросе списка функции и вычисления по каждой строке без необходимости, проверяйте скорость открытия на копии рабочей базы с реальным объёмом данных.
Третья ошибка — потеря пользовательских настроек. Если форму списка существенно переработали в конфигураторе, ранее сохранённые пользовательские настройки могут стать неприменимыми: у пользователей «пропадут» привычные колонки или возникнут ошибки вида «Поле не найдено». После обновления доработанной формы проверьте список под учётной записью обычного пользователя, а не только под администратором.
Как проверить результат и откатить изменения
После пользовательской настройки проверка проста: колонка появилась и заполнена данными, отбор фильтрует строки (сравните количество записей до и после), сортировка соответствует заданной. Откат выполняется через «Ещё → Изменить форму → Установить стандартные настройки» или «Настроить список → Сбросить настройки» — вид списка вернётся к исходному состоянию.
После доработки в конфигураторе проверяйте по контрольным точкам: форма открывается без ошибок, новые поля заполнены, отборы и команды работают, скорость открытия списка приемлема, под пользователем без административных прав ошибок нет. Откат доработки — отключение расширения («Администрирование → Расширения») или возврат типовой формы из конфигурации поставщика («Поддержка → Настройка поддержки → Загрузить конфигурацию из файла» либо сравнение/объединение с конфигурацией поставщика).
Как проверить результат
Форма открывается за 1–2 секунды, без сообщений об ошибках
Ошибка «Поле не найдено» или долгое открытие — проблема в запросе или настройках
Колонка видна и заполнена данными по всем строкам
Колонка пустая — поле не попало в запрос динамического списка или нет прав на реквизит
Список выглядит так же, как под администратором
Другой состав колонок или ошибки — конфликт со старыми пользовательскими настройками
Строки фильтруются, отбор можно снять в настройках
Отбор скрыт и не снимается — он задан программно с запретом изменения
Что важно запомнить
Колонки, отборы и сортировку меняйте в режиме «1С:Предприятие» через «Ещё → Изменить форму» — это безопасно и обратимо. Новые поля, команды и логику добавляйте в конфигураторе, предпочтительно через расширение, и обязательно тестируйте на копии базы и под учётной записью обычного пользователя.
Частые вопросы
Почему в меню «Ещё» нет пункта «Изменить форму»?
У пользователя нет права на изменение форм. Администратор должен включить его в настройках прав доступа (в типовых конфигурациях — профиль группы доступа, раздел «Администрирование → Пользователи и права»). Также команда может отсутствовать, если форма списка жёстко зафиксирована разработчиком конфигурации.
Как вернуть форму списка к исходному виду?
Откройте список, нажмите «Ещё → Изменить форму» и выберите «Установить стандартные настройки». Для отборов и сортировки используйте «Ещё → Настроить список → Сбросить настройки». Пользовательские настройки будут удалены, и форма вернётся к виду, заданному конфигурацией.
Можно ли добавить в список колонку из связанного документа или регистра?
В пользовательском режиме — нет, доступны только поля, уже присутствующие в запросе динамического списка. Для вывода данных из связанных таблиц нужно в конфигураторе включить произвольный запрос списка и добавить соединение с нужной таблицей, учитывая возможное влияние на скорость работы.
Изменения в конфигураторе пропадут при обновлении конфигурации?
Если форма доработана напрямую в типовой конфигурации, при обновлении потребуется ручное объединение изменений, и часть доработок можно потерять. Если форма изменена через расширение конфигурации, обновление проходит штатно, но расширение нужно проверить на совместимость с новым релизом.
Как сделать настройку списка для всех пользователей сразу?
Настройте список под учётной записью администратора, затем скопируйте настройки другим пользователям: в типовых конфигурациях это делается через «Администрирование → Настройки пользователей и прав → Копирование настроек пользователей». Альтернатива — задать вид списка в конфигураторе или расширении, тогда он станет стандартным для всех.
Список стал открываться медленно после добавления колонки. Что делать?
Если колонка добавлена через произвольный запрос в конфигураторе, проверьте текст запроса: лишние соединения, виртуальные таблицы без отборов и вычисляемые выражения по каждой строке замедляют динамический список. Уберите лишние таблицы, добавьте индексируемые условия и протестируйте на копии базы с реальным объёмом данных.