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

Настройка кнопок в редакторе ячейки

Настройка полей ввода в ячейках таблиц и табличных форм происходит одинаково. Поля ввода в редактируемых ячейках настраиваются при помощи дополнительных параметров редактирования. Также можно настроить кнопки для поля ввода. Для этого в параметре кнопки указывается строка описания кнопок поля ввода. При редактировании строковых полей ввода не осуществляется внутренняя обработка кнопок со стандартным действием, поэтому для выполнения некотрых действий при нажатии на кнопку в редакторе ячейке нужно задать собственную обработку нажатия. В обработчике кнопка_редактора(ТАБЛИЦА.кнопка_редактора, ТАБ_ФОРМА.кнопка_редактора ) задается алгоритм действий при нажатии на кнопку редактора.

В примере реализована обработка нажатия на кнопку в редакторе строковой ячейки. При редактировании ячеек столбца "название" нажатие на специальную кнопку внутри редактора открывает диалог выбора названия объекта аналитики из ветки "Товары".

Пример

...
ТАБЛИЦА: Таблица1 = [   ...
                        редактирование = {Реадктирование_таб},
                        сохранение = {Сохранение},
                        кнопка_редактора = {Кнопка_редактора} ];
ФУНКЦИЯ ЦЕЛОЕ: Реадктирование_таб(ПЕРЕМ ТАБЛИЦА: элемент; 
ЦЕЛОЕ: столбец; ЦЕЛОЕ: строка; ПЕРЕМ *: знач; ПЕРЕМ СТРОКА: парам)
  ВЫБОР (столбец)
    #2: знач = товар[строка].название
        парам = "кнопки = D{диалог}"
        РЕЗУЛЬТАТ = РЕД_СТРОКА       
  ИНАЧЕ
    РЕЗУЛЬТАТ = РЕД_СТАНДАРТ
  КОНЕЦ_ВЫБОРА
КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ Сохранение(ПЕРЕМ ТАБЛИЦА: элемент; ЦЕЛОЕ: столбец; ЦЕЛОЕ: строка; *: знач)
  ВЫБОР (столбец)
     #2: товар[строка].название = СТРОКА(знач)
  КОНЕЦ_ВЫБОРА
КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ЛОГИКА: Кнопка_редактора(ПЕРЕМ ТАБЛИЦА: элемент; 
ЦЕЛОЕ: столбец; ЦЕЛОЕ: строка; СТРОКА: код; ПЕРЕМ *: знач)
  ВЫБОР(код)
     # "диалог":
        ПЕРЕМ АНАЛИТИКА: об;
        КОНСТ ветка = "ТОВАРЫ"
        ПЕРЕМ ДИАЛОГ_АНАЛИТ: выб_длг
        выб_длг.заголовок = "Выберите товары"
        выб_длг.абс_код = ДА
        выб_длг.выбор_множ = НЕТ
        выб_длг.состояния[1] = [корень = ветка]
        ЕСЛИ выб_длг.ПОКАЗАТЬ ТО
          об._код = выб_длг.выд_одиноч.код
          об.СЧИТАТЬ
          знач = об._название
        КОНЕЦ_ЕСЛИ
        РЕЗУЛЬТАТ = ДА
  ИНАЧЕ
    РЕЗУЛЬТАТ = НЕТ
  КОНЕЦ_ВЫБОРА 
КОНЕЦ_ФУНКЦИИ
...

См. также: