Редактирование и сохранение в ячейках табличной формы
Главной особенностью использования обработчиков редактирование и сохранение является то, что они используются в случае установленного у ячейки признака специального редактирования в поле Специальное Редактирование, доступ к которому осуществляется через Инспектор объектов или атрибуты ячейки. Это означает, что при запросе редактирования ячейки не используется стандартный механизм редактирования содержимого ячейки, а вызывается обработчик редактирование, после которого вызывается обработчик сохранение для принятия всех изменений в силу.
В обработчике редактирования можно настраивать тип поле ввода, создаваемого при редактировании ячейки. Настраиваемый тип поля ввода позволяет реализовать принцип "вижу одно – редактирую другое". Настройка типа поля ввода осуществляется при помощи возвращаемого значения констант РЕД_... обработчиком. При помощи дополнительных параметра редактора в ячейке можно устанавливать минимальные и максимальные вводимые значения, максимальную длину вводимого текста, точность числового значения и т.д.
В обработчике сохранения возвращаемое значение имеет ряд особенностей. Если тип поля ввода в ячейке установлен не в соответствии с типом данных ячейки, то воспользоваться стандартным механизмом сохранения значения в ячейке( т.е. возвращаемое значение обработчика - НЕТ) нельзя, так как типы редактируемого и сохраняемого значений отличаются. Поэтому в таком случае в обработчике сохранения возвращаемое значение - ДА и используется метод УСТ_ДАННЫЕ_ЯЧЕЙКИ.
Пример
Пример иллюстрирует редактирования ячеек столбца при помощи выпадающего списка.
... ПОДМЕНА редактирование = {Редактирование}; ПОДМЕНА сохранение = {Сохранение}; ФУНКЦИЯ ЦЕЛОЕ: Редактирование(ПЕРЕМ ТАБ_ФОРМА: форма; ТФ_ЯЧЕЙКА: ячейка; ПЕРЕМ *: знач; ПЕРЕМ СТРОКА: парам) парам = "пачка, упаковка" РЕЗУЛЬТАТ = РЕД_СПИСОК КОНЕЦ_ФУНКЦИИ ФУНКЦИЯ ЛОГИКА: Сохранение(ПЕРЕМ ТАБ_ФОРМА: форма; ТФ_ЯЧЕЙКА: ячейка; *: знач) РЕЗУЛЬТАТ = НЕТ КОНЕЦ_ФУНКЦИИ ...