Копирует текущую строку табличного поля, аналогично выполнению команды "Добавить копированием". Если табличное поле связано с таблицей или деревом значений, метод добавляет копию текущей строки в таблицу или дерево значений (аналогично соответствующим методам этих объектов). Если табличное поле связано со списком объектов, хранимых в базе данных, метод начинает редактирование нового объекта - копии текущего. (Например, список объектов в форме списка справочника, или документа). Если табличное поле связано с набором записей или табличной частью, то метод начинает редактирование новой записи - копии текущего. (Например, список записей в форме списка регистра сведений; табличная часть документа или справочника).
Синтаксис
СкопироватьСтроку()Примеры платформы
ЭлементыФормы.ТабличноеПоле.СкопироватьСтроку();Полное описание, параметры и ограничения
ТабличноеПоле.СкопироватьСтроку (TableBox.CopyRow)
ТабличноеПоле (TableBox)
СкопироватьСтроку (CopyRow)
Доступен, начиная с версии 8.0.
Синтаксис:
СкопироватьСтроку()
Описание:
Копирует текущую строку табличного поля, аналогично выполнению команды "Добавить копированием".
Если табличное поле связано с таблицей или деревом значений, метод добавляет копию текущей строки в таблицу или дерево значений (аналогично соответствующим методам этих объектов).
Если табличное поле связано со списком объектов, хранимых в базе данных, метод начинает редактирование нового объекта - копии текущего. (Например, список объектов в форме списка справочника, или документа).
Если табличное поле связано с набором записей или табличной частью, то метод начинает редактирование новой записи - копии текущего. (Например, список записей в форме списка регистра сведений; табличная часть документа или справочника).
Доступность:
Толстый клиент.
Примечание:
Если табличное поле связано с набором записей регистра сведений, то новые записи можно вводить "вручную" только если для регистра установлен режим записи "Независимый" (задается при конфигурировании). Если набор записей принадлежит регистру накопления либо для регистра сведений установлен режим записи "Подчинение регистратору", то добавление новых "ручных" записей не допускается.
Пример:
ЭлементыФормы.ТабличноеПоле.СкопироватьСтроку();
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Отменить копирование и добавление интерактивной строки
Копирование и добавление запускают редактор новой строки своей таблицы. Отменяем оба редактора и проверяем, что исходные товары сохранены.
Где и как запускать
Модуль новой обычной формы внешней обработки. Только толстый клиент, обычные формы; не серверный модуль и не управляемая форма.
Подготовка
Это обычная форма, не управляемая: используйте толстый клиент с обычными формами в отдельной учебной базе. Создайте новую внешнюю обработку, обычную форму и её реквизит Товары типа ТаблицаЗначений. Рабочие документы и справочники не нужны.
В редакторе формы добавьте табличное поле ТаблицаТоваров, свойство Данные свяжите с реквизитом Товары. Добавьте обычную кнопку УчебнаяКоманда, её действие свяжите с процедурой УчебнаяКоманда. ПриОткрытии свяжите с одноимённым событием формы.
Каждый урок — отдельный полный модуль этой учебной формы. Он заново создаёт в памяти Книгу (3) и Ручку (1), а СоздатьКолонки удаляет прежние колонки только своего табличного поля. Не вставляйте код в рабочую форму с настроенными колонками.
Откройте форму, затем нажмите учебную кнопку. Изменения данных и оформления относятся только к реквизиту внешней обработки в памяти. Здесь нет Записать, обращения к рабочим данным или проверки интерфейса реальной УТ 10.3.
Процедура ПриОткрытии()
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Товары.Колонки.Добавить("Выбран", Новый ОписаниеТипов("Булево"));
Книга = Товары.Добавить();
Книга.Код = "A-01";
Книга.Наименование = "Книга";
Книга.Количество = 3;
Книга.Выбран = Ложь;
Ручка = Товары.Добавить();
Ручка.Код = "B-02";
Ручка.Наименование = "Ручка";
Ручка.Количество = 1;
Ручка.Выбран = Ложь;
Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
Таблица.СоздатьКолонки();
Таблица.АвтоВводНовойСтроки = Ложь;
Если Товары.Количество() <> 2 Тогда
ВызватьИсключение "Ожидались два собственных учебных товара";
КонецЕсли;
Таблица.ТекущаяСтрока = Товары[0];
Таблица.ТолькоПросмотр = Ложь;
Таблица.ИзменятьСоставСтрок = Истина;
КонецПроцедуры
Процедура УчебнаяКоманда(Кнопка)
Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
Если Товары.Количество() <> 2 Тогда
ВызватьИсключение "Переоткройте форму с двумя исходными товарами";
КонецЕсли;
Таблица.ТекущаяСтрока = Товары[0];
Таблица.СкопироватьСтроку();
Таблица.ЗакончитьРедактированиеСтроки(Истина);
Сообщить(Товары.Количество() = 2);
Таблица.ДобавитьСтроку();
Таблица.ЗакончитьРедактированиеСтроки(Истина);
Таблица.ОбновитьСтроки();
Сообщить(Товары.Количество() = 2);
Сообщить(Товары.Итог("Количество") = 4);
КонецПроцедурыРазбор по шагам
Разрешаем изменение состава только собственной таблицы в памяти.
Перед копированием устанавливаем текущей существующую книгу.
СкопироватьСтроку соответствует интерактивному копированию, не методу Скопировать таблицы значений.
ЗакончитьРедактированиеСтроки(Истина) отменяет новую строку копирования. Затем аналогично отменяем новую пустую строку.
После обновления отображения проверяем обе отмены: строк 2, суммарное количество 4.
Как проверить результат
Три сообщения Истина при исходной форме.
Обработчик выполняет обе отмены сразу; новые редакторы не остаются открытыми.
Ожидаемый результат
Показано управление интерактивными редакторами без сохранения новых строк.
На что обратить внимание
Это не отмена ранее записанных документов и не транзакция базы.
В рабочем источнике данных обработчики создания строк могут иметь побочные эффекты; здесь используется новая собственная внешняя обработка без таких обработчиков.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.