Версии: 4.0.12+
В таблицах
Обработчики описаны в порядке их вызова.
PHP (файл [d]s_*.php). onPrepareGrid($parameters)
Вызывается перед чтением данных для таблицы. Используется для подмены источника таблицы.
Параметры: $parameters - ассоциативный массив с ключами
grid_type - Тип таблицы. Доступны значения:
grid (реестр записей),
window (окно лупы),
detail (закладка).
source_type - Откуда открыта таблица. Указывается, если тип таблицы - window. Доступные значения:
dict (справочник),
grid (реестр записей раздела, который используется в данном случае как справочник).
source_name - Имя источника описания grid
Если тип таблицы - grid, то указывается xml объект того раздела меню, для которого нужно нарисовать grid.
Если тип таблицы - window, то указывается либо xml объект раздела меню, либо xml объект описания справочника.
Если тип таблицы - detail, то указывается xml объект того раздела меню, для которого нужно закладку.
detail_name - Имя закладки, которую нужно нарисовать.
detail_parent_record_id - ID родительской записи.
sql_parameters - Параметры для SQL запроса.
Возвращаемое значение: модифицированный $parameters. В $paramaters может быть добавлен атрибут parameters, содержащий параметры для SQL запроса таблицы, которые не надо смешивать с sql_parameters. Только эти параметры будут переданы в запрос для извлечения данных карточки записи.
PHP (файл [d]s_*.php). onReplaceGrid()
Вызывается перед чтением данных для таблицы. Используется для полной замены содержимого, например, для отрисовки нестандартного раздела.
Параметры: нет.
Возвращаемое значение: html текст.
PHP (файл [d]s_*.php). onPrepare($parameters)
Перед редактированием/вставкой новой записи.
Параметры: $parameters - ассоциативный массив с ключами
parent_type - тип таблицы (grid, dict, window, detail),
source_name - Имя источника описания карточки,
detail_name - Код вкладки,
mode - режим редактирования (insert, update),
detail_column_value - Для типа родителя detail. Значение id записи родительской таблицы.
Возвращаемое значение: значения по умолчанию в ключе FieldValues.
Пример
<?php
public function onPrepare($params)
{
$result = GetDictionaryValues(
array (
array ('Dict' => 'IssueState', 'Code' => 'Plan')
), $this->connection);
//Ответственный
$result = GetDefaultOwner(GetUserName(), $this->connection, $result);
//Даты
$Date = GetCurrentDBDate($this->connection);
$result = FieldValueFormat('StartDate', $Date, null, $result);
$result = FieldValueFormat('PlanStartDate', $Date, null, $result);
return $result;
}
Javascript (файл [d]g_*.js). onOpen()
Параметры: нет.
Возвращаемое значение: нет.
Пример
onOpen: function () {
// Кнопка печать...
g_InsertUserButtons(this.el.id, [
{
name: T.t('Печать') + '…',
buttons: [
{
name: T.t('История'),
onclick: "irisControllers.objects.g_Account" + this.el.id +
".onPrint('" + this.el.id + "', 'r_AccountHistory');"
}
]
}
], 'iris_Account');
}
PHP (файл [d]s_*.php). onBeforePost($parameters)
Параметры: $parameters - ассоциативный массив с ключами
card_params - параметры с которыми была открыта карточка (4.0.37+),
old_data - Старые значения,
new_data - Новые значения.
Возвращаемое значение:
пусто (если ничего не требуется менять),
модифицированные Новые значения,
в случае ошибки - текст ошибки в ассоциативном массиве с ключом Error.
Пример
<?php
public function onBeforePost($parameters)
{
$name = $this->getActualValue(null, $parameters['new_data'], 'name');
if (iris_strpos($name, '"') !== false) {
return array('Error' => 'В коротком названии не допускаются кавычки');
}
$fields = FieldValueFormat('Description', 'Test onBeforePost()');
return $this->mergeFields($parameters['new_data'], $fields);
}
PHP (файл [d]s_*.php). onAfterPost($tableName, $recordId, $oldData, $newData)
Параметры:
$tableName - Название таблицы,
$recordId - Id записи,
$oldData - Старые значения,
$newData - Новые значения.
Возвращаемое значение: нет.
Пример
<?php
public function onAfterPost($table, $id, $old_data, $new_data) {
$parent_id = $this->getActualValue($old_data, $new_data,
strtolower($this->_parent) . 'id');
if (!$parent_id) {
return;
}
// Расчёт суммы документа
$this->updateParentAmount($parent_id);
// Перенумеруем продукты при необходимости
$this->renumberProducts($old_data, $new_data, $id);
}
Javascript (файл [d]g_*.js). onAfterFieldSave(recordId, fieldName)
Для редактируемой таблицы.
Параметры:
recordId - Id записи
fieldName - название колонки
Возвращаемое значение: нет.
Javascript (файл [d]g_*.js). onAfterDelete()
Параметры: нет.
Возвращаемое значение: нет.
В карточках
Обработчики описаны в порядке их вызова.
PHP (файл [d]s_*.php). onPrepare($parameters)
После чтения данных карточки, перед подготовкой данных для отображения карточки.
Параметры:
$parameters - ассоциативный массив с ключами
parent_type - тип родителя (grid, dict, window, detail),
parent_id - Id родительской таблицы,
source_type - Указывается, если тип родителя window. Где хранится описание данной карточки (grid или dict),
source_name - Имя источника описания карточки,
detail_name - Код вкладки,
mode - режим редактирования (insert, update),
rec_id - Id записи (для режима редактирования update),
detail_column_value - Для типа родителя detail. Значение id записи родительской таблицы
card_params - Параметры карточки,
Возвращаемое значение: значения по умолчанию в ключе FieldValues.
Javascript (файл [d]c_*.js). onOpen()
Параметры: нет.
Возвращаемое значение: нет.
Пример
onOpen: function() {
this.getField('Number').attr('readonly', 'readonly');
}
PHP (файл [d]s_*.php). onBeforePost($parameters)
До сохранения значений карточки.
Параметры:
$parameters - ассоциативный массив с ключами
old_data - $old_values,
new_data - $table_values_inserting,
Возвращаемое значение: значения по умолчанию в ключе FieldValues или ошибка в ключе Error.
PHP (файл [d]s_*.php). onAfterPost($tableName, $recordId, $oldData, $newData)
После сохранения значений карточки.
Параметры:
$tableName - Название таблицы,
$recordId - Id записи,
$oldData - Старые значения,
$newData - Новые значения.
Возвращаемое значение: Error в случае ошибки.
Javascript (файл [d]c_*.js). onAfterSave(recordId, mode)
Параметры:
recordId - Id записи
mode - режим редактирования (insert, update)
Возвращаемое значение: нет.
В отчётах
Javascript. onOpen()
Вызывается после открытия отчета.
Параметры: нет.
Возвращаемое значение: нет.