Порядок колонок в списках, табличных частях и отчётах 1С 8.3 — от мыши до кода
Содержание
Чтобы поменять местами столбцы
в 1С 8.3, зажмите левой кнопкой мыши заголовок колонки и перетащите его влево или вправо — платформа покажет место вставки, а новый порядок запомнит для вашего пользователя. Если колонка не тянется, откройте Ещё → Изменить форму... и переставьте поле стрелками вверх-вниз.
Это работает в любом списке и табличной части управляемой формы: журнал документов , справочник контрагентов, товары в реализации, сотрудники в начислении зарплаты. Отчёты устроены иначе — там порядок колонок задаётся в настройках отчёта. А если колонки нужно поменять местами сразу у всех пользователей, понадобится администратор или разработчик.
Как поменять местами столбцы мышью и через «Изменить форму»
Пользовательский режим — самый быстрый вариант. Права администратора и Конфигуратор не нужны.
Способ 1. Перетаскивание заголовка
- Наведите курсор на заголовок колонки, которую хотите сдвинуть.
- Зажмите левую кнопку мыши.
- Ведите заголовок в сторону. Между колонками появится маркер — место, куда встанет столбец.
- Отпустите кнопку.
Ширина колонок меняется так же — потяните за границу заголовка. Порядок и ширина сохраняются в системных настройках формы. При следующем открытии списка вы увидите колонки там, куда их поставили.
Перетаскивание работает и в тонком клиенте, и в веб-клиенте. В браузере иногда мешает выделение текста: начните тянуть точно с надписи заголовка, а не с края.
Способ 2. Окно «Настройка формы»
Этот способ нужен, когда колонок много и тянуть далеко неудобно, или когда нужная колонка скрыта.
- В командной панели списка или табличной части нажмите
Ещё. - Выберите
Изменить форму.... - Слева откроется дерево элементов формы. Найдите таблицу (например, «Список» или «Товары») и раскройте её.
- Выделите поле и переместите его кнопками со стрелками вверх или вниз. Чем выше поле в дереве, тем левее колонка на экране.
- Галочкой слева от поля включается и выключается видимость колонки.
- Нажмите
ОК.
В этом же окне через кнопку Ещё можно вернуть стандартные настройки формы — порядок колонок станет таким, каким его задал разработчик.
В табличной части документа
Колонки в табличных частях — «Товары» в реализации, «Услуги» в поступлении, «Начисления» в документе зарплаты — переставляются точно так же. Разница в том, к чему привязана настройка.
- 📄 Порядок запоминается для формы документа, а не для конкретного документа. Переставили колонки в одной реализации — они встанут так же во всех реализациях, включая старые.
- 🗂 У каждой табличной части своя настройка. Порядок в «Товарах» не влияет на «Услуги» той же формы.
- 🖨 Печатная форма от этого не меняется. Счёт, накладная и УПД печатаются по своему макету, порядок граф в них задан формой документа.
Пример: менеджер вводит реализации со сканером и хочет видеть «Количество» сразу после «Номенклатуры», а «Цену» и «Сумму» — правее. Достаточно один раз перетащить «Количество» влево в любой реализации, и порядок сохранится для всех следующих документов.
Какой способ выбрать
| Способ | Когда удобен | Что учесть |
|---|---|---|
| Перетаскивание заголовка | 1–2 колонки, рядом друг с другом | Не видит скрытые колонки |
Ещё → Изменить форму... | Много колонок, нужно включить скрытые | Колонки внутри группы двигаются только в её пределах |
| Сброс к стандартным настройкам | Всё «съехало», хочется начать заново | Пропадут все ваши правки этой формы |
Как поменять колонки местами у всех пользователей сразу
Настройки из предыдущего раздела личные. Бухгалтер переставил колонки у себя — у коллеги всё осталось по-старому. Есть два пути сделать порядок общим.
Копирование настроек одного пользователя другим
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть обработка для копирования пользовательских настроек. В Бухгалтерии она находится в разделе Администрирование → Настройки пользователей и прав, ссылка «Настройки пользователей».
- Настройте колонки у одного «эталонного» пользователя.
- Под администратором откройте обработку «Настройки пользователей» и выберите эталонного пользователя.
- На вкладке внешнего вида найдите нужную форму (список или документ).
- Через команду копирования выберите пользователей-получателей.
- Попросите получателей закрыть и заново открыть форму.
Копирование перезаписывает настройки формы у получателя. Если кто-то из сотрудников настроил список под себя, его вариант пропадёт. Предупредите людей заранее.
Изменение формы в Конфигураторе или расширении
Второй путь — поменять порядок колонок в самой форме. Тогда новый порядок станет «стандартным» для всех, кто ещё не настраивал форму вручную.
Важная деталь, о которую спотыкаются чаще всего: у пользователей, которые уже двигали колонки, сохранённые личные настройки перекрывают изменения разработчика. После доработки формы таким пользователям нужно вернуть стандартные настройки (Ещё → Изменить форму... → Ещё → Установить стандартные настройки) или очистить их настройки через обработку «Настройки пользователей».
Перестановка столбцов в Конфигураторе и программным кодом
Разработчику доступно два варианта: поменять порядок в редакторе формы или переставить колонки кодом при открытии.
В редакторе формы
- Откройте форму в Конфигураторе.
- На вкладке «Элементы» найдите таблицу и раскройте её.
- Перетащите поле мышью на новое место или используйте стрелки перемещения на панели дерева элементов.
- Сохраните конфигурацию и выполните
Конфигурация → Обновить конфигурацию базы данных(F7).
Если конфигурация типовая и стоит на поддержке, править форму напрямую не стоит: при следующем обновлении изменения придётся сравнивать и переносить вручную. Для типовых решений правильный путь — расширение (раздел ниже).
Метод Элементы.Переместить()
Коллекция элементов управляемой формы умеет переставлять элементы методом Переместить(Элемент, Родитель, МестоРасположения):
Элемент— колонка, которую двигаем;Родитель— таблица (или группа колонок), в которой она окажется;МестоРасположения— элемент, перед которым встанет колонка. Не указан — колонка уйдёт в конец.
Пример: в форме списка поставить колонку «Сумма» перед колонкой «Контрагент» и колонку «Комментарий» в самый конец.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// "Сумма" встаёт перед "Контрагентом"
Элементы.Переместить(Элементы.СписокСумма, Элементы.Список, Элементы.СписокКонтрагент);
// "Комментарий" уходит в конец таблицы
Элементы.Переместить(Элементы.СписокКомментарий, Элементы.Список);
КонецПроцедуры
Имена элементов (СписокСумма, СписокКонтрагент) смотрите в дереве элементов формы — они могут отличаться от названий колонок на экране. Ошибка в имени даст исключение при открытии формы.
Переставлять колонки можно и по условию: например, показывать бухгалтеру сумму слева, а кладовщику — справа. Для этого оберните вызов Переместить() в проверку роли через РольДоступна("ИмяРоли").
Колонки в динамических списках: чем отличаются от табличной части
Большинство журналов и справочников в 1С 8.3 — динамические списки. Колонку в них можно переставить теми же способами, но есть нюансы.
- 📋 Порядок колонок не зависит от запроса. Поле может стоять в запросе динамического списка первым, а на экране — последним. Колонки — это элементы формы, они живут отдельно от текста запроса.
- 🔀 «Сортировка» — это не порядок колонок. В настройках списка есть порядок строк: по дате, номеру, контрагенту. Его часто путают с перестановкой столбцов. Сортировка меняет строки, колонки остаются на местах.
- ➕ Недостающее поле можно добавить. В окне
Изменить форму...у таблицы динамического списка есть команда добавления полей. Через неё выводятся реквизиты основной таблицы списка, которых не было на экране, и сразу встают в нужное место дерева. - 🔒 Колонки, связанные в группу, двигаются вместе. Если разработчик объединил, например, «Номер» и «Дату» в одну ячейку, переставить их можно только внутри этой группы или всей группой целиком.
Для программиста здесь та же схема: колонка динамического списка — обычный элемент ПолеФормы, для неё работает Элементы.Переместить(). Добавить колонку для поля, которого нет в запросе, нельзя: сначала поле нужно вывести в запрос или выбрать в основной таблице.
Как поменять местами колонки в отчёте 1С
В отчётах на системе компоновки данных (СКД) таблица результата — это табличный документ. Тянуть его заголовки мышью бессмысленно: при следующем формировании порядок вернётся. Менять нужно настройки отчёта.
Порядок полей в типовом отчёте
- Откройте отчёт и нажмите
Настройки.... - Переключите вид настроек на расширенный.
- Перейдите на вкладку с выбранными полями (в отчётах БСП — «Поля и сортировки»).
- Переместите поля стрелками вверх или вниз. Верхнее поле — самая левая колонка.
- Нажмите
Закрыть и сформировать.
Чтобы не настраивать заново каждый раз, сохраните вариант отчёта: Ещё → Сохранить вариант отчёта... или аналогичная команда в шапке формы. Сохранённый вариант можно сделать доступным другим пользователям.
Колонки-группировки
В отчётах вида «кросс-таблица» колонки образуются группировкой: например, месяцы или склады по горизонтали. Их порядок определяется не списком полей, а сортировкой этой группировки. Нужны склады в другом порядке — меняйте сортировку колонок в настройках варианта.
Отчёты и обработки, которые выводят таблицу кодом
Часть отчётов и внешних обработок собирают результат программно, без СКД. В таком отчёте порядок колонок зашит в макет или в код вывода — пользователь его не поменяет. Варианты:
- выгрузить результат в Excel и переставить столбцы там (
Ещё → Сохранить каку табличного документа); - попросить разработчика поменять порядок областей макета.
Перестановка столбцов через расширение конфигурации
Для типовой конфигурации на поддержке расширение — главный инструмент. Основная конфигурация остаётся нетронутой, обновления ставятся без сравнения форм.
Вариант А. Заимствовать форму и переставить элементы
- В Конфигураторе:
Конфигурация → Расширения конфигурации, создайте или откройте расширение. - В дереве основной конфигурации найдите нужную форму, в контекстном меню выберите «Добавить в расширение».
- Откройте заимствованную форму в расширении и перетащите поля таблицы в нужном порядке.
- Обновите расширение в базе.
Вариант Б. Обработчик после ПриСозданииНаСервере
Если нужно гибкое поведение (по роли, по организации), удобнее код. В модуле заимствованной формы:
&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
Элементы.Переместить(Элементы.СписокСумма, Элементы.Список, Элементы.СписокКонтрагент);
КонецПроцедуры
Префикс Расш1_ подставьте свой — тот, что задан в свойствах расширения.
Перед установкой расширения в рабочую базу проверьте его на копии. Ошибка в имени элемента не даст открыть форму никому из пользователей, а это может быть журнал, с которым работает весь отдел. Расширения поддерживаются платформой начиная с 8.3.6; заимствование и правка форм в полном объёме — в более свежих версиях.
Почему колонка не переставляется
Ещё → Изменить форму...: если поле там серое или нет стрелок, ограничение задано в конфигурации.Частые вопросы
Сбросит ли запуск с /ClearCache порядок колонок?
/ClearCache чистит кэш конфигурации на компьютере, а настройки форм хранятся в информационной базе. Колонки останутся на своих местах.Перенесётся ли порядок колонок на другой компьютер?
Можно ли закрепить колонку слева, чтобы она не уезжала при прокрутке?
Сохранится ли порядок колонок при загрузке выгрузки .dt на другую базу?
Как узнать имя колонки для кода, если на экране другое название?
Ещё → Изменить форму... — в дереве видны элементы, но с заголовками. Точное имя элемента смотрите в Конфигураторе на вкладке «Элементы» формы.