К статье
Практический материал

Быстрый старт · 9 мин

Как двигать строки в 1С: все способы перемещения строк

Как двигать строки в 1С в табличных частях документов, списках справочников и таблицах значений: кнопки, горячие клавиши, программный метод Сдвинуть, типичные ошибки.

Перемещение строк — одна из базовых операций в 1С, которая нужна при оформлении документов, настройке порядка элементов в справочниках и сортировке данных в таблицах. В зависимости от того, где находится строка — в табличной части документа, в списке справочника или в форме обработки, — используются разные инструменты: кнопки на панели, горячие клавиши, перетаскивание мышью или программные методы.

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

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

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

Быстрее работать с клавиатуры: выделите строку и нажмите Ctrl+Shift+стрелка вверх, чтобы поднять её, или Ctrl+Shift+стрелка вниз, чтобы опустить. Сочетание работает в управляемых формах большинства конфигураций. Если горячие клавиши не срабатывают, проверьте, что фокус находится именно в таблице, а не в поле ввода внутри ячейки — выйдите из режима редактирования ячейки клавишей Esc.

Чтобы переместить сразу несколько строк, выделите их с зажатой клавишей Ctrl (разрозненные строки) или Shift (диапазон), затем используйте те же кнопки или сочетания. Все выделенные строки сдвинутся на одну позицию за одно нажатие, сохранив взаимный порядок.

Порядок действий в документе
  1. 1
    Откройте документ и перейдите на вкладку с табличной частью
  2. 2
    Выделите строку щелчком мыши, при необходимости несколько — с Ctrl или Shift
  3. 3
    Нажмите Ctrl+Shift+стрелка вверх/вниз или кнопку «Переместить» на панели
  4. 4
    Повторяйте нажатие, пока строка не займёт нужную позицию
  5. 5
    Проверьте нумерацию строк и запишите документ

Перемещение строк в списках справочников

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

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

Для иерархических справочников перемещение элемента в другую группу — отдельная операция. Выделите элемент и используйте команду «Переместить в группу» из меню «Ещё» или просто перетащите его мышью на нужную группу в дереве. При этом учтите: перенос элемента в другую группу может повлиять на отчёты и права доступа, настроенные по группам.

Перетаскивание мышью и вставка строк

В управляемых формах многие таблицы поддерживают drag-and-drop: зажмите строку левой кнопкой мыши за область номера или любую ячейку и перетащите на нужную позицию. Индикатор вставки покажет, куда попадёт строка после отпускания кнопки. Этот способ удобен, когда строку нужно переместить на большое расстояние — например, с конца длинной спецификации в начало.

Альтернатива перетаскиванию — вырезание и вставка. Выделите строку, нажмите Ctrl+X, затем установите курсор на строку, перед которой нужно вставить, и нажмите Ctrl+V. В табличных частях документов это работает надёжнее перетаскивания, особенно в веб-клиенте, где drag-and-drop может работать нестабильно.

Если нужно не переместить, а размножить строку с изменением позиции, используйте копирование: Ctrl+C на исходной строке, затем Ctrl+V в нужном месте. Для документов также доступна кнопка «Скопировать» (обычно F9) на панели табличной части.

Программное перемещение строк для разработчиков

При доработке конфигураций порядок строк меняется кодом на встроенном языке. Для табличных частей и таблиц значений используется метод Сдвинуть(), который принимает индекс строки и величину смещения. Индексация начинается с нуля, поэтому для первой строки индекс равен 0.

bsl
// Поднять вторую строку на одну позицию вверх
ТабличнаяЧасть.Сдвинуть(1, -1);

// Опустить первую строку в конец таблицы
ТабличнаяЧасть.Сдвинуть(0, ТабличнаяЧасть.Количество() - 1);

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

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

Когда порядок строк влияет на учёт, а когда нет

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

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

Типичные ошибки и ограничения

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

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

Типичные ошибки
01
Попытка двигать строки при включённой сортировке — список возвращает их обратно
02
Редактирование ячейки вместо выделения строки — горячие клавиши не срабатывают
03
Перестановка строк без записи документа — порядок теряется при закрытии
04
Ожидание влияния порядка строк на проводки там, где он чисто визуальный

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

После сдвига строк убедитесь, что нумерация в колонке «№» обновилась и соответствует новому порядку — в табличных частях она пересчитывается автоматически. Прокрутите таблицу и проверьте, что перемещённая строка стоит именно там, где задумано, а соседние строки не сдвинулись неожиданным образом.

Запишите документ и сформируйте печатную форму, чтобы увидеть итоговый порядок так, как его увидит контрагент. Для справочников закройте и заново откройте список: если порядок сохранился, изменения записаны в базу корректно.

Контрольные точки

Как проверить результат

Нумерация строк
Норма

Номера идут по порядку без пропусков

Тревожный признак

Номера дублируются или не соответствуют позициям

Порядок после записи
Норма

После перезаписи и переоткрытия порядок сохранён

Тревожный признак

Порядок сбросился к исходному

Печатная форма
Норма

Строки выводятся в новом порядке

Тревожный признак

Печатная форма показывает старый порядок — её нужно переформировать

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

Итог

Что важно запомнить

В документах строки двигаются кнопками «Вверх/Вниз» и сочетанием Ctrl+Shift+стрелки, в списках сначала отключите сортировку. Порядок строк обычно влияет только на отображение и печать, но изменения нужно записывать.

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

Почему не работают кнопки перемещения строк?

Чаще всего включена сортировка списка — откройте настройку списка и уберите её. Также проверьте, что строка выделена целиком, а не находится в режиме редактирования ячейки, и что у вас есть права на изменение объекта.

Какие горячие клавиши двигают строки в табличной части?

В управляемых формах типовых конфигураций используется Ctrl+Shift+стрелка вверх для подъёма строки и Ctrl+Shift+стрелка вниз для опускания. Если сочетание не работает, нажмите Esc, чтобы выйти из редактирования ячейки.

Изменятся ли проводки, если переставить строки в документе?

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

Как переместить элемент справочника в другую группу?

Выделите элемент и используйте команду «Переместить в группу» из меню «Ещё» или перетащите его мышью на нужную группу в дереве. Учтите, что смена группы может повлиять на отчёты и настройки прав, привязанные к группам.

Можно ли двигать строки в веб-клиенте 1С?

Кнопки перемещения и горячие клавиши работают и в веб-клиенте. Перетаскивание мышью может вести себя нестабильно в зависимости от браузера, поэтому надёжнее использовать вырезание и вставку через Ctrl+X и Ctrl+V.

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

Используйте метод Сдвинуть() коллекции строк: он принимает индекс строки и величину смещения. Например, Сдвинуть(0, 1) опускает первую строку на одну позицию, меняя её местами со второй. Индексация строк начинается с нуля.