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