ТабличноеПоле.ИзменитьСтроку

Методы · ChangeRow

Начинает интерактивное изменение данных текущей строки, аналогично выполнению команды "Изменить".

Синтаксис

ИзменитьСтроку()

Примеры платформы

ЭлементыФормы.ТабличноеПоле.ИзменитьСтроку();
Полное описание, параметры и ограничения

ТабличноеПоле.ИзменитьСтроку (TableBox.ChangeRow)

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

ИзменитьСтроку (ChangeRow)

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

Синтаксис:
ИзменитьСтроку()
Описание:

Начинает интерактивное изменение данных текущей строки, аналогично выполнению команды "Изменить".

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

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

Примечание:
Режим редактирования устанавливается, если текущая колонка доступна для редактирования. Если первая колонка не редактируемая (например, картинка), рекомендуется устанавливать нужную текущую колонку.
Если табличное поле связано с набором записей регистра сведений, то записи можно изменять "вручную" только если для регистра установлен режим записи "Независимый" (задается при конфигурировании). Если набор записей принадлежит регистру накопления либо для регистра сведений установлен режим записи "Подчинение регистратору", то "ручное" изменение записей не допускается.
Пример:

ЭлементыФормы.ТабличноеПоле.ИзменитьСтроку();

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

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

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

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

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

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

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

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

Подготовка

  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С» и не аффилирован с ней.