Колонки в списках 1С: показать скрытое поле, переставить и сохранить

· 9 мин

Содержание

Открыли список документов, а нужной суммы или контрагента в нём нет. Чтобы добавить колонку в список 1С, откройте меню Ещё в правом верхнем углу формы списка, выберите Изменить форму… и в окне настройки поставьте галочки у нужных полей. Для обычного пользователя этого достаточно, права разработчика не нужны.

Если полей в окне не хватает, значит, в запросе динамического списка их нет. Тогда колонку добавляет разработчик в конфигураторе, и такой способ разобран ниже отдельно. Рассматриваем 1С 8.3 с интерфейсом «Такси» и управляемыми формами.

Когда хватит настроек пользователя, а когда нужен разработчик

Колонки в списке бывают трёх видов, и от вида зависит способ.

  • 👁 Колонка есть, но скрыта. Её можно включить в настройке формы. Это самый частый случай.
  • 📋 Поля нет в составе списка. В настройке формы его не найти. Нужна правка динамического списка.
  • 🧮 Нужен расчётный показатель. Например, сумма с НДС или разница двух дат. В штатном списке такого поля нет, его создаёт программист в запросе.
СпособКто делаетЧто получаемОграничение
Изменить формупользователь с правом на настройкувключить или выключить готовые колонкитолько поля, уже входящие в список
Перетаскивание заголовковлюбой пользовательдругой порядок и ширинане добавляет колонки
Динамический список в конфигуратореразработчикновые поля и вычисляемые значенияправка типовой формы меняет конфигурацию
Расширение конфигурацииразработчикто же, но без правки типовой формынужно уметь работать с расширениями

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

Как включить скрытую колонку в режиме пользователя

Работаем в обычном режиме 1С:Предприятия, например в списке Поступление (акты, накладные) или в справочнике контрагентов.

  1. Откройте нужный список.
  2. В правом верхнем углу формы нажмите Ещё.
  3. Выберите Изменить форму….
  4. В открывшемся окне найдите раздел с таблицей списка и разверните его. Там перечислены все колонки: включённые стоят с галочкой.
  5. Поставьте галочку у нужного поля.
  6. Нажмите ОК. Форма перерисуется, колонка появится справа от существующих.

Если пункта Изменить форму… нет, у вас недостаточно прав на настройку интерфейса. Права выдаёт администратор: в профиле нужна возможность сохранять личные настройки формы.

Окно настройки формы устроено как дерево. Верхний уровень — элементы формы, внутри таблицы — её колонки. Часть полей лежит в подветках: например, реквизиты документа и реквизиты связанных справочников называются одинаково, различаются только вложенностью. Развернуть все ветки можно кнопкой в командной панели окна.

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

Что проверить после нажатия ОК

Откройте список и посмотрите результат. Бывает, что поле добавилось, но новая колонка оказалась за правым краем и закрыта полосой прокрутки. Сузьте соседние столбцы или переставьте новую колонку ближе к началу.

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

Порядок и ширина столбцов: что можно двигать мышью

Эти правки делаются прямо в списке, без окна настройки.

  • ↔ Ширина. Подведите курсор к границе заголовков двух колонок, он станет двусторонней стрелкой. Потяните влево или вправо.
  • 🔀 Порядок. Зажмите заголовок колонки и перетащите на новое место. Ровная линия между колонками покажет, куда она встанет.
  • 🔽 Сортировка. Один щелчок по заголовку сортирует список по этой колонке. Повторный щелчок меняет направление.
  • 📐 Автоподбор. Двойной щелчок по границе заголовков в таблицах обычно подгоняет ширину под содержимое.

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

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

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

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

Порядок действий в конфигураторе:

  1. Откройте конфигурацию объекта, например справочник Контрагенты.
  2. Раскройте ветку Формы и откройте форму списка двойным щелчком.
  3. Найдите в редакторе формы реквизит типа Динамический список. Обычно он называется Список.
  4. Откройте его свойства. Основная таблица в них указана: по ней строятся поля.
  5. Нажмите на кнопку со ссылкой на состав полей и убедитесь, что нужное поле отмечено или есть в запросе.
  6. На закладке Элементы добавьте новую колонку: перетащите нужное поле из реквизита Список в таблицу списка.
  7. Сохраните форму и запустите 1С:Предприятие для проверки.

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

ВЫБРАТЬ
	Док.Ссылка КАК Ссылка,
	Док.Номер КАК Номер,
	Док.Дата КАК Дата,
	Док.СуммаДокумента КАК СуммаДокумента,
	Док.Комментарий КАК Комментарий
ИЗ
	Документ.ПоступлениеТоваровУслуг КАК Док

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

Поле Ссылка в запросе динамического списка обязательно для объектных таблиц. Без него не работают открытие и выбор элементов.

Расширение вместо правки типовой формы

Если ставить колонку нужно в конфигурации на поддержке, делайте это в расширении. Расширения появились в платформе 8.3.6. Порядок: создать расширение, «заимствовать» форму списка, добавить колонку в заимствованную форму, сохранить расширение и применить его через Конфигурация → Расширения конфигурации, затем обновить конфигурацию базы данных. Загрузка файла .cfe и обновление БД — это два отдельных шага, второй забывают чаще всего.

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

Виртуальные таблицы и связанные поля

Часто нужна колонка не из самого документа, а из связанного объекта: вместо ссылки на контрагента показать его ИНН, вместо договора — дату договора. Есть два пути.

Точка в имени поля. В запросе пишут Док.Контрагент.ИНН. Так 1С присоединяет таблицу контрагентов неявно. Записывать это удобно, но на больших объёмах такие обращения замедляют запрос.

Явное соединение. Присоединяют нужную таблицу через ЛЕВОЕ СОЕДИНЕНИЕ. Нагрузка предсказуемее, а условия соединения видно в тексте.

ВЫБРАТЬ
	Док.Ссылка КАК Ссылка,
	Док.Контрагент КАК Контрагент,
	Контр.ИНН КАК ИННКонтрагента
ИЗ
	Документ.ПоступлениеТоваровУслуг КАК Док
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контр
		ПО Док.Контрагент = Контр.Ссылка

С виртуальными таблицами регистров всё строже. Остатки и обороты берут из РегистрНакопления.…Остатки(&Дата) или Обороты. Параметры отбора указывают в скобках, а не в условии ГДЕ: иначе запрос читает больше данных, чем нужно. Если колонка со складским остатком или суммой долга тормозит открытие списка, это первое место для поиска.

Для связки списка с регистром нужно, чтобы измерение регистра и поле списка были одного типа. Иначе соединение ничего не вернёт, и колонка окажется пустой.

После изменения запроса откройте свойства динамического списка и дайте платформе перечитать состав полей. Без этого новое поле в запросе есть, а в окне настройки формы его нет.

Перед правкой запроса полезно записать, какие колонки были в списке до изменений. Если после правки что-то сломается, вы быстро вернёте прежний вид и не будете гадать, какое поле стояло третьим.

Как сохранить свои колонки и откатить их

Личная настройка формы хранится в данных пользователя в информационной базе. Она переживает перезапуск 1С, обновление конфигурации и работу с другого компьютера под той же учётной записью. Если вы входите под общей учётной записью («Бухгалтер»), настройка общая для всех, кто так входит.

Вернуть исходный вид можно двумя способами:

  1. В Ещё → Изменить форму… найдите кнопку установки стандартных настроек. Она возвращает набор колонок, порядок и ширину к значениям по умолчанию.
  2. Если форма «сломалась» целиком, администратор может сбросить пользовательские настройки пользователя. Для этого в разделе администрирования открывают настройки конкретного пользователя и очищают сохранённые настройки форм. Действие затронет и другие формы того же человека.

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

Нужна одинаковая раскладка для всех сотрудников? Администратор настраивает форму у себя и копирует настройки другим пользователям с помощью штатной обработки в разделе администрирования. Либо разработчик делает нужную колонку видимой по умолчанию в самой форме: тогда она появится у всех без личных настроек.

Колонки в списке: что проверить
Выполнено: 0 / 5

Колонка не появляется или пустая: частые причины

Сначала определите, где остановились.

  • ❓ Нет пункта «Изменить форму». Нет прав или форма не поддерживает настройку. Проверьте профиль пользователя.
  • ❓ Поля нет в окне настройки. Его нет в запросе динамического списка, нужен разработчик.
  • ❓ Колонка добавилась, но в ней пусто. Имя колонки не совпало с именем поля, либо поле в запросе приходит со значением NULL из-за левого соединения. Проверьте условие соединения.
  • ❓ После обновления конфигурации колонка пропала. Если вы правили типовую форму без расширения, обновление могло вернуть исходную версию. Восстановите правку или перенесите её в расширение.
  • ❓ Список стал открываться медленно. Колонка тянет данные из регистра или через цепочку точек. Замените на явное соединение и ограничьте виртуальную таблицу параметрами.
Диагностика: выберите симптом

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

Можно ли добавить колонку в список, если поля нет в окне настройки формы?
Только через запрос динамического списка в конфигураторе или расширении. Пользовательская настройка показывает лишь те поля, которые список уже получает из базы.
Колонка пропала после закрытия 1С. Почему?
Скорее всего, вы входите под общей учётной записью и кто-то другой сбросил настройки. Либо у учётной записи нет права сохранять настройки формы.
Как посмотреть колонки, которых нет ни в списке, ни в настройке?
Откройте сам элемент списка: все реквизиты показывает карточка. Для отчёта по нескольким полям сразу выведите список в табличный документ командой вывода списка из меню Ещё.
Влияет ли количество колонок на скорость открытия списка?
Простые поля почти не влияют. Тяжёлыми бывают поля с обращением через точку к другим таблицам и данные из регистров.
Можно ли сохранить разные наборы колонок для одного и того же списка?
Один пользователь хранит одну раскладку формы. Для разных задач разработчик делает отдельные формы списка или варианты через отборы.