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

Справочники и Данные · 10 мин

Как скопировать таблицу в 1С: практическое руководство

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

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

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

Определите, какая именно таблица нужна

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

Прежде чем копировать, ответьте на два вопроса: где находится источник (открытый документ, список, отчёт, конфигуратор) и куда нужно поместить данные (другой документ, Excel, новый документ того же вида). От этого зависит и набор доступных инструментов, и риски потери данных.

Скопируйте табличную часть через буфер обмена

Самый простой способ перенести строки из одного документа в другой — выделение и копирование. Откройте документ-источник, кликните в табличную часть, выделите нужные строки: все — через Ctrl+A, отдельные — с зажатым Ctrl, диапазон — с зажатым Shift. Затем нажмите Ctrl+C или выберите «Копировать» в контекстном меню.

Перейдите в документ-приёмник, установите курсор в его табличную часть и нажмите Ctrl+V. Система добавит строки, если состав колонок совместим. В типовых конфигурациях при вставке часто срабатывает пересчёт сумм, налогов и итогов автоматически.

Ограничение способа: копирование работает корректно только между табличными частями с одинаковым или совместимым набором колонок. Если в документе-приёмнике нет колонки «Характеристика», а в источнике она есть, данные этой колонки будут потеряны без предупреждения. Перед вставкой визуально сравните шапки обеих таблиц.

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

Используйте встроенные механизмы «Заполнить» и «Подобрать»

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

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

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

Выгрузите таблицу в Excel или другой файл

Если цель — получить таблицу вне 1С, используйте сохранение в файл. В динамическом списке, отчёте или табличном документе откройте меню «Файл» и выберите «Сохранить копию» (в некоторых версиях — «Сохранить как»). Доступные форматы обычно включают Excel (XLSX), табличный документ 1С (MXL), CSV, HTML и PDF.

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

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

Скопируйте таблицу значений программно

Во встроенном языке 1С таблица значений копируется методом Скопировать(). Без параметров он создаёт полную копию со всеми строками и колонками. С параметрами можно скопировать выборочно: НоваяТЗ = ТЗ.Скопировать(ТЗ.НайтиСтроки(Отбор), "Номенклатура,Количество") — копируются только найденные строки и указанные колонки.

Для копирования табличной части одного объекта в другой в коде используют цикл по строкам либо метод Загрузить(): НовыйОбъект.Товары.Загрузить(ИсходныйОбъект.Товары.Выгрузить()). Такой приём типичен при программном создании документов на основании существующих.

Для разового массового копирования данных между базами или документами применяют универсальные обработки — например, «Выгрузка и загрузка данных XML» с диска ИТС. Они работают на уровне объектов целиком и требуют понимания структуры конфигурации.

bsl
НоваяТЗ = ТаблицаЗначений.Скопировать();
// или с отбором строк и колонок:
Отбор = Новый Структура("Склад", СкладОтбора);
ЧастьТЗ = ТаблицаЗначений.Скопировать(ТаблицаЗначений.НайтиСтроки(Отбор), "Номенклатура,Количество");

Скопируйте макет табличного документа в конфигураторе

Макеты печатных форм копируются в конфигураторе. Откройте конфигурацию, найдите нужный макет в дереве объектов (например, в составе документа или общих макетов), откройте его двойным щелчком. Выделите область ячеек и скопируйте через Ctrl+C, затем вставьте в другой макет через Ctrl+V.

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

Проверьте результат и избегайте типичных ошибок

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

Если документ-приёмник уже содержал строки, вставка добавит новые строки к существующим — дублей система не отследит. Перед вставкой либо очистите табличную часть (кнопка «Ещё → Очистить» или удаление строк), либо убедитесь, что добавление именно то, что требуется.

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

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

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

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

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

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

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

Итоги приёмника равны итогам источника (или ожидаемо пересчитаны)

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

Суммы не сходятся — потеряны колонки или строки

Заполненность колонок
Норма

Номенклатура, количество, цены заполнены в каждой строке

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

Пустые ячейки в колонках, которые были заполнены в источнике

Дубли строк
Норма

Каждая позиция встречается столько раз, сколько в источнике

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

Повторяющиеся строки после вставки в непустую таблицу

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

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

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

Как скопировать таблицу между разными базами 1С?

Простой способ — выгрузить табличный документ или список в Excel из одной базы и загрузить через обработку «Загрузка данных из файла» в другой. Для регулярного обмена используют планы обмена или выгрузку через XML-обработки, но это уже задача настройки, а не разового копирования.

Можно ли скопировать только часть колонок табличной части?

Через буфер обмена — нет, копируется вся выделенная строка целиком. Если нужны отдельные колонки, выгрузите таблицу в Excel, удалите лишние колонки там и загрузите обратно, либо используйте программное копирование с указанием списка колонок в методе Скопировать().

Чем отличается Скопировать() от простого присваивания таблицы значений?

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

Как скопировать таблицу из отчёта СКД?

Сформируйте отчёт, затем используйте «Файл → Сохранить копию» и выберите формат Excel. Если нужен только фрагмент, выделите область ячеек в табличном документе результата и скопируйте её через Ctrl+C, затем вставьте в Excel или другую программу.

Почему после загрузки из Excel номенклатура не найдена?

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

Итог

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

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