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

Документы и Печать · 9 мин

Как в 1С скопировать табличную часть документа

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

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

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

Ниже разобраны рабочие способы для пользовательского режима и для конфигуратора, с проверкой результата и типичными ошибками. Инструкции применимы к большинству типовых конфигураций на управляемых формах (УТ, ERP, Бухгалтерия, ЗУП), а также к обычным формам старых решений.

Копирование строк через буфер обмена

Самый универсальный пользовательский способ — выделить нужные строки табличной части и перенести их через буфер обмена Windows. В управляемых формах кликните по первой строке, затем зажмите Shift и кликните по последней, чтобы выделить диапазон, либо используйте Ctrl+A для выделения всех строк таблицы. После этого нажмите Ctrl+C.

Откройте целевой документ, поставьте курсор в его табличную часть и нажмите Ctrl+V. Если состав колонок совместим, строки вставятся с сохранением номенклатуры, количества, цен и сумм. Во многих конфигурациях также работает контекстное меню по правой кнопке мыши с пунктами «Копировать» и «Вставить».

Важный нюанс: вставка проходит успешно, только если набор колонок в источнике и приёмнике совпадает или приёмник «понимает» переносимые данные. Копирование между одинаковыми документами (например, из одной реализации в другую) обычно проходит без проблем, а между разными видами документов — с потерей части колонок или отказом вставки.

Копирование строк вручную
  1. 1
    Откройте документ-источник и перейдите к нужной табличной части
  2. 2
    Выделите строки: Shift для диапазона, Ctrl+A для всех строк
  3. 3
    Нажмите Ctrl+C или выберите «Копировать» в контекстном меню
  4. 4
    Откройте целевой документ и кликните в его табличную часть
  5. 5
    Нажмите Ctrl+V и проверьте перенесённые колонки: количество, цены, счета учёта
  6. 6
    Запишите документ и сверьте итоговые суммы

Копирование документа целиком

Если нужно перенести табличную часть полностью вместе с шапкой, проще скопировать сам документ. В списке документов выделите нужный и нажмите F9, кнопку «Скопировать» на панели или одноимённый пункт в меню «Ещё». Откроется новый документ с тем же составом строк, но с текущей датой и новым номером.

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

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

Ввод на основании и типовые механизмы заполнения

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

Дополнительно во многих документах есть кнопка «Заполнить» над табличной частью. Через неё можно подобрать товары из другого документа, заполнить по остаткам, по заказу или по нормативам. Это безопаснее ручного копирования, потому что программа сама контролирует соответствие колонок и проводит проверки.

Копирование через обработки и внешние инструменты

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

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

Существуют и универсальные внешние обработки копирования табличных частей, которые подключаются через «Файл — Открыть» (при наличии прав). Они позволяют указать документ-источник, документ-приёмник и произвольное соответствие колонок. Такие инструменты удобны для разовых миграций, но требуют проверки результата, потому что обходят часть типовых контролей.

Копирование табличной части программно

Разработчику или продвинутому пользователю с правами на внешние обработки доступен программный способ. Табличная часть объекта выгружается в таблицу значений методом Выгрузить(), после чего её можно загрузить в другой документ методом Загрузить(). Это работает, когда состав колонок совпадает.

ОбъектПриёмник.Товары.Загрузить(ОбъектИсточник.Товары.Выгрузить());

ОбъектПриёмник.Записать();

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

Для Каждого Строка Из ОбъектИсточник.Товары Цикл

НоваяСтрока = ОбъектПриёмник.Товары.Добавить();

НоваяСтрока.Номенклатура = Строка.Номенклатура;

НоваяСтрока.Количество = Строка.Количество;

КонецЦикла;

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

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

Проверка результата и ограничения способов

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

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

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

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

Количество строк в источнике и приёмнике
Норма

Совпадает, порядок строк сохранён

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

Строк меньше — часть не вставилась из-за несовместимости колонок

Итоговая сумма документа
Норма

Совпадает с источником или отличается только из-за осознанных правок

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

Сумма изменилась без причины — потеряны цены или количество

Проведение документа
Норма

Проводится без сообщений об ошибках

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

Ошибки заполнения реквизитов — строки вставлены не полностью

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

Почему Ctrl+V не вставляет строки в табличную часть?

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

Можно ли скопировать табличную часть в другую базу 1С?

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

Как скопировать только часть строк, а не всю таблицу?

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

Перенесутся ли скидки, серии и характеристики при копировании?

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

Чем опасна вставка строк в проведённый документ?

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

Итог

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

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