Порядок колонок в списках, табличных частях и отчётах 1С 8.3 — от мыши до кода

· 9 мин

Содержание

Чтобы поменять местами столбцы в 1С 8.3, зажмите левой кнопкой мыши заголовок колонки и перетащите его влево или вправо — платформа покажет место вставки, а новый порядок запомнит для вашего пользователя. Если колонка не тянется, откройте Ещё → Изменить форму... и переставьте поле стрелками вверх-вниз.

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

Как поменять местами столбцы мышью и через «Изменить форму»

Пользовательский режим — самый быстрый вариант. Права администратора и Конфигуратор не нужны.

Способ 1. Перетаскивание заголовка

  1. Наведите курсор на заголовок колонки, которую хотите сдвинуть.
  2. Зажмите левую кнопку мыши.
  3. Ведите заголовок в сторону. Между колонками появится маркер — место, куда встанет столбец.
  4. Отпустите кнопку.

Ширина колонок меняется так же — потяните за границу заголовка. Порядок и ширина сохраняются в системных настройках формы. При следующем открытии списка вы увидите колонки там, куда их поставили.

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

Способ 2. Окно «Настройка формы»

Этот способ нужен, когда колонок много и тянуть далеко неудобно, или когда нужная колонка скрыта.

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

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

В табличной части документа

Колонки в табличных частях — «Товары» в реализации, «Услуги» в поступлении, «Начисления» в документе зарплаты — переставляются точно так же. Разница в том, к чему привязана настройка.

  • 📄 Порядок запоминается для формы документа, а не для конкретного документа. Переставили колонки в одной реализации — они встанут так же во всех реализациях, включая старые.
  • 🗂 У каждой табличной части своя настройка. Порядок в «Товарах» не влияет на «Услуги» той же формы.
  • 🖨 Печатная форма от этого не меняется. Счёт, накладная и УПД печатаются по своему макету, порядок граф в них задан формой документа.

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

Какой способ выбрать

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

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

Настройки из предыдущего раздела личные. Бухгалтер переставил колонки у себя — у коллеги всё осталось по-старому. Есть два пути сделать порядок общим.

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

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть обработка для копирования пользовательских настроек. В Бухгалтерии она находится в разделе Администрирование → Настройки пользователей и прав, ссылка «Настройки пользователей».

  1. Настройте колонки у одного «эталонного» пользователя.
  2. Под администратором откройте обработку «Настройки пользователей» и выберите эталонного пользователя.
  3. На вкладке внешнего вида найдите нужную форму (список или документ).
  4. Через команду копирования выберите пользователей-получателей.
  5. Попросите получателей закрыть и заново открыть форму.

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

Изменение формы в Конфигураторе или расширении

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

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

Перестановка столбцов в Конфигураторе и программным кодом

Разработчику доступно два варианта: поменять порядок в редакторе формы или переставить колонки кодом при открытии.

В редакторе формы

  1. Откройте форму в Конфигураторе.
  2. На вкладке «Элементы» найдите таблицу и раскройте её.
  3. Перетащите поле мышью на новое место или используйте стрелки перемещения на панели дерева элементов.
  4. Сохраните конфигурацию и выполните Конфигурация → Обновить конфигурацию базы данных (F7).

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

Метод Элементы.Переместить()

Коллекция элементов управляемой формы умеет переставлять элементы методом Переместить(Элемент, Родитель, МестоРасположения):

  • Элемент — колонка, которую двигаем;
  • Родитель — таблица (или группа колонок), в которой она окажется;
  • МестоРасположения — элемент, перед которым встанет колонка. Не указан — колонка уйдёт в конец.

Пример: в форме списка поставить колонку «Сумма» перед колонкой «Контрагент» и колонку «Комментарий» в самый конец.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	// "Сумма" встаёт перед "Контрагентом"
	Элементы.Переместить(Элементы.СписокСумма, Элементы.Список, Элементы.СписокКонтрагент);

	// "Комментарий" уходит в конец таблицы
	Элементы.Переместить(Элементы.СписокКомментарий, Элементы.Список);

КонецПроцедуры

Имена элементов (СписокСумма, СписокКонтрагент) смотрите в дереве элементов формы — они могут отличаться от названий колонок на экране. Ошибка в имени даст исключение при открытии формы.

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

Колонки в динамических списках: чем отличаются от табличной части

Большинство журналов и справочников в 1С 8.3 — динамические списки. Колонку в них можно переставить теми же способами, но есть нюансы.

  • 📋 Порядок колонок не зависит от запроса. Поле может стоять в запросе динамического списка первым, а на экране — последним. Колонки — это элементы формы, они живут отдельно от текста запроса.
  • 🔀 «Сортировка» — это не порядок колонок. В настройках списка есть порядок строк: по дате, номеру, контрагенту. Его часто путают с перестановкой столбцов. Сортировка меняет строки, колонки остаются на местах.
  • ➕ Недостающее поле можно добавить. В окне Изменить форму... у таблицы динамического списка есть команда добавления полей. Через неё выводятся реквизиты основной таблицы списка, которых не было на экране, и сразу встают в нужное место дерева.
  • 🔒 Колонки, связанные в группу, двигаются вместе. Если разработчик объединил, например, «Номер» и «Дату» в одну ячейку, переставить их можно только внутри этой группы или всей группой целиком.

Для программиста здесь та же схема: колонка динамического списка — обычный элемент ПолеФормы, для неё работает Элементы.Переместить(). Добавить колонку для поля, которого нет в запросе, нельзя: сначала поле нужно вывести в запрос или выбрать в основной таблице.

Как поменять местами колонки в отчёте 1С

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

Порядок полей в типовом отчёте

  1. Откройте отчёт и нажмите Настройки....
  2. Переключите вид настроек на расширенный.
  3. Перейдите на вкладку с выбранными полями (в отчётах БСП — «Поля и сортировки»).
  4. Переместите поля стрелками вверх или вниз. Верхнее поле — самая левая колонка.
  5. Нажмите Закрыть и сформировать.

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

Колонки-группировки

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

Отчёты и обработки, которые выводят таблицу кодом

Часть отчётов и внешних обработок собирают результат программно, без СКД. В таком отчёте порядок колонок зашит в макет или в код вывода — пользователь его не поменяет. Варианты:

  • выгрузить результат в Excel и переставить столбцы там (Ещё → Сохранить как у табличного документа);
  • попросить разработчика поменять порядок областей макета.

Перестановка столбцов через расширение конфигурации

Для типовой конфигурации на поддержке расширение — главный инструмент. Основная конфигурация остаётся нетронутой, обновления ставятся без сравнения форм.

Вариант А. Заимствовать форму и переставить элементы

  1. В Конфигураторе: Конфигурация → Расширения конфигурации, создайте или откройте расширение.
  2. В дереве основной конфигурации найдите нужную форму, в контекстном меню выберите «Добавить в расширение».
  3. Откройте заимствованную форму в расширении и перетащите поля таблицы в нужном порядке.
  4. Обновите расширение в базе.

Вариант Б. Обработчик после ПриСозданииНаСервере

Если нужно гибкое поведение (по роли, по организации), удобнее код. В модуле заимствованной формы:

&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)

	Элементы.Переместить(Элементы.СписокСумма, Элементы.Список, Элементы.СписокКонтрагент);

КонецПроцедуры

Префикс Расш1_ подставьте свой — тот, что задан в свойствах расширения.

Перед установкой расширения в рабочую базу проверьте его на копии. Ошибка в имени элемента не даст открыть форму никому из пользователей, а это может быть журнал, с которым работает весь отдел. Расширения поддерживаются платформой начиная с 8.3.6; заимствование и правка форм в полном объёме — в более свежих версиях.

Почему колонка не переставляется

Диагностика: выберите симптом

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

Сбросит ли запуск с /ClearCache порядок колонок?
Нет. Параметр /ClearCache чистит кэш конфигурации на компьютере, а настройки форм хранятся в информационной базе. Колонки останутся на своих местах.
Перенесётся ли порядок колонок на другой компьютер?
Да. Настройки форм привязаны к пользователю базы, а не к компьютеру. Войдите под тем же пользователем — увидите тот же порядок.
Можно ли закрепить колонку слева, чтобы она не уезжала при прокрутке?
Пользователь этого сделать не может. Закрепление задаёт разработчик в свойствах таблицы формы, в Конфигураторе или расширении.
Сохранится ли порядок колонок при загрузке выгрузки .dt на другую базу?
Да. Пользовательские настройки входят в выгрузку информационной базы и восстанавливаются вместе с данными.
Как узнать имя колонки для кода, если на экране другое название?
В пользовательском режиме откройте Ещё → Изменить форму... — в дереве видны элементы, но с заголовками. Точное имя элемента смотрите в Конфигураторе на вкладке «Элементы» формы.