Руководство разработчика

Редактирование и сохранение в ячейках табличной формы

Главной особенностью использования обработчиков редактирование и сохранение является то, что они используются в случае установленного у ячейки признака специального редактирования в поле Специальное Редактирование, доступ к которому осуществляется через Инспектор объектов или атрибуты ячейки. Это означает, что при запросе редактирования ячейки не используется стандартный механизм редактирования содержимого ячейки, а вызывается обработчик редактирование, после которого вызывается обработчик сохранение для принятия всех изменений в силу.

В обработчике редактирования можно настраивать тип поле ввода, создаваемого при редактировании ячейки. Настраиваемый тип поля ввода позволяет реализовать принцип "вижу одно – редактирую другое". Настройка типа поля ввода осуществляется при помощи возвращаемого значения констант РЕД_... обработчиком. При помощи дополнительных параметра редактора в ячейке можно устанавливать минимальные и максимальные вводимые значения, максимальную длину вводимого текста, точность числового значения и т.д.

В обработчике сохранения возвращаемое значение имеет ряд особенностей. Если тип поля ввода в ячейке установлен не в соответствии с типом данных ячейки, то воспользоваться стандартным механизмом сохранения значения в ячейке( т.е. возвращаемое значение обработчика - НЕТ) нельзя, так как типы редактируемого и сохраняемого значений отличаются. Поэтому в таком случае в обработчике сохранения возвращаемое значение - ДА и используется метод УСТ_ДАННЫЕ_ЯЧЕЙКИ.

Пример

Пример иллюстрирует редактирования ячеек столбца при помощи выпадающего списка.

  ...
  ПОДМЕНА редактирование = {Редактирование};
  ПОДМЕНА сохранение = {Сохранение};
  
  ФУНКЦИЯ ЦЕЛОЕ: Редактирование(ПЕРЕМ ТАБ_ФОРМА: форма; ТФ_ЯЧЕЙКА: ячейка; 
  ПЕРЕМ *: знач; ПЕРЕМ СТРОКА: парам)
    парам = "пачка, упаковка"
    РЕЗУЛЬТАТ = РЕД_СПИСОК
  КОНЕЦ_ФУНКЦИИ

  ФУНКЦИЯ ЛОГИКА: Сохранение(ПЕРЕМ ТАБ_ФОРМА: форма; ТФ_ЯЧЕЙКА: ячейка; *: знач)
    РЕЗУЛЬТАТ = НЕТ
  КОНЕЦ_ФУНКЦИИ
  ...

См. также: