Справочники и Данные · 10 мин
Как скопировать таблицу в 1С: практическое руководство
Как скопировать таблицу в 1С: копирование табличных частей документов, таблиц значений, макетов и списков. Пошаговые инструкции, типичные ошибки и FAQ.
Копирование таблиц в 1С — частая задача: нужно перенести табличную часть из одного документа в другой, продублировать список товаров, выгрузить таблицу значений в Excel или повторить макет печатной формы. Способ зависит от того, где находится таблица и куда её нужно поместить.
В пользовательском режиме (1С:Предприятие) большинство операций выполняется без программирования — через буфер обмена, кнопки «Заполнить» и механизмы подбора. Для массовых или повторяющихся операций используются обработки и встроенный язык. Ниже разобраны основные сценарии с точными действиями и ограничениями.
Определите, какая именно таблица нужна
Под словом «таблица» в 1С скрываются разные объекты, и для каждого свой механизм копирования. Табличная часть документа — это список строк внутри конкретного документа (товары в накладной, сотрудники в ведомости). Таблица значений — программный объект, существующий только в памяти. Динамический список — представление данных справочника или журнала документов на форме. Макет — шаблон печатной формы, хранящийся в конфигурации.
Прежде чем копировать, ответьте на два вопроса: где находится источник (открытый документ, список, отчёт, конфигуратор) и куда нужно поместить данные (другой документ, Excel, новый документ того же вида). От этого зависит и набор доступных инструментов, и риски потери данных.
Скопируйте табличную часть через буфер обмена
Самый простой способ перенести строки из одного документа в другой — выделение и копирование. Откройте документ-источник, кликните в табличную часть, выделите нужные строки: все — через Ctrl+A, отдельные — с зажатым Ctrl, диапазон — с зажатым Shift. Затем нажмите Ctrl+C или выберите «Копировать» в контекстном меню.
Перейдите в документ-приёмник, установите курсор в его табличную часть и нажмите Ctrl+V. Система добавит строки, если состав колонок совместим. В типовых конфигурациях при вставке часто срабатывает пересчёт сумм, налогов и итогов автоматически.
Ограничение способа: копирование работает корректно только между табличными частями с одинаковым или совместимым набором колонок. Если в документе-приёмнике нет колонки «Характеристика», а в источнике она есть, данные этой колонки будут потеряны без предупреждения. Перед вставкой визуально сравните шапки обеих таблиц.
- 1Откройте документ-источник и выделите строки табличной части (Ctrl+A — все строки)
- 2Нажмите Ctrl+C или «Копировать» в контекстном меню
- 3Откройте документ-приёмник и кликните в его табличную часть
- 4Нажмите Ctrl+V и проверьте количество вставленных строк
- 5Сверьте итоговые суммы и заполненность колонок
- 6Запишите документ-приёмник кнопкой «Записать»
Используйте встроенные механизмы «Заполнить» и «Подобрать»
В типовых конфигурациях ручное копирование часто вообще не требуется. Кнопка «Заполнить» в табличной части позволяет перенести данные по правилам: заполнить по остаткам, по документу-основанию, по ценам контрагента. Например, в документе «Инвентаризация» таблица заполняется остатками склада одной командой.
Кнопка «Подобрать» открывает форму подбора номенклатуры, где можно многократно добавлять позиции в документ без переключения между окнами. Это удобнее копирования, когда нужно собрать таблицу из разных источников.
Ещё один вариант — ввод документа на основании. Команда «Создать на основании» переносит табличную часть исходного документа в новый документ другого вида с преобразованием колонок по правилам, заложенным разработчиком конфигурации. Это самый безопасный способ: соответствие полей проверено, а связь между документами сохраняется.
Выгрузите таблицу в Excel или другой файл
Если цель — получить таблицу вне 1С, используйте сохранение в файл. В динамическом списке, отчёте или табличном документе откройте меню «Файл» и выберите «Сохранить копию» (в некоторых версиях — «Сохранить как»). Доступные форматы обычно включают Excel (XLSX), табличный документ 1С (MXL), CSV, HTML и PDF.
Для динамических списков (справочников, журналов документов) предварительно настройте видимые колонки и отборы: в файл попадёт то, что отображается на экране. Команда «Ещё → Изменить форму» или настройка списка позволяет добавить нужные колонки перед выгрузкой.
Обратный путь — загрузка из Excel в табличную часть — в типовых конфигурациях выполняется через обработку «Загрузка данных из файла» (раздел «Администрирование» или «Покупки/Продажи» в зависимости от конфигурации). Она сопоставляет колонки файла с полями таблицы и ищет номенклатуру по наименованию, артикулу или штрихкоду.
Скопируйте таблицу значений программно
Во встроенном языке 1С таблица значений копируется методом Скопировать(). Без параметров он создаёт полную копию со всеми строками и колонками. С параметрами можно скопировать выборочно: НоваяТЗ = ТЗ.Скопировать(ТЗ.НайтиСтроки(Отбор), "Номенклатура,Количество") — копируются только найденные строки и указанные колонки.
Для копирования табличной части одного объекта в другой в коде используют цикл по строкам либо метод Загрузить(): НовыйОбъект.Товары.Загрузить(ИсходныйОбъект.Товары.Выгрузить()). Такой приём типичен при программном создании документов на основании существующих.
Для разового массового копирования данных между базами или документами применяют универсальные обработки — например, «Выгрузка и загрузка данных XML» с диска ИТС. Они работают на уровне объектов целиком и требуют понимания структуры конфигурации.
НоваяТЗ = ТаблицаЗначений.Скопировать();
// или с отбором строк и колонок:
Отбор = Новый Структура("Склад", СкладОтбора);
ЧастьТЗ = ТаблицаЗначений.Скопировать(ТаблицаЗначений.НайтиСтроки(Отбор), "Номенклатура,Количество");Скопируйте макет табличного документа в конфигураторе
Макеты печатных форм копируются в конфигураторе. Откройте конфигурацию, найдите нужный макет в дереве объектов (например, в составе документа или общих макетов), откройте его двойным щелчком. Выделите область ячеек и скопируйте через Ctrl+C, затем вставьте в другой макет через Ctrl+V.
Чтобы продублировать макет целиком, кликните правой кнопкой по объекту макета в дереве конфигурации и выберите «Добавить» с последующим переносом содержимого, либо используйте копирование объекта через буфер обмена прямо в дереве конфигурации. Помните: изменение макета требует обновления конфигурации базы данных и прав на изменение, а в типовых конфигурациях на поддержке — снятия объекта с полной поддержки.
Проверьте результат и избегайте типичных ошибок
После любого копирования сверьте три вещи: количество строк в источнике и приёмнике, итоговые суммы и количество по документу, заполненность ключевых колонок (номенклатура, количество, цена, ставка НДС). Расхождение хотя бы по одному признаку означает, что часть данных потеряна или искажена.
Если документ-приёмник уже содержал строки, вставка добавит новые строки к существующим — дублей система не отследит. Перед вставкой либо очистите табличную часть (кнопка «Ещё → Очистить» или удаление строк), либо убедитесь, что добавление именно то, что требуется.
Как проверить результат
Совпадает с количеством выделенных строк источника
Строк меньше — часть не вставилась из-за несовместимости
Итоги приёмника равны итогам источника (или ожидаемо пересчитаны)
Суммы не сходятся — потеряны колонки или строки
Номенклатура, количество, цены заполнены в каждой строке
Пустые ячейки в колонках, которые были заполнены в источнике
Каждая позиция встречается столько раз, сколько в источнике
Повторяющиеся строки после вставки в непустую таблицу
Частые вопросы
Почему Ctrl+V не вставляет строки в табличную часть?
Чаще всего курсор не установлен в табличную часть приёмника — кликните в любую ячейку таблицы перед вставкой. Также вставка может быть заблокирована, если документ проведён и закрыт для редактирования, или у пользователя нет прав на изменение этого документа.
Как скопировать таблицу между разными базами 1С?
Простой способ — выгрузить табличный документ или список в Excel из одной базы и загрузить через обработку «Загрузка данных из файла» в другой. Для регулярного обмена используют планы обмена или выгрузку через XML-обработки, но это уже задача настройки, а не разового копирования.
Можно ли скопировать только часть колонок табличной части?
Через буфер обмена — нет, копируется вся выделенная строка целиком. Если нужны отдельные колонки, выгрузите таблицу в Excel, удалите лишние колонки там и загрузите обратно, либо используйте программное копирование с указанием списка колонок в методе Скопировать().
Чем отличается Скопировать() от простого присваивания таблицы значений?
Присваивание (НоваяТЗ = СтараяТЗ) создаёт вторую ссылку на ту же таблицу: любое изменение через одну переменную видно через другую. Метод Скопировать() создаёт независимую таблицу с теми же данными, которую можно менять, не затрагивая исходную.
Как скопировать таблицу из отчёта СКД?
Сформируйте отчёт, затем используйте «Файл → Сохранить копию» и выберите формат Excel. Если нужен только фрагмент, выделите область ячеек в табличном документе результата и скопируйте её через Ctrl+C, затем вставьте в Excel или другую программу.
Почему после загрузки из Excel номенклатура не найдена?
Обработка загрузки ищет позиции по точному совпадению наименования, артикула или штрихкода. Расхождения в пробелах, регистре букв, лишних символах или единицах измерения приводят к тому, что строка загружается без ссылки на справочник. Перед загрузкой приведите данные в файле к виду, принятому в базе.
Что важно запомнить
Выбор способа зависит от типа таблицы: табличные части копируют через буфер обмена или «Создать на основании», списки и отчёты выгружают в Excel, таблицы значений копируют методом Скопировать(). Всегда сверяйте количество строк и итоги после копирования, а перед программной загрузкой делайте резервную копию базы.