Обучение и Решения · 9 мин
Как поднять строку в 1С: все способы перемещения строк
Способы поднять строку в 1С: кнопки перемещения, горячие клавиши, перетаскивание мышью, программный сдвиг строк в табличной части. Разбор ошибок и ограничений.
Потребность поднять строку вверх возникает в двух типичных ситуациях: при работе с табличной частью документа (например, нужно изменить порядок товаров в счёте или накладной) и при сортировке списков в журналах и справочниках. Механика отличается: в табличной части строку реально перемещают, меняя её номер, а в списке чаще всего меняют настройку сортировки.
В типовых конфигурациях на управляемых формах (1С:Бухгалтерия 8, Управление торговлей 11, ERP, ЗУП) перемещение строк выполняется кнопками на панели табличной части, командами контекстного меню, перетаскиванием мышью или горячими клавишами. В старых конфигурациях на обычных формах набор способов немного другой, но принципы совпадают.
Ниже разобраны все рабочие способы, ограничения платформы, программный вариант для разработчиков и типичные ошибки, из-за которых строка «не хочет» подниматься.
Где именно нужно поднять строку: определяем ситуацию
Перед действием важно понять, с каким объектом вы работаете, потому что инструменты различаются. Табличная часть документа — это список строк внутри конкретного документа (товары, услуги, начисления). Порядок строк в ней хранится в базе и влияет на печатные формы, поэтому перемещение здесь имеет практический смысл.
Динамический список — журнал документов, список справочника, подбор номенклатуры. В нём порядок строк определяется сортировкой, и «поднять» конкретную строку вручную обычно нельзя: нужно менять настройку сортировки или фильтрации.
Доступны кнопки перемещения и перетаскивание
Порядок задаётся только сортировкой
Сбросьте сортировку по колонке, проверьте права
Порядок переопределяется кодом при записи документа
Способ 1. Кнопки перемещения на панели табличной части
Самый наглядный способ — стандартные кнопки со стрелками. Откройте документ, выделите нужную строку щелчком мыши (строка подсветится), затем найдите на панели команд табличной части кнопки «Переместить вверх» и «Переместить вниз» — обычно это стрелки, иногда скрытые в меню «Ещё».
Каждое нажатие сдвигает строку на одну позицию. Чтобы поднять строку на несколько позиций, нажимайте кнопку повторно либо удерживайте её. После перемещения номера строк в колонке «№» пересчитываются автоматически.
Учтите: перемещение вступает в силу только после записи документа. Если закрыть документ без записи, порядок строк вернётся к исходному.
- 1Откройте документ и перейдите на вкладку с нужной табличной частью
- 2Выделите строку одним щелчком мыши
- 3Нажмите кнопку со стрелкой вверх на панели таблицы (или в меню «Ещё»)
- 4Повторяйте нажатие, пока строка не займёт нужную позицию
- 5Запишите документ кнопкой «Записать» или «Провести»
Способ 2. Горячие клавиши
Для частой работы с табличными частями удобнее клавиатура. В управляемых формах платформы 1С:Предприятие 8.3 перемещение текущей строки таблицы выполняется сочетаниями Ctrl+Shift+PageUp (вверх) и Ctrl+Shift+PageDown (вниз). В обычных формах (8.2 и ранние версии 8.3) аналогичную роль играют Ctrl+Shift+стрелки вверх/вниз либо те же команды из контекстного меню.
Сочетания работают только когда фокус ввода находится в таблице, а не в отдельном поле редактирования. Если вы сейчас редактируете значение в ячейке (курсор мигает внутри поля), сначала завершите ввод клавишей Enter или Esc, иначе команда перемещения не сработает.
Способ 3. Перетаскивание мышью
В управляемых формах строку можно поднять перетаскиванием: наведите курсор на выделенную строку, зажмите левую кнопку мыши и потяните строку вверх к нужной позиции. Платформа покажет горизонтальную линию-индикатор места вставки. Отпустите кнопку — строка встанет на новое место.
Перетаскивание работает не во всех таблицах: разработчик конфигурации может отключить его для конкретной табличной части. Если строка «не тянется», используйте кнопки или горячие клавиши — функционально это то же самое.
Как поднять строку в списке документов или справочника
В журналах документов и списках справочников строки нельзя перетаскивать — порядок там задаёт сортировка. Чтобы нужная строка оказалась выше, измените её: щёлкните правой кнопкой по заголовку колонки и выберите «Сортировать по возрастанию» или «по убыванию», либо откройте «Ещё — Настроить список» и задайте сортировку по нескольким полям.
Если нужно, чтобы конкретный элемент всегда был наверху, используют приёмы вроде префикса в наименовании (например, восклицательный знак или «01_» перед названием), который при сортировке по наименованию выводит элемент первым. Это рабочая практика, но влияет на отображение наименования везде, поэтому применяйте её осознанно.
Сравнение способов
Универсально и наглядно; медленно при перемещении на много позиций
Самый быстрый способ; требует, чтобы фокус был в таблице, а не в ячейке
Удобно для дальних перемещений; может быть отключено в конфигурации
Единственный вариант для журналов и справочников; не меняет данные, только отображение
Почему строка не поднимается: типичные причины
Наиболее частая причина — включённая сортировка табличной части по одной из колонок. Платформа блокирует ручной порядок, потому что он противоречит сортировке. Вторая причина — документ открыт в режиме просмотра без права редактирования, либо у пользователя нет права изменения этого документа.
Третья ситуация — конфигурация программно сортирует табличную часть при записи (например, по номенклатуре или по дате). Тогда строку удаётся поднять визуально, но после записи она возвращается обратно. Здесь ручное перемещение бессмысленно, нужно менять логику документа или принять заданный порядок.
Как поднять строку программно (для разработчиков)
Во встроенном языке строку табличной части перемещает метод Сдвинуть(). Он принимает строку (или её индекс) и величину смещения: отрицательное значение поднимает строку вверх, положительное опускает вниз.
// Поднять первую строку табличной части "Товары" на одну позицию вверх
Объект.Товары.Сдвинуть(Объект.Товары[1], -1);
// Поднять строку с индексом 5 на три позиции
Объект.Товары.Сдвинуть(5, -3);
При программном сдвиге помните об индексации с нуля: индекс первой строки — 0. Попытка сдвинуть строку за границы табличной части не вызывает ошибку — строка просто встанет на крайнюю позицию. Для массового изменения порядка удобнее использовать ТабличнаяЧасть.Сортировать("Поле Возр"), чем многократные сдвиги.
Проверка результата
После перемещения убедитесь, что изменения зафиксированы. Запишите документ, закройте его и откройте заново — строка должна остаться на новой позиции. Если порядок сбросился, значит, либо документ не был записан, либо конфигурация сортирует табличную часть программно.
Дополнительно проверьте печатную форму документа, если порядок строк важен для вывода на печать: сформируйте печать и убедитесь, что строки выводятся в нужной последовательности.
Как проверить результат
Номера пересчитались и идут по порядку
Номера не меняются — перемещение не выполнено
Строка осталась на новом месте
Строка вернулась — документ не записан или есть программная сортировка
Строки выводятся в заданном порядке
Порядок на печати другой — печать сортирует данные отдельно
Частые вопросы
Можно ли поднять сразу несколько строк в табличной части?
В типовых управляемых формах перемещение обычно работает для одной текущей строки. Если нужно переставить группу строк, проще временно отсортировать табличную часть по нужной колонке, а если такой колонки нет — перемещать строки по одной или решать задачу программно через сортировку по произвольному полю.
Почему кнопки со стрелками неактивны (серые)?
Чаще всего включена сортировка табличной части по одной из колонок — снимите её через контекстное меню заголовка. Также проверьте, что документ открыт на редактирование, а не только на просмотр, и что у вашей роли есть право изменения этого документа.
Как поднять строку в табличном документе (печатной форме)?
В режиме редактирования табличного документа выделите строку кликом по её заголовку слева, затем через меню «Таблица» или контекстное меню используйте вырезание и вставку со сдвигом вниз. В режиме «только просмотр» строки переместить нельзя — сначала отключите этот режим.
Порядок строк влияет на проведение документа?
В большинстве типовых конфигураций — нет, порядок строк влияет только на отображение и печать. Однако в отдельных решениях логика может зависеть от последовательности строк, поэтому при сомнениях проверьте поведение на тестовой копии базы.
Как сделать, чтобы новые строки добавлялись сверху, а не вниз?
Стандартно новая строка добавляется в конец табличной части. Чтобы вставить строку в конкретное место, используйте команду «Вставить» (обычно Shift+F9 или кнопка на панели) — строка появится перед текущей. Постоянное добавление сверху возможно только доработкой конфигурации.
Что важно запомнить
Строку в табличной части поднимают кнопками со стрелками, сочетанием Ctrl+Shift+PageUp или перетаскиванием; в списках порядок задаётся только сортировкой. Если перемещение недоступно, в первую очередь снимите сортировку и проверьте права. Изменения фиксируются записью документа.