Копирование нескольких строк в 1С: табличные части, отчёты, перенос между документами
Содержание
Чтобы скопировать несколько строк в 1С, выделите их в табличной части через Shift+клик (диапазон) или Ctrl+клик (по одной), затем нажмите кнопку «Скопировать строки» в командной панели таблицы. В 1С:Бухгалтерии 3.0 она есть в табличных частях большинства документов, в том числе в меню Ещё. Откройте документ-получатель, встаньте в ту же табличную часть и нажмите «Вставить строки». Клавиша F9 копирует только одну текущую строку, а Ctrl+C кладёт в буфер обмена текст, а не строки документа.
От того, куда копируете, зависит способ: строки внутри одного документа, в другой документ, в Excel или из Excel обратно в 1С. Ниже каждый случай разобран отдельно. Всё описанное относится к платформе 8.3 с интерфейсом «Такси». Пункты, привязанные к конкретной конфигурации, помечены.
Как выделить несколько строк в таблице 1С
Без выделения копировать нечего, а здесь уже бывают сюрпризы. В управляемых формах 8.3 работают такие приёмы:
- 🖱️
Shift+клик— выделяет всё от текущей строки до той, по которой щёлкнули; - 🖱️
Ctrl+клик— добавляет или снимает одну строку, выделение может быть «рваным»; - ⌨️
Shift+↑/Shift+↓— расширяет выделение с клавиатуры, по строке за нажатие; - ⌨️
Ctrl+A— выделяет все строки таблицы, если в ней разрешено множественное выделение.
Выделенные строки подсвечиваются заливкой, текущая ещё и рамкой. Если после Ctrl+клик подсветка перескакивает на одну строку, а прежняя гаснет, значит, в этой таблице разработчик включил одиночный режим выделения. Пользователь его не переключит. Остаётся копировать документ целиком или идти через загрузку (об этом ниже).
Перед выделением отсортируйте таблицу щелчком по заголовку колонки. Например, по номенклатуре или по сумме. Тогда нужные строки окажутся рядом, и хватит одного Shift+клик вместо двадцати Ctrl+клик.
В отчётах и печатных формах (табличный документ) выделение другое. Щёлкните по номеру строки слева, и выделится строка целиком. С Shift по номеру последней строки выделится диапазон. Можно и протянуть мышью по ячейкам.
Горячие клавиши: F9, Ctrl+C и Ctrl+V
Горячие клавиши в 1С путают чаще всего. Три сочетания выглядят похоже, а делают разное.
| Клавиши | Что делает в табличной части | Сколько строк |
|---|---|---|
F9 | Добавляет копию текущей строки сразу под ней | Одну |
Ctrl+C | Копирует текст выделенных ячеек в буфер Windows | Сколько выделено |
Ctrl+V | Вставляет текст из буфера в текущую ячейку | Новых строк не создаёт |
Insert | Добавляет новую пустую строку | Одну |
Delete | Удаляет выделенные строки | Сколько выделено |
F9: размножить одну строку
F9 — тот же «Скопировать», что и кнопка с двумя листами в командной панели. Платформа берёт текущую строку и создаёт её копию со всеми колонками. Если выделено пять строк, скопируется только та, на которой стоит курсор.
Для одинаковых позиций это самый быстрый путь. Нужно 10 строк «Бумага А4» с разными складами? Заполните одну строку, нажмите F9 девять раз и поменяйте склад в копиях.
Ctrl+C: строки как текст
Ctrl+C на выделенных строках копирует видимые колонки в виде текста. Колонки разделены табуляцией, строки — переводом строки. Такой текст без потерь вставляется в Excel, Google Таблицы, письмо или мессенджер.
Вставить его обратно в табличную часть другого документа через Ctrl+V не выйдет. Платформа вставит текст в одну текущую ячейку, а не создаст строки. Чтобы из текста получились строки документа, нужна загрузка из табличного документа (раздел про Excel).
Ctrl+C копирует только колонки, которые сейчас видны на форме. Скрытые колонки, например счета учёта или страну происхождения, в буфер не попадут. Если они нужны, включите их через Ещё → Изменить форму.
Перетаскивание строк мышью
Перетаскивание (drag-and-drop) в 1С работает не везде. Платформа даёт механизм, а разрешает ли его конкретная таблица, решает разработчик формы.
Что обычно получается в типовых конфигурациях:
- ↕️ Порядок строк внутри документа. Его меняют кнопками со стрелками «Переместить вверх» и «Переместить вниз» в командной панели табличной части. Они работают с выделенной группой строк, и это надёжнее мыши.
- ➡️ Из формы подбора в документ. В форме
Подборпозиции номенклатуры можно перетащить в нижнюю корзину подобранных товаров. После «Перенести в документ» они станут строками. - 📄 Из списка справочника в табличную часть. В части форм можно перетащить элементы из списка, например номенклатуру из отдельного окна, прямо в таблицу документа. Где обработчик не написан, курсор покажет перечёркнутый круг, и ничего не случится.
Перетащить строки из одного открытого документа в другой в типовых конфигурациях, как правило, нельзя. Для этого есть кнопки копирования строк и копирование документа целиком.
Перенос строк в другой документ
Это главный сценарий. Строки уже набраны в одном документе, и не хочется вбивать их заново во втором. Способов четыре, выбирайте по ситуации.
Способ 1. Кнопки «Скопировать строки» и «Вставить строки» (БП 3.0)
В 1С:Бухгалтерии 3.0 в табличных частях документов есть пара команд для копирования строк. Они стоят на командной панели таблицы рядом с кнопками добавления и перемещения, а ещё продублированы в меню Ещё.
- Откройте документ-источник, например «Поступление (акты, накладные, УПД)».
- Перейдите на вкладку
Товарыи выделите нужные строки черезShiftилиCtrl. - Нажмите «Скопировать строки». Внизу экрана появится оповещение о том, сколько строк скопировано.
- Откройте или создайте документ-получатель, например «Реализация (акты, накладные, УПД)».
- Встаньте на ту же по смыслу табличную часть и нажмите «Вставить строки».
- Проверьте цены, ставку НДС и суммы, затем запишите документ.
Строки хранятся во внутреннем буфере 1С, а не в буфере Windows. Пока сеанс не закрыт, их можно вставлять в несколько документов подряд. Переносятся колонки, которые есть в обеих табличных частях. Остальные останутся пустыми или заполнятся по умолчанию.
Если на панели таблицы такой кнопки нет, раскройте Ещё и найдите команду через поиск по меню: строка поиска есть вверху списка команд.
Способ 2. Скопировать документ целиком
Подходит, когда нужна почти такая же реализация, как в прошлом месяце. В журнале документов встаньте на исходный документ и нажмите F9 или кнопку «Скопировать». Откроется новый документ со всеми строками табличных частей. Удалите лишние строки, поменяйте дату и контрагента, если нужно, и проведите документ.
Копия создаётся с текущей датой и без проведения. Не проводите её, пока не проверите строки, иначе получите двойное списание или двойную выручку.
Способ 3. «Создать на основании»
Если документы связаны по смыслу (счёт → реализация, поступление → возврат поставщику), используйте Создать на основании в форме или списке документа. Табличная часть заполнится из основания автоматически. Это надёжнее копирования, потому что 1С сразу ставит ссылку на основание и правильно подставляет зависимые поля.
Способ 4. Кнопка «Заполнить»
У многих документов есть кнопка Заполнить с вариантами: по остаткам, по поступлению, по основанию. Например, при инвентаризации или перемещении она подтянет сразу сотни строк. Скопировать вручную такой объём было бы долго.
Строки отчёта и печатной формы: в Excel и обратно
Отчёты, оборотно-сальдовые ведомости и печатные формы в 1С — это табличные документы. Строки в них копируются как в Excel, но с парой особенностей.
Из отчёта в Excel
- Сформируйте отчёт.
- Выделите строки щелчком по номерам слева (с
Shift— диапазоном) или протяните мышью по ячейкам. - Нажмите
Ctrl+C. - В Excel встаньте в ячейку и нажмите
Ctrl+V.
Значения, границы и основное оформление переносятся. Группировки отчёта (плюсики слева) в Excel не переходят: строки вставятся плоским списком. Если нужен весь отчёт с группировками, сохраните его файлом через кнопку сохранения на панели отчёта в формате .xlsx.
Числа из отчёта иногда приходят в Excel как текст, особенно с разделителями разрядов. Если сумма по колонке не считается, выделите колонку и выполните в Excel Данные → Текст по столбцам → Готово.
Из Excel в табличную часть документа
Здесь Ctrl+V прямо в таблицу документа не сработает. Нужна загрузка:
- В Excel выделите строки с колонками, например «Наименование», «Количество», «Цена», и нажмите
Ctrl+C. - В документе 1С откройте нужную табличную часть и найдите команду загрузки. В БП 3.0 это «Загрузить» на командной панели или в меню
Ещё. - В открывшейся таблице-шаблоне встаньте в первую ячейку и нажмите
Ctrl+V. - Нажмите «Далее». 1С сопоставит наименования с номенклатурой. Несопоставленные строки подсветятся, их можно сопоставить вручную или создать новые элементы.
- Подтвердите перенос. Строки появятся в документе.
Сопоставление идёт по наименованию, артикулу или штрихкоду, в зависимости от колонок шаблона. Чем точнее совпадают названия в Excel и в справочнике, тем меньше ручной работы.
Внутри табличного документа
Если вы редактируете табличный документ (бланк, макет, свою таблицу в 1С), строки копируются через Ctrl+C и Ctrl+V. Сначала выделяйте строки по номерам слева. Тогда вставка перенесёт высоту строк и объединённые ячейки, а не только значения.
Массовое копирование кодом
Когда строк тысячи или перенос повторяется каждый месяц, ручные способы утомляют. Тогда пишут внешнюю обработку или кнопку в расширении конфигурации.
Скопировать все строки табличной части
Базовый приём — ЗаполнитьЗначенияСвойств. Метод переносит значения всех одноимённых колонок из строки-источника в новую строку:
ДокументИсточник = СсылкаНаИсточник.ПолучитьОбъект();
ДокументПриемник = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Для Каждого СтрокаИсточник Из ДокументИсточник.Товары Цикл
НоваяСтрока = ДокументПриемник.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаИсточник);
КонецЦикла;
Колонки, которых нет в приёмнике, метод просто пропустит. Чтобы перенести только часть колонок, передайте их списком третьим параметром: ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаИсточник, "Номенклатура, Количество, Цена").
Если структура табличных частей совпадает полностью, короче так: ДокументПриемник.Товары.Загрузить(ДокументИсточник.Товары.Выгрузить()). Учтите, что Загрузить заменяет все строки приёмника, а не дописывает их.
Скопировать только выделенные строки в форме
В управляемой форме выделенные строки берут из свойства ВыделенныеСтроки элемента таблицы. Это массив идентификаторов, а не самих строк:
&НаКлиенте
Процедура ДублироватьВыделенные(Команда)
Выделенные = Элементы.Товары.ВыделенныеСтроки;
Для Каждого Идентификатор Из Выделенные Цикл
СтрокаИсточник = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
НоваяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаИсточник);
КонецЦикла;
КонецПроцедуры
Процедура добавляет в конец таблицы копию каждой выделенной строки. Массив ВыделенныеСтроки собран до начала цикла, поэтому новые строки в него не попадут и бесконечного цикла не будет. После переноса вызовите пересчёт сумм, который используется в форме этого документа. Иначе итоги в подвале не обновятся.
Обработку, которая записывает документы, сначала запустите на копии базы. Ошибка в цикле по сотне документов размножит строки во всех сотне сразу.
Групповые изменения без кода
Если нужно не копировать строки, а одним движением поменять реквизит у многих документов, используйте команду Ещё → Изменить выделенные… в списке документов. Она есть в типовых конфигурациях на основе БСП. Выделите документы, выберите реквизит и новое значение. Программа поменяет его во всех выделенных.
Что проверить после копирования строк
Скопированная строка тащит за собой всё, что было в исходнике. В новом документе часть этого может оказаться неверной.
- 🧾 Цены и суммы. При переносе из поступления в реализацию копируется закупочная цена. Поставьте цену продажи вручную или заполните её по типу цен из договора.
- 💲 Ставка НДС. Если у получателя другая организация или другой режим налогообложения, ставка из исходника будет ошибочной.
- 📒 Счета учёта в строках. В БП 3.0 у строк товаров есть счета учёта, и они копируются как есть. Если склад или организация другие, счета могут не совпасть. Откройте колонки счетов через
Ещё → Изменить формуи сверьте их. - 🏷️ Коды маркировки, серии, номера ГТД. Конкретный код маркировки или номер декларации принадлежит конкретной партии. Копировать их в документ с другим товаром нельзя: такой документ отклонят при обмене с ГИС МТ или при проверке прослеживаемости.
- 🔢 Порядок строк. Вставленные строки встают в конец таблицы. Если в печатной форме важен порядок, переместите их стрелками.
- ⏸️ Пустые колонки. Переносятся только колонки, которые есть в обеих табличных частях. Если в получателе есть обязательная колонка, которой не было у источника, документ не запишется, пока её не заполнить.