Обучение и Решения · 8 мин
Как сдвинуть таблицу в 1С
Как сдвинуть таблицу в 1С: вставка и удаление строк и колонок в табличном документе, сдвиг ячеек в режиме редактирования, программный способ, типичные ошибки.
Задача сдвинуть таблицу в 1С возникает в двух типичных ситуациях: когда нужно изменить макет печатной формы или табличный документ (добавить строки, сдвинуть колонки вправо, освободить место под заголовок) и когда требуется программно сдвинуть область ячеек при формировании отчёта. Способ зависит от того, где находится таблица: в открытом табличном документе, в макете конфигурации или формируется кодом.
Важно понимать, что табличный документ в 1С — это не совсем Excel. Операции вставки и удаления строк и колонок там есть, но привычного «перетащить таблицу мышью вниз на три строки» нет: сдвиг выполняется через вставку пустых областей, вырезание и вставку либо через команды сдвига ячеек. Ниже разобраны все рабочие способы для режима пользователя и для разработчика.
Где именно находится таблица: определяем сценарий
Перед тем как что-то сдвигать, определите, с каким объектом вы работаете. От этого зависит доступный инструментарий. Чаще всего таблица открыта как табличный документ — печатная форма, отчёт или файл MXL. Реже требуется изменить макет в конфигураторе, чтобы все будущие печатные формы строились уже со сдвинутой таблицей.
Если документ открыт в режиме просмотра (печатная форма перед печатью), редактирование может быть заблокировано. Тогда сначала снимите защиту: снимите флажок «Только просмотр» в свойствах документа или в настройках. Без этого команды вставки и удаления строк будут недоступны.
Проверьте, доступно ли редактирование: меню «Таблица» активно
Нужны права на изменение конфигурации
Используйте методы ВставитьОбласть и Сдвинуть
Сдвиг таблицы вниз или вправо через вставку строк и колонок
Самый простой способ сдвинуть таблицу вниз — вставить нужное количество пустых строк над ней. Установите курсор на первую строку таблицы, затем в меню «Таблица» (или в контекстном меню по правой кнопке мыши) выберите «Вставить строку». Повторите операцию столько раз, сколько строк нужно освободить. Всё содержимое ниже курсора сместится вниз вместе с форматированием.
Аналогично работает сдвиг вправо: встаньте на первую колонку таблицы и выполните «Вставить колонку». Содержимое уедет вправо. Если нужно сдвинуть таблицу сразу по диагонали — сначала вставьте строки, потом колонки, порядок значения не имеет.
Чтобы вставить сразу несколько строк или колонок, выделите соответствующее количество существующих (например, три строки), затем выполните вставку — добавится сразу три пустые строки. Это быстрее, чем повторять команду по одной.
- 1Откройте табличный документ и убедитесь, что он не в режиме «Только просмотр»
- 2Выделите столько строк над таблицей, сколько нужно освободить
- 3В контекстном меню выберите «Вставить строку»
- 4Проверьте, что таблица сместилась вниз и форматирование сохранилось
- 5Сохраните документ или макет
Сдвиг через вырезание и вставку области
Если таблицу нужно переместить в другое место документа, а не просто освободить место сверху, удобнее вырезать её целиком. Выделите все ячейки таблицы (потяните мышью или кликните по левой верхней ячейке и с Shift — по правой нижней), нажмите Ctrl+X. Затем установите курсор в ячейку, где должен оказаться левый верхний угол таблицы, и нажмите Ctrl+V.
При вставке 1С переносит содержимое вместе с оформлением: границами, шрифтами, объединениями ячеек. Однако ширина колонок и высота строк в новом месте могут отличаться — это свойства самих строк и колонок листа, а не ячеек. После вставки проверьте ширину колонок и при необходимости подстройте вручную, перетащив границы заголовков колонок.
Сдвиг таблицы в макете конфигурации
Когда требуется изменить не один документ, а сам шаблон печатной формы, править нужно макет. Откройте конфигуратор, найдите нужный объект (документ, справочник, отчёт), перейдите на вкладку «Макеты» и откройте макет типа «Табличный документ». Дальше действуют те же приёмы: вставка строк и колонок над и левее таблицы либо вырезание и вставка области.
Учтите важное ограничение: если макет содержит именованные области и параметры, которые заполняются программно, сдвиг областей может нарушить логику вывода. Например, если код обращается к области по имени, само имя сохранится, но если код выводит данные по абсолютным координатам ячеек (что встречается в старых доработках), после сдвига данные попадут не туда.
Программный сдвиг области ячеек
При формировании табличного документа из кода сдвиг выполняется методом ВставитьОбласть с параметром типа смещения. Метод вставляет область, раздвигая существующие ячейки вниз или вправо. Это удобно, когда отчёт строится динамически и нужно освободить место под дополнительный блок.
// Сдвинуть содержимое вниз, начиная со строки 5
Область = ТабДок.Область("R5");
ТабДок.ВставитьОбласть(Область, , ТипСмещенияТабличногоДокумента.ПоВертикали);
// Сдвинуть содержимое вправо, начиная с колонки 3
ОбластьКолонки = ТабДок.Область("C3");
ТабДок.ВставитьОбласть(ОбластьКолонки, , ТипСмещенияТабличногоДокумента.ПоГоризонтали);ТипСмещенияТабличногоДокумента.ПоВертикали сдвигает строки вниз, ПоГоризонтали — колонки вправо. Если параметр не указан, 1С попытается определить направление по форме вставляемой области, что иногда даёт неожиданный результат, поэтому тип смещения лучше указывать явно. Для удаления области со сдвигом оставшихся ячеек используется метод УдалитьОбласть с тем же типом смещения.
После программного сдвига проверяйте итоговый документ визуально: объединённые ячейки и рисунки иногда ведут себя неочевидно при вставке областей внутрь уже заполненного диапазона. Надёжнее сдвигать область до её заполнения данными.
Как проверить результат и что делать при проблемах
После сдвига убедитесь, что таблица целиком оказалась на новом месте, ничего не обрезалось и не наложилось на другие элементы. Особое внимание уделите объединённым ячейкам, итоговым строкам и колонтитулам, если таблица предназначена для печати.
Как проверить результат
Все строки и колонки сместились на нужное число позиций
Сдвинулась только часть таблицы или появились пустые разрывы внутри
Границы, шрифты и объединения сохранились
Пропали границы или разъехались объединённые ячейки
Предпросмотр показывает корректную страницу
Таблица вылезает за поля печати или разрывается
Если после сдвига часть данных пропала, скорее всего, при вставке области было выбрано неверное направление смещения и ячейки затёрли друг друга. Отмените последнее действие (Ctrl+Z) и повторите операцию, явно контролируя направление сдвига.
FAQ
Можно ли сдвинуть таблицу в 1С перетаскиванием мышью, как в Excel?
Нет, в табличном документе 1С перетаскивание областей мышью не поддерживается. Используйте вырезание (Ctrl+X) и вставку (Ctrl+V) либо вставку пустых строк и колонок перед таблицей.
Почему команды вставки строк неактивны?
Чаще всего документ открыт в режиме «Только просмотр» — так по умолчанию открываются печатные формы. Снимите этот признак в свойствах табличного документа, после чего команды редактирования станут доступны.
Как сдвинуть таблицу в таблице значений или в табличной части документа?
Табличная часть и таблица значений — это данные, а не разметка. Там можно менять порядок строк (перемещение вверх/вниз через контекстное меню или сортировку), но понятия «сдвиг колонок вправо» для данных не существует — состав колонок определяется конфигурацией.
Сдвинется ли таблица автоматически при печати, если она не помещается на страницу?
1С переносит на новую страницу только целые строки, причём разрыв можно контролировать настройками макета. Само положение таблицы на листе при этом не меняется — если нужно сместить её относительно полей, правьте область в макете или параметры страницы.
Как программно сдвинуть только часть таблицы, а не весь документ?
Передайте в метод ВставитьОбласть область, ограниченную нужным диапазоном ячеек (например, R5C3:R20C8), и укажите тип смещения. Сдвинутся только ячейки в пределах этой области и правее/ниже неё в соответствующих строках или колонках.
Что важно запомнить
В 1С таблицу сдвигают не перетаскиванием, а вставкой пустых строк и колонок, вырезанием и вставкой области или программно через ВставитьОбласть с типом смещения. Перед правкой макета делайте резервную копию и проверяйте код, работающий с координатами ячеек.