ТабличноеПоле.ЗакончитьРедактированиеСтроки

Методы · EndEditRow

Позволяет закончить или отменить редактирование текущей строки.

Синтаксис

ЗакончитьРедактированиеСтроки(<ОтменаРедактирования>)
Полное описание, параметры и ограничения

ТабличноеПоле.ЗакончитьРедактированиеСтроки (TableBox.EndEditRow)

ТабличноеПоле (TableBox)

ЗакончитьРедактированиеСтроки (EndEditRow)

Доступен, начиная с версии 8.0.

Синтаксис:
ЗакончитьРедактированиеСтроки(<ОтменаРедактирования>)
Параметры:

<ОтменаРедактирования> (обязательный)
Тип: Булево.
Если данный параметр имеет значение Истина, то происходит отмена редактирования строки.
Описание:

Позволяет закончить или отменить редактирование текущей строки.

Доступность:

Толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Отменить копирование и добавление интерактивной строки

Копирование и добавление запускают редактор новой строки своей таблицы. Отменяем оба редактора и проверяем, что исходные товары сохранены.

Где и как запускать

Модуль новой обычной формы внешней обработки. Только толстый клиент, обычные формы; не серверный модуль и не управляемая форма.

Подготовка

  1. Это обычная форма, не управляемая: используйте толстый клиент с обычными формами в отдельной учебной базе. Создайте новую внешнюю обработку, обычную форму и её реквизит Товары типа ТаблицаЗначений. Рабочие документы и справочники не нужны.

  2. В редакторе формы добавьте табличное поле ТаблицаТоваров, свойство Данные свяжите с реквизитом Товары. Добавьте обычную кнопку УчебнаяКоманда, её действие свяжите с процедурой УчебнаяКоманда. ПриОткрытии свяжите с одноимённым событием формы.

  3. Каждый урок — отдельный полный модуль этой учебной формы. Он заново создаёт в памяти Книгу (3) и Ручку (1), а СоздатьКолонки удаляет прежние колонки только своего табличного поля. Не вставляйте код в рабочую форму с настроенными колонками.

  4. Откройте форму, затем нажмите учебную кнопку. Изменения данных и оформления относятся только к реквизиту внешней обработки в памяти. Здесь нет Записать, обращения к рабочим данным или проверки интерфейса реальной УТ 10.3.

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

Процедура УчебнаяКоманда(Кнопка)
    Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
    Если Товары.Количество() <> 2 Тогда
        ВызватьИсключение "Переоткройте форму с двумя исходными товарами";
    КонецЕсли;
    Таблица.ТекущаяСтрока = Товары[0];
    Таблица.СкопироватьСтроку();
    Таблица.ЗакончитьРедактированиеСтроки(Истина);
    Сообщить(Товары.Количество() = 2);
    Таблица.ДобавитьСтроку();
    Таблица.ЗакончитьРедактированиеСтроки(Истина);
    Таблица.ОбновитьСтроки();
    Сообщить(Товары.Количество() = 2);
    Сообщить(Товары.Итог("Количество") = 4);
КонецПроцедуры

Разбор по шагам

  1. Разрешаем изменение состава только собственной таблицы в памяти.

  2. Перед копированием устанавливаем текущей существующую книгу.

  3. СкопироватьСтроку соответствует интерактивному копированию, не методу Скопировать таблицы значений.

  4. ЗакончитьРедактированиеСтроки(Истина) отменяет новую строку копирования. Затем аналогично отменяем новую пустую строку.

  5. После обновления отображения проверяем обе отмены: строк 2, суммарное количество 4.

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

  1. Три сообщения Истина при исходной форме.

  2. Обработчик выполняет обе отмены сразу; новые редакторы не остаются открытыми.

Ожидаемый результат

Показано управление интерактивными редакторами без сохранения новых строк.

На что обратить внимание

  1. Это не отмена ранее записанных документов и не транзакция базы.

  2. В рабочем источнике данных обработчики создания строк могут иметь побочные эффекты; здесь используется новая собственная внешняя обработка без таких обработчиков.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Начать и отменить интерактивное редактирование строки

Кнопка начинает изменение текущей собственной строки и сразу отменяет режим редактирования. Это не транзакция и не отмена записи документа.

Где и как запускать

Модуль новой обычной формы внешней обработки. Только толстый клиент, обычные формы; не серверный модуль и не управляемая форма.

Подготовка

  1. Это обычная форма, не управляемая: используйте толстый клиент с обычными формами в отдельной учебной базе. Создайте новую внешнюю обработку, обычную форму и её реквизит Товары типа ТаблицаЗначений. Рабочие документы и справочники не нужны.

  2. В редакторе формы добавьте табличное поле ТаблицаТоваров, свойство Данные свяжите с реквизитом Товары. Добавьте обычную кнопку УчебнаяКоманда, её действие свяжите с процедурой УчебнаяКоманда. ПриОткрытии свяжите с одноимённым событием формы.

  3. Каждый урок — отдельный полный модуль этой учебной формы. Он заново создаёт в памяти Книгу (3) и Ручку (1), а СоздатьКолонки удаляет прежние колонки только своего табличного поля. Не вставляйте код в рабочую форму с настроенными колонками.

  4. Откройте форму, затем нажмите учебную кнопку. Изменения данных и оформления относятся только к реквизиту внешней обработки в памяти. Здесь нет Записать, обращения к рабочим данным или проверки интерфейса реальной УТ 10.3.

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

Процедура УчебнаяКоманда(Кнопка)
    Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
    Текущая = Таблица.ТекущаяСтрока;
    Если Текущая = Неопределено Тогда
        Сообщить("Выберите Книгу или Ручку");
        Возврат;
    КонецЕсли;
    Таблица.ИзменитьСтроку();
    Таблица.ЗакончитьРедактированиеСтроки(Истина);
    Таблица.ОбновитьСтроки();
    Сообщить(Товары.Количество() = 2);
    Сообщить(Товары.Итог("Количество") = 4);
    Сообщить(Не Таблица.ИзменятьСоставСтрок);
КонецПроцедуры

Разбор по шагам

  1. Доступность и ТолькоПросмотр задают состояние своего элемента интерфейса.

  2. ИзменятьСоставСтрок запрещает пользователю интерактивно добавлять и удалять строки. Это не запрет изменения значения поля.

  3. РежимВводаСтрок описывает положение новой строки, но новые строки в этом упражнении не создаются.

  4. ИзменитьСтроку аналогично интерактивной команде Изменить. ЗакончитьРедактированиеСтроки(Истина) отменяет редактирование текущей строки.

  5. ОбновитьСтроки обновляет отображение собственного элемента, не перечитывает базу. Проверяем количество строк и сумму.

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

  1. Три сообщения Истина при исходных учебных данных.

  2. Никакая новая строка, документ или транзакция не создаётся.

Ожидаемый результат

Показаны границы интерактивного редактирования в обычной форме.

На что обратить внимание

  1. Отмена редактирования не равна ОтменитьТранзакцию и не откатывает ранее записанные объекты.

  2. Если вручную изменили учебное количество до нажатия кнопки, сумма может отличаться: переоткройте форму для исходного состояния.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.