Обработчик ТАБ_ФОРМА.редактирование
Обработчик события редактирование вызывается при запросе редактирования ячейки табличной формы, когда в атрибутах ячейки установлены признаки разрешения редактирования и специального редактирования. Встроенный механизм редактирования ячеек табличной формы имеет много возможностей, но иногда может потребоваться непосредственно вмешаться в процесс редактирования ячейки:
- для тонкой настройки редактора (например, добавления собственных кнопок);
- для создания редактора, не соответствующего типу данных ячейки (например, выпадающего списка вместо поля ввода строки);
- для показа диалога вместо создания редактора в ячейке.
ФУНКЦИЯ ЦЕЛОЕ: <имя функции>(ПЕРЕМ ТАБ_ФОРМА: форма; ТФ_ЯЧЕЙКА: ячейка; ПЕРЕМ *: знач; ПЕРЕМ СТРОКА: парам)
Параметры
- форма
- Экземпляр табличной формы.
- ячейка
- Ячейка, для которой активируется редактирование.
- знач
- Значение, соответствующее текущим данным ячейки. Это значение может быть изменено перед подстановкой в редактор, в т.ч. заменено значением другого типа.
- парам
- дополнительные параметры редактора в ячейке.
Возвращаемое значение
Значение одной из констант РЕД_.
Обработчик сохранение позволяет выполнить сохранение отредактированных данных в ячейке.
В дополнительных параметрах редактора, кроме прочего, можно задать список пользовательских кнопок. Обработка нажатия таких кнопок происходит в обработчике кнопка_редактора.
Обработчик нажатие может предотвратить редактирование ячейки при клике мыши или нажатии клавиши Enter. При вводе с клавиатуры редактирование ячейки начинается без вызова обработчика нажатие. Поэтому подтверждение изменения данных лучше запрашивать в обработчике редактирование.
Параметры редактирования ячеек
Параметры редактирования ячеек служат для дополнительной настройки поля ввода, создаваемого в ячейке таблицы. Содержимое строки параметров зависит от типа создаваемого поля ввода, т.е. возвращенной константы РЕД_… . Для большинства полей ввода параметры задаются стандартной строкой параметров. В стандартной строке параметров пары <параметр> = <значение> разделяются ";". В значениях параметров не должно содержаться символа ";". Значение главного параметра может указываться в начале строки без имени параметра.
Перед строкой параметров поля ввода может указываться фиксированный или настраиваемый формат в строковом представлении. Формат указывается в начале строки через разделитель "||" от остальных параметров. Пример строки параметров с настраиваемым форматом для вещественных чисел (РЕД_ЧИСЛО): "F(@Цена)||спин=0.1;кнопки=SE*".
Форматы используются только для чисел, логики, дат и времени. Тип указанного формата должен соответствовать типу элемента, т.е. при возврате РЕД_ДАТА нужно указывать формат D(...) и т.д.
При вызове обработчика редактирование значение парам приходит заполненным в соответствии с типом, форматом и другими параметрами ячейки (например, диапазоном значений). При явном указании формата, параметры поля ввода, отвечающие за формат, заменяются. Например, в формате ячейки задан вывод чисел с 2-мя десятичными знаками. При вызове обработчика редактирование значение парам будет содержать фрагмент "точность=2". Если добавить в начало строки параметров явное указание формата с 3-мя десятичными знаками, то это будет эквивалентно ручной замене отвечающего за точность фрагмента строки параметров на "точность=3".
В качестве параметров редактирования могут выступать следующие строки:
-
РЕД_ЧИСЛО – стандартная строка параметров:
параметр тип по умолчанию комментарий точность целое 2* Количество знаков после точки, главный параметр. фикс логика 1* Фиксированная точка. округл логика 0 Округление. мин число 0 Минимальное значение. макс число 0 Максимальное значение. кнопки строка "" Описание кнопок. -
РЕД_ЦЕЛОЕ – стандартная строка параметров:
параметр тип по умолчанию комментарий мин целое 0 Минимальное значение. макс целое 0 Максимальное значение. кнопки строка "" Описание кнопок. -
РЕД_СТРОКА – стандартная строка параметров:
параметр тип по умолчанию комментарий предел целое -1 Предельная длина вводимого текста, если <= 0, то без ограничений. Главный параметр. нов_строка логика 0 При нажатии клавиши Enter в многострочном редакторе вводится новая строка, а не завершается редактирование ячейки. перенос логика 0 В многострочном редакторе происходит перенос текста при достижении правой границы. полоса_г логика 0 Отображается горизонтальная полоса прокрутки. полоса_в логика 0 Отображается вертикальная полоса прокрутки. пароль логика 0 Вместо символов отображаются * (только в однострочном редакторе). файл логика 0 Включает режим ввода пути к файлу или папке (только в однострочном редакторе). При перетаскивании из "Проводника" в редактор подставляется полный путь к файлу или папке. Также при ручном вводе текста в выпадающем списке предлагаются существующие файлы и папки. только_чтение логика 0 Редактор не позволяет непосредственный ввод текста, но кнопки могут быть нажаты. кнопки строка "" Описание кнопок. -
РЕД_ЛОГИКА – стандартная строка параметров:
параметр тип по умолчанию комментарий да строка ""* Текст, обозначающий истинное значение, пустая строка соответствует стандартному тексту "ДА". нет строка ""* Текст, обозначающий ложное значение, пустая строка соответствует стандартному тексту "НЕТ". -
РЕД_ДАТА – стандартная строка параметров:
параметр тип по умолчанию комментарий мин дата 01.01.2001 Минимальное значение. макс дата 01.01.2001 Максимальное значение. кнопки строка “” Описание кнопок. -
РЕД_ВРЕМЯ – стандартная строка параметров:
параметр тип по умолчанию комментарий мин время 00:00:00:00 Минимальное значение макс время 00:00:00:00 Максимальное значение сек логика 1* Возможность ввода секунд. сотые логика 1* Возможность ввода сотых долей секунды. кнопки строка "" Описание кнопок. -
РЕД_ДАТА_ВРЕМЯ – стандартная строка параметров:
параметр тип по умолчанию комментарий мин дата 01.01.2001 Минимальное значение. макс дата 01.01.2001 Максимальное значение. сек логика 1* Возможность ввода секунд. сотые логика 1* Возможность ввода сотых долей секунды. часовой_пояс целое 0* Временная поправка часового пояса в форме количества секунд разницы между локальным поясным временем и UTC. Для западного полушария поправка отрицательная. Например, для Москвы (часовой пояс +03:00) нужно указать 10800 (3 * 3600). кнопки строка “” Описание кнопок. -
Для РЕД_КОД: корень и параметры поля редактирования кода объекта аналитики (аналогично полям корень и параметры элемента управления ВВОД_КОДА). Корень и параметры представляются в следующем формате: <корень>;<параметры>
- Для РЕД_СПИСОК и РЕД_ВЫБОР: задаются строки выпадающего списка через запятую: <строка1>, <строка2>, ... , <строкаN>. Для задания другого разделителя списка можно указать первым символом $, а за ним требуемый символ-разделитель. Например, для использования звездочки в качестве разделителя элементов списка надо указать следующую строку: "$*Альфа*Бета*Гамма", что эквивалентно "Альфа,Бета,Гамма". Для задания пустого элемента ("") используется специальное имя "_EMPTY_".
* – если формат указан явно в строке параметров (через "||"), то значение этого параметра игнорируется.
Пример использования обработчика редактирование.