<?php
run_query('DELETE FROM `' . $config['table_prefix'] . 'calc_template`');
$sql_query = 'INSERT INTO `' . $config["table_prefix"] . 'calc_template` ';
$sql_query .= <<<'EOT'
(`id`, `name`, `calculate_tpl`, `params`, `type`, `tpl_name`, `javascript_tpl`, `tpl_category`, `calc_types`) VALUES
(1,	'Сумма из подтаблицы в основную запись',	'if ($line[\'{$gen_field.link_field_id}\'][\'raw\'] > 0) {\n    if ($event[\'type\'] == \'delete\') {\n        $sql = \' AND id <> \' . $ID;\n    }\n    $filter = (int)\"{$filter}\";\n    $filter = sql_select_array(FILTERS_TABLE, \'id=\' . $filter);\n    if ($filter[\'value\']) {\n        $filter[\'value\'] = filter_tpl_replace($filter[\'value\']);\n    } else {\n        $filter[\'value\'] = \'1 = 1\';\n    }\n    $result = data_select_field($table_id, \"sum({$cur_field}) as f_sum\", \"status = 0 AND {$gen_field.link_field_id} = \" . $line[\'{$gen_field.link_field_id}\'][\'raw\'] . $sql . \" AND \" . $filter[\'value\']);\n    $row = sql_fetch_assoc($result);\n    $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'] = $row[\'f_sum\'];\n}',	'{\n    \"title\": \"Сумма из подтаблицы в основную запись\",\n    \"help\": \"tpl_sum_from_subtable\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, по которому считать сумму\",\n            \"type_field\": 1,\n            \"help\": \"tpl_sum_field\"\n        },\n        \"filter\": {\n            \"type\": \"Filter\",\n            \"name\": \"filter\",\n            \"description\": \"Выберите фильтр\",\n            \"help\": \"tpl_sel_filter\"\n        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите основную таблицу\",\n            \"field_description\": \"Выберите поле, в которое подтягивать сумму\",\n            \"only_parent\": true,\n            \"type_field\": 1,\n            \"help\": \"tpl_sel_table\",\n            \"field_help\": \"tpl_sel_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cur_field\"\n        },\n        {\n            \"type\": 4,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 7,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'calc_1.tpl',	'',	1,	'[2]'),
(2,	'Заполнение поля значением другого',	'if ({$list} == 0) {\n    $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\n} else {\n    if (!$line[\'{$cur_field1}\']) {\n        $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\n    }\n}',	'{\n    \"title\": \"Заполнение поля значением другого\",\n    \"help\": \"tpl_field_to_field\",\n    \"parameters\": {\n        \"cur_field1\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field1\",\n            \"help\": \"receiver_field\",\n            \"description\": \"Выберите поле-получатель\"\n        },\n        \"cur_field2\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field2\",\n            \"help\": \"source_field\",\n            \"description\": \"Выберите поле-источник\"\n        },\n        \"list\": {\n            \"type\": \"List\",\n            \"name\": \"list\",\n            \"help\": \"Overwrite_field\",\n            \"description\": \"Перезаписать поле\",\n            \"values\": {\n              \"0\": \"Да\",\n              \"1\": \"Нет\"\n            }\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cur_field2\"\n        }\n    ]\n}',	'calc',	'calc_2.tpl',	'',	5,	'[1]'),
(3,	'Изменение поля типа дата на количество дней',	'$line[\'{$cur_field3}\'] = date(\'Y-m-d H:i:s\', strtotime($line[\'{$cur_field1}\']) {$operand} $line[\'{$cur_field2}\'] * 3600 * 24);',	'{\r\n    \"title\": \"Изменение поля типа дата на количество дней\",\r\n    \"help\": \"tpl_add_to_date\",\r\n    \"parameters\": {\r\n        \"cur_field1\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field1\",\r\n            \"description\": \"Выберите исходную дату\",\r\n            \"type_field\": [\r\n                2,\r\n                12\r\n            ],\r\n            \"help\": \"tpl_date_field\"\r\n        },\r\n        \"operand\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"operand\",\r\n            \"description\": \"Выберите опцию\",\r\n            \"values\": {\r\n              \"+\": \"Прибавить\",\r\n              \"-\": \"Отнять\"\r\n            },\r\n            \"help\": \"tpl_option\"\r\n        },\r\n        \"cur_field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field2\",\r\n            \"description\": \"Выберите поле с числом дней\",\r\n            \"type_field\": 1,\r\n            \"help\": \"tpl_sel_field\"\r\n        },\r\n        \"cur_field3\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field3\",\r\n            \"description\": \"Выберите поле для записи результата\",\r\n            \"type_field\": 2,\r\n            \"help\": \"tpl_result_field\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 3,\r\n            \"field\": \"cur_field1\"\r\n        },\r\n        {\r\n            \"type\": 3,\r\n            \"field\": \"cur_field2\"\r\n        }\r\n    ]\r\n}',	'calc',	'calc_3.tpl',	'',	2,	'[1]'),
(4,	'Значение по умолчанию',	'if ($event[\'is_new_line\']) {\n    $line[\'{$cur_field}\'] = $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'];\n}',	'{\n    \"title\": \"Значение по умолчанию\",\n    \"help\": \"tpl_default_value\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, в которое подставлять значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_result_field\"\n        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите основную таблицу\",\n            \"field_description\": \"Выберите поле, из которого тянуть значение\",\n            \"only_parent\": \"true\",\n            \"help\": \"tpl_sel_table\",\n            \"field_help\": \"tpl_sel_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'calc_4.tpl',	'',	3,	'[3]'),
(5,	'Заполнение поля из поля связи',	'$line[\'{$cur_field}\'] = $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'];',	'{\r\n    \"title\": \"Заполнение поля из поля связи\",\r\n    \"help\": \"tpl_link_to_field\",\r\n    \"parameters\": {\r\n        \"cur_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field\",\r\n            \"description\": \"Выберите поле, в которое сохранять значение\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_result_field\"\r\n        },\r\n        \"gen_field\": {\r\n            \"type\": \"TableField\",\r\n            \"name\": \"gen_field\",\r\n            \"description\": \"Выберите таблицу, из которой тянуть значение\",\r\n            \"field_description\": \"Выберите поле, из которого тянуть значение\",\r\n            \"only_parent\": \"true\",\r\n            \"help\": \"tpl_sel_table\",\r\n            \"field_help\": \"tpl_sel_field\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 2,\r\n            \"field\": \"cur_field\"\r\n        }\r\n    ]\r\n}',	'calc',	'calc_5.tpl',	'',	4,	'[1]'),
(6,	'Подстановка текущей даты',	'$line[\'{$cur_field}\'] = date(\'Y-m-d H:i:s\');',	'{\n    \"title\": \"Заполнение поля текущей датой\",\n    \"help\": \"tpl_cur_date\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, в которое сохранять дату\",\n            \"type_field\": 2,\n            \"no_system\": true,\n            \"help\": \"tpl_cur_date_field\"\n        }        \n    }\n}',	'button',	'cur_date.tpl',	'',	2,	'[]'),
(7,	'Заполнение поля значением другого',	'if ({$list} == 0) {\n    $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\n} else {\n    if (!$line[\'{$cur_field1}\']) {\n        $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\n    }\n}',	'{\n    \"title\": \"Заполнение поля значением другого\",\n    \"help\": \"tpl_field_to_field\",\n    \"parameters\": {\n        \"cur_field1\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field1\",\n            \"help\": \"receiver_field\",\n            \"description\": \"Выберите поле-получатель\"\n        },\n        \"cur_field2\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field2\",\n            \"help\": \"source_field\",\n            \"description\": \"Выберите поле-источник\"\n        },\n        \"list\": {\n            \"type\": \"List\",\n            \"name\": \"list\",\n            \"help\": \"Overwrite_field\",\n            \"description\": \"Перезаписать поле\",\n            \"values\": {\n              \"0\": \"Да\",\n              \"1\": \"Нет\"\n            }\n        }\n    }\n}',	'button',	'change_field.tpl',	'',	6,	'[]'),
(8,	'Заполнение поля из поля связи',	'$line[\'{$cur_field}\'] = $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'];',	'{\n    \"title\": \"Заполнение поля из поля связи\",\n    \"help\": \"tpl_link_to_field\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, в которое сохранять значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_to_field\"\n        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите таблицу, из которой тянуть значение\",\n            \"field_description\": \"Выберите поле, из которого тянуть значение\",\n            \"only_parent\": \"true\",\n            \"help\": \"tpl_source_table\",\n            \"field_help\": \"tpl_source_field\"\n        }\n    }\n}',	'button',	'change_field_on_link.tpl',	'',	4,	'[]'),
(9,	'Смена значения поля типа «Список» при изменении поля',	'$line[\'{$put_field}\'] = \'{$put_value}\';',	'{\n    \"title\": \"Смена значения поля типа «Список» при изменении поля\",\n    \"help\": \"tpl_list_change\",\n    \"parameters\": {\n        \"put_field\": {\n        \"type\": \"Field\",\n            \"name\": \"put_field\",\n            \"type_field\": 4,\n            \"description\": \"Выберите для замены значения поле типа «Список»\",\n            \"no_system\": true,\n            \"help\": \"tpl_replace_field\"\n        },\n        \"put_value\": {\n        \"type\": \"String\",\n            \"name\": \"put_value\",\n            \"description\": \"Введите значение, которое должно быть присвоено полю типа «Список»\",\n            \"help\": \"tpl_set_value\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 2,\n            \"field\": \"put_field\"\n        }\n    ]\n}',	'calc',	'calc_7.tpl',	'',	6,	'[1]'),
(10,	'Дата (или время) из поля типа «Дата/время» в другое поле',	'if(\'{$put_value}\' == 1){\n    $line[\'{$put_field}\'] = date(\'d.m.Y\', strtotime($line[\'{$cond_field}\']));\n} else if(\'{$put_value}\' == 2){\n    $line[\'{$put_field}\'] = date(\'H:i:s\', strtotime($line[\'{$cond_field}\']));\n}',	'{\n    \"title\": \"Дата (или время) из поля типа «Дата/время» в другое поле\",\n    \"help\": \"tpl_date_to_field\",\n    \"parameters\": {\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"2\",\n            \"description\": \"Выберите поле, из которого будут тянутся данные\",\n            \"help\": \"tpl_source_field\"\n        },\n        \"put_field\": {\n            \"type\": \"Field\",\n            \"name\": \"put_field\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле, которое должно быть заполнено данными\",\n            \"no_system\": true,\n            \"help\": \"tpl_to_field\"\n        },\n        \"put_value\": {\n            \"type\": \"List\",\n            \"name\": \"put_value\",\n            \"values\":{\"1\":\"Дата\",\"2\":\"Время\"},\n            \"description\": \"Выберите данные, которые должны быть переданы\",\n            \"help\": \"tpl_list_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cond_field\"\n        }\n    ]\n}',	'calc',	'calc_8.tpl',	'',	2,	'[1]'),
(11,	'Поиск и замена значений поля',	'$line[\'{$cond_field}\'] = str_replace(\'{$give_value}\', \'{$put_value}\', $line[\'{$cond_field}\']);',	'{\n    \"title\": \"Поиск и замена значений поля\",\n    \"help\": \"tpl_replace\",\n    \"parameters\": {\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле, которое должно быть изменено\",\n            \"help\": \"tpl_to_field\"\n        },\n        \"give_value\": {\n            \"type\": \"String\",\n            \"name\": \"give_value\",\n            \"description\": \" Введите значение для поиска\",\n            \"help\": \"tpl_search_value\"\n        },\n        \"put_value\": {\n            \"type\": \"String\",\n            \"name\": \"put_value\",\n            \"description\": \"Введите значение для замены\",\n            \"help\": \"tpl_replace_value\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 2,\n            \"field\": \"cond_field\"\n        }\n    ]\n}',	'calc',	'calc_9.tpl',	'',	5,	'[1]'),
(12,	'Среднее значение из подтаблицы в основную запись',	'if($event[\'type\'] === \'delete\'){\n    $not_id = \' and id != \' . $line[\'id\'];\n}\n$filter = (int)\"{$filter}\";\n$filter = sql_select_array(FILTERS_TABLE, \'id=\' . $filter);\nif ($filter[\'value\']) {\n    $filter[\'value\'] = filter_tpl_replace($filter[\'value\']);\n} else {\n    $filter[\'value\'] = \'1 = 1\';\n}\n$res = data_select_field($table[\'id\'],\'COUNT(id) AS cnt, SUM(\' . \'{$cond_field}\' . \') AS sum\',\'status = 0 AND \' . \'{$cond_table.link_field_id}\' . \' = \' . $line[\'{$cond_table.link_field_id}\'][\'raw\'] . $not_id . \n    \" AND \" . $filter[\'value\']);\nif ($row = sql_fetch_assoc($res)) {\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $row[\'sum\'] / $row[\'cnt\'];\n} else {\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = 0;\n}\n',	'{\n    \"title\": \"Среднее значение из подтаблицы в основную запись\",\n    \"help\": \"tpl_average\",\n    \"parameters\": {\n        \"cond_table\": {\n            \"type\": \"TableField\",\n            \"name\": \"cond_table\",\n            \"only_parent\": \"true\",\n            \"description\": \"Выберите таблицу, в которую будет записан результат\",\n            \"field_description\": \"Выберите поле, в которое будет записан результат\",\n            \"help\": \"tpl_sel_table\",\n            \"field_help\": \"tpl_sel_field\"\n        },\n        \"filter\": {\n            \"type\": \"Filter\",\n            \"name\": \"filter\",\n            \"description\": \"Выберите фильтр\",\n            \"help\": \"tpl_sel_filter\"\n        },\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"1\",\n            \"description\": \"Выберите поле, по которому будет считаться среднее арифметическое\",\n            \"help\": \"tpl_source_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cond_field\"\n        },\n        {\n            \"type\": 4,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 7,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'calc_10.tpl',	'',	1,	'[2]'),
(13,	'Выбор имени или имени и отчества из ФИО',	'$array = explode(\" \", $line[\'{$cond_field}\']);\nif (\'{$put_value}\' === \'1\') {\n    $line[\'{$cond_field}\'] = $array[\'1\'];\n} else {\n    $line[\'{$cond_field}\'] = $array[\'1\'] . \' \' . $array[\'2\'];\n}',	'{\n    \"title\": \"Выбор имени или имени и отчества из ФИО\",\n    \"help\": \"tpl_explode_name\",\n    \"parameters\": {\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле, содержащее ФИО\",\n            \"help\": \"tpl_source_field\"\n        },\n        \"put_value\": {\n            \"type\": \"List\",\n            \"name\": \"put_value\",\n            \"values\":{\"1\":\"Имя\",\"2\":\"Имя и отчество\"},\n            \"description\": \"Выберите данные, которые останутся в поле.\",\n            \"help\": \"tpl_option\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cond_field\"\n        }\n    ]\n}',	'calc',	'calc_11.tpl',	'',	5,	'[1]'),
(14,	'Отмена редактирования поля',	'$line[\'{$field}\'] = $event[\'changed\'][substr(\'{$field}\',1)][\'old\'];',	'{\n    \"title\": \"Отмена редактирования поля\",\n    \"help\": \"tpl_disabled_edit_field\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Запрет редактирования поля\",\n            \"no_system\": true,\n            \"help\": \"tpl_cancel_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field\"\n        }\n    ]\n}',	'calc',	'disabled_edit_field.tpl',	'',	6,	'[1]'),
(15,	'Перевод суммы из числа в текст',	'$line[\'{$field2}\'] = num2str($line[\'{$field1}\'], \"\", \"\", 0, 0, 0, \"\");\n',	'{\n    \"title\": \"Перевод суммы из числа в текст\",\n    \"help\": \"tpl_num_to_text\",\n    \"parameters\": {\n        \"field1\": {\n            \"type\": \"Field\",\n            \"name\": \"field1\",\n            \"type_field\": \"1\",\n            \"description\": \"Выберите исходное поле(число)\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        },\n        \"field2\": {\n            \"type\": \"Field\",\n            \"name\": \"field2\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле записи суммы (текст)\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field1\"\n        }\n    ]\n}',	'calc',	'intsum_to_stringsum.tpl',	'',	5,	'[1]'),
(16,	'Изменение даты на текущую при изменении поля ',	'$line[\'{$field2}\'] = date(\'Y-m-d H:i:s\');',	'{\r\n    \"title\": \"Изменение даты на текущую при изменении поля\",\r\n    \"help\": \"tpl_change_date\",\r\n    \"parameters\": {\r\n        \"field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field2\",\r\n            \"description\": \"Выберите поле, в котором будет изменена дата\",\r\n            \"type_field\": {\"2\":\"2\"},\r\n            \"help\": \"tpl_source_field\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 2,\r\n            \"field\": \"field2\"\r\n        }\r\n    ]\r\n}',	'calc',	'calc_13.tpl',	'',	2,	'[1]'),
(17,	'Очистка поля при изменении/очистке другого',	'$line[\'{$field1}\'] = \'\';',	'{\r\n    \"title\": \"Очистка поля при изменении/очистке другого\",\r\n    \"help\": \"tpl_clear_field\",\r\n    \"parameters\": {\r\n        \"field1\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field1\",\r\n            \"description\": \"Выберите поле для замены значения\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_souce_field\"\r\n        }\r\n    }\r\n}',	'calc',	'calc_14.tpl',	'',	6,	'[1]'),
(18,	'Разница между двумя датами',	'$datetime1 = date_create($line[\'{$field}\']);\n$datetime2 = date_create($line[\'{$field1}\']);\n$interval = date_diff($datetime1, $datetime2);\n$date = $interval->format(\'%a д. %H ч. %I м.\');\n$result = str_replace(\'0 д.,\',\'\',$date);\n$result = str_replace(\'0 м.,\',\'\',$result);\n$result = str_replace(\'0 ч.,\',\'\',$result);\n$line[\'{$value}\'] = $result;',	'{\n    \"title\": \"Разница между двумя датами\",\n    \"help\": \"tpl_diff_dates\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"type_field\": 2,\n            \"description\": \"Выберите поле первой даты\",\n            \"no_system\": true,\n            \"help\": \"tpl_first_field\"\n        },\n        \"field1\": {\n            \"type\": \"Field\",\n            \"name\": \"field1\",\n            \"type_field\": 2,\n            \"description\": \"Выберите поле второй даты\",\n            \"no_system\": true,\n            \"help\": \"tpl_second_field\"\n        },\n        \"value\": {\n            \"type\": \"Field\",\n            \"name\": \"value\",\n            \"type_field\": 3,\n            \"description\": \"Выберите поле, в которое сохранять значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_to_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field\"\n        },\n        {\n            \"type\": 3,\n            \"field\": \"field1\"\n        }\n    ]\n}',	'calc',	'calc_15.tpl',	'',	2,	'[1]'),
(19,	'Сохранение даты изменения поля',	'$field = str_replace(\'f\',\'\', \'{$field}\');\nif (isset($event[\'changed\'][$field])) {\n    $line[\'{$value}\'] = date(\'Y-m-d H:i:s\');\n}',	'{\n    \"title\": \"Сохранение даты изменения поля\",\n    \"help\": \"tpl_date_changed_field\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле, которое будет проверяться на изменение\",\n            \"help\": \"tpl_check_field\"\n        },\n        \"value\": {\n            \"type\": \"Field\",\n            \"name\": \"value\",\n            \"type_field\": 2,\n            \"description\": \"Выберите поле, в которое сохранять значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_to_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field\"\n        }\n    ]\n}',	'calc',	'calc_16.tpl',	'',	2,	'[1]'),
(20,	'Сохранение пользователя, который измненил поле',	'$line[\'{$value}\'] = $user[\'id\'];',	'{\n    \"title\": \"Сохранение пользователя, который измненил поле\",\n    \"help\": \"tpl_save_user_changed_field\",\n    \"parameters\": {\n        \"value\": {\n            \"type\": \"Field\",\n            \"name\": \"value\",\n            \"type_field\": 7,\n            \"description\": \"Выберите поле, в которое сохранять значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_to_field\"\n        }\n    }\n}',	'calc',	'calc_17.tpl',	'',	6,	'[1]'),
(21,	'Математические формулы',	'$keys = [];\n$values = [];\n$fields = explode(\'&\', \'{$flex_data}\');\nforeach ($fields as $field => $value) {\n    $parts = explode(\'=\', $value);\n    array_push($keys, $parts[0]);\n    array_push($values, $parts[1]);\n}\n$func_row = str_replace($keys, $values, \'{$func_row}\');\n$keys = [\n  \'{\',\n  \'}\'\n];\n$values = [\n    \'$line[\"\',\n    \'\"]\'\n];\n$func_row = str_replace($keys, $values, $func_row);\n$func = \'$line[\"{$result}\"\"] = \' . $func_row . \';\';\neval($func);\n\n',	'{\n     \"title\": \"Математические формулы\",\n     \"help\": \"tpl_math_formulas\",\n     \"parameters\": {\n         \"field1\": {\n             \"type\": \"Field\",\n             \"name\": \"field1\",\n             \"description\": \"Выберите поле\",\n             \"type_field\": 1,\n             \"help\": \"tpl_sel_field\"\n         },\n         \"func_row\": {\n             \"type\": \"String\",\n             \"name\": \"func_row\",\n             \"description\": \"Поле записи функции\",\n             \"textarea\": true,\n             \"help\": \"tpl_func_field\"\n         },\n         \"result\": {\n             \"type\": \"Field\",\n             \"name\": \"result\",\n             \"description\": \"Выберите поле записи результата\",\n             \"type_field\": 1,\n             \"help\": \"tpl_to_field\"\n         },\n         \"flex_data\": {\n             \"type\": \"String\",\n             \"name\": \"flex_data\",\n             \"description\": \"\",\n             \"help\": \"tpl_flex_string\"\n         }\n     },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field1\"\n        }\n    ]\n}\n',	'calc',	'math_functions.tpl',	'',	6,	'[1]'),
(22,	'Сброс нумерации с нового года',	'if ($event[\'line_id\'] === \'new\') {\n    $res = data_select($table_id,\'status=0 and id!=\' . $line[\'id\'] . \' ORDER BY id DESC LIMIT 1\');\n    $row = sql_fetch_assoc($res);\n    if (date(\'Y\',strtotime($row[\'add_time\'])) >= date(\'Y\')) {\n        $line[\'{$field}\'] = $row[\'{$field}\'] + 1;\n    } else {\n        $line[\'{$field}\'] = 1;\n    }\n}\n',	'{\n    \"title\": \"Сброс нумерации с нового года\",\n    \"help\": \"tpl_calc_numeric\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле\",\n            \"type_field\": 1,\n            \"help\": \"tpl_reset_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}\n',	'calc',	'autonum.tpl',	'',	6,	'[1]'),
(23,	'Смена значения поля типа «Список»',	'$line[\'{$put_field}\'] = \'{$put_value}\';',	'{\n    \"title\": \"Смена значения поля типа «Список» при изменении поля\",\n    \"help\": \"tpl_list_change\",\n    \"parameters\": {\n        \"put_field\": {\n            \"type\": \"Field\",\n            \"name\": \"put_field\",\n            \"type_field\": 4,\n            \"description\": \"Выберите для замены значения поле типа «Список»\",\n            \"no_system\": true,\n            \"help\": \"tpl_soure_list_field\"\n        },\n        \"put_value\": {\n        \"type\": \"String\",\n            \"name\": \"put_value\",\n            \"description\": \"Введите значение, которое должно быть присвоено полю типа «Список»\",\n            \"help\": \"tpl_list_value\"\n        }\n    }\n}',	'button',	'list_change.tpl',	'',	6,	'[]'),
(24,	'Очистка поля',	'$line[\'{$field1}\'] = \'\';',	'{\n    \"title\": \"Очистка поля\",\n    \"help\": \"tpl_clear_field\",\n    \"parameters\": {\n        \"field1\": {\n            \"type\": \"Field\",\n            \"name\": \"field1\",\n            \"description\": \"Выберите поле\",\n            \"no_system\": true,\n            \"help\": \"tpl_clear_field\"\n        }\n    }\n}',	'button',	'field_clearing.tpl',	'',	6,	'[]'),
(25,	'Из основной таблицы подтянуть данные в подтаблицу',	'data_update(\n    {$subtable.table},\n    array(\'{$subtable.field}\' => $line[\'{$field}\']),\n    \'status = 0 AND {$subtable.link_field_id} = \' . $line[\'id\']\n);',	'{\n    \"title\": \"Из основной табл. подтянуть данные в подтабл.\",\n    \"help\": \"tpl_from_table_in_subtable\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле, из которого тянуть данные\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        },\n        \"subtable\": {\n            \"type\": \"TableField\",\n            \"name\": \"subtable\",\n            \"description\": \"Выберите подтаблицу\",\n            \"field_description\": \"Выберите поле, в которое тянуть значение\",\n            \"no_system\": true,\n            \"only_subtables\": true,\n            \"help\": \"tpl_to_table\",\n            \"field_help\": \"tpl_to_field\"\n        }\n    }\n}',	'button',	'from_table_in_subtable.tpl',	'',	1,	'[]'),
(26,	'Отправка шаблона рассылки',	'$true = send_template({$field}, \"id = \" . $line[\'id\']);\nif ($true) {\n    $display_message .= \"<a style=\'font-size:16px;\' href=edit_mailing.php>\";\n    $display_message .= $lang[\'Active_mailer\'] . \"</a>\";\n    display_notification($display_message, 1);\n}',	'{\n    \"title\": \"Отправка шаблона рассылки\",\n    \"help\": \"tpl_send\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Template\",\n            \"name\": \"field\",\n            \"description\": \"Шаблон рассылки\",\n            \"tpl_type\": \"send\",\n            \"help\": \"tpl_send_template\"\n        }\n    }\n}',	'button',	'tpl_send.tpl',	'',	6,	'[]'),
(27,	'Изменение данных в связанной таблице',	'$line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'] = $line[\'{$cur_field}\'];',	'{\n    \"title\": \"Изменение данных в связанной таблице\",\n    \"help\": \"tpl_link_to_table\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, из которого тянуть значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите таблицу, в которое сохранять\",\n            \"field_description\": \"Выберите поле, в которое сохранять\",\n            \"only_parent\": \"true\",\n            \"help\": \"tpl_to_table\",\n            \"field_help\": \"tpl_to_field\"\n        }\n    }\n}',	'button',	'tpl_link_to_table.tpl',	'',	4,	'[]'),
(28,	'Сохранение старого значения поля в другое',	'$line[\'{$field}\'] = $event[\'changed\'][substr(\'{$field2}\',1)][\'old\'];',	'{\n    \"title\": \"Сохранение старого значения поля в другое\",\n    \"help\": \"tpl_save_old_value\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле записи\",\n            \"no_system\": true,\n            \"help\": \"tpl_result_field\"\n        },\n        \"field2\": {\n            \"type\": \"Field\",\n            \"name\": \"field2\",\n            \"description\": \"Выберите поле, чье старое значение нужно сохранить\",\n            \"no_system\": true,\n            \"help\": \"tpl_old_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field2\"\n        }\n    ]\n}',	'calc',	'save_old_value.tpl',	'',	6,	'[1]'),
(29,	'Поиск и замена значений поля',	'$line[\'{$cond_field}\'] = str_replace(\'{$give_value}\', \'{$put_value}\', $line[\'{$cond_field}\']);',	'{\n    \"title\": \"Поиск и замена значений поля\",\n    \"help\": \"tpl_replace\",\n    \"parameters\": {\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле, которое должно быть изменено\",\n            \"help\": \"tpl_to_field\"\n        },\n        \"give_value\": {\n            \"type\": \"String\",\n            \"name\": \"give_value\",\n            \"description\": \" Введите значение для поиска\",\n            \"help\": \"tpl_search_val\"\n        },\n        \"put_value\": {\n            \"type\": \"String\",\n            \"name\": \"put_value\",\n            \"description\": \"Введите значение для замены\",\n            \"help\": \"tpl_put_val\"\n        }\n    }\n}',	'button',	'tpl_replace.tpl',	'',	5,	'[]'),
(30,	'Изменение поля типа дата на количество дней',	'$line[\'{$cur_field3}\'] = date(\'Y-m-d H:i:s\', strtotime($line[\'{$cur_field1}\']) {$operand} $line[\'{$cur_field2}\'] * 3600 * 24);',	'{\n    \"title\": \"Изменение поля типа дата на количество дней\",\n    \"help\": \"tpl_add_to_date\",\n    \"parameters\": {\n        \"cur_field1\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field1\",\n            \"description\": \"Выберите исходную дату\",\n            \"type_field\": [\n                2,\n                12\n            ],\n            \"help\": \"tpl_source_field\"\n        },\n        \"operand\": {\n            \"type\": \"List\",\n            \"name\": \"operand\",\n            \"description\": \"Выберите опцию\",\n            \"values\": {\n              \"+\": \"Прибавить\",\n              \"-\": \"Отнять\"\n            },\n            \"help\": \"tpl_option\"\n        },\n        \"cur_field2\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field2\",\n            \"description\": \"Выберите поле с числом дней\",\n            \"type_field\": 1,\n            \"help\": \"tpl_field_days\"\n        },\n        \"cur_field3\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field3\",\n            \"description\": \"Выберите поле записи результата\",\n            \"type_field\": 2,\n            \"help\": \"tpl_to_field\"\n        }\n    }\n}',	'button',	'tpl_add_to_date.tpl',	'',	2,	'[]'),
(31,	'Из основной таблицы подтянуть данные в подтаблицу',	'if ({$operand} == 1) {\n    data_update(\n        {$subtable.table},\n        EVENTS_ENABLE,\n        array(\'{$subtable.field}\' => $line[\'{$field}\']),\n        \'status = 0 AND {$subtable.link_field_id} = \' . $line[\'id\']\n    );\n} else {\n    data_update(\n        {$subtable.table},\n        array(\'{$subtable.field}\' => $line[\'{$field}\']),\n        \'status = 0 AND {$subtable.link_field_id} = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Из основной табл. подтянуть данные в подтабл.\",\n    \"help\": \"tpl_from_table_in_subtable\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле, из которого тянуть данные\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        },\n        \"subtable\": {\n            \"type\": \"TableField\",\n            \"name\": \"subtable\",\n            \"description\": \"Выберите подтаблицу\",\n            \"field_description\": \"Выберите поле, в которое тянуть значение\",\n            \"no_system\": true,\n            \"only_subtables\": true,\n            \"help\": \"tpl_sel_table\",\n            \"field_help\": \"tpl_result_field\"\n        },\n        \"operand\": {\n            \"type\": \"List\",\n            \"name\": \"operand\",\n            \"description\": \"Запуск вычислений\",\n            \"values\": {\n              \"1\": \"Да\",\n              \"2\": \"Нет\"\n            },\n            \"help\": \"tpl_event_on\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field\"\n        }\n    ]\n}',	'calc',	'from_table_in_subtable.tpl',	'',	1,	'[4]'),
(32,	'Дата последней записи из подтаблицы в основную запись',	'if ($event[\'type\'] === \'delete\') {\n    $deleteCond = \" AND id <> $ID\";\n}\n$filter = sql_select_array(FILTERS_TABLE, \'id={$filter}\');\n$result = data_select_field($table_id, \'{$cond_field}\',\n    \'status = 0 AND {$cond_table.link_field_id} = \' . intval($line[\'{$cond_table.link_field_id}\'][\'raw\']) . $deleteCond .\n    ($filter[\'value\'] ? \' AND (\' . filter_tpl_replace($filter[\'value\']) . \')\' : \'\') . \' ORDER BY id DESC LIMIT 1\');\n$row = sql_fetch_assoc($result);\n$line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $row[\'{$cond_field}\'];',	'{\n    \"title\": \"Дата последней записи из подтаблицы в основную запись\",\n    \"help\": \"last_note_date\",\n    \"parameters\": {\n        \"cond_table\": {\n            \"type\": \"TableField\",\n            \"name\": \"cond_table\",\n            \"only_parent\": \"true\",\n            \"description\": \"Выберите таблицу, в которую будет записан результат\",\n            \"type_field\": \"2\",\n            \"field_description\": \"Выберите поле, в которое будет записан результат\",\n            \"help\": \"tpl_sel_table\",\n            \"field_help\": \"tpl_result_field\"\n         },\n        \"filter\": {\n            \"type\": \"Filter\",\n            \"name\": \"filter\",\n            \"description\": \"Выберите фильтр\",\n            \"help\": \"tpl_sel_filter\"\n        },\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"2\",\n            \"description\": \"Выберите поле даты\",\n            \"help\": \"tpl_sel_field_date\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cond_field\"\n        },\n        {\n            \"type\": 4,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 7,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'last_note_date.tpl',	'',	1,	'[2]'),
(33,	'Удаление записи',	'if ($line[\'status\'] != 2) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 2\n        ),\n        \'status IN (0,1) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Удаление записи\",\n    \"help\": \"note_delete\"\n}',	'button',	'null.tpl',	'',	6,	'[]'),
(34,	'Архивация записи',	'if ($line[\'status\'] != 1) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 1\n        ),\n        \'status IN (0,2) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Архивация записи\",\n    \"help\": \"note_archive\"\n}',	'button',	'null.tpl',	'',	6,	'[]'),
(35,	'Восстановление записи',	'if ($line[\'status\'] != 0) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 0\n        ),\n        \'status IN (1,2) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Восстановление записи\",\n    \"help\": \"note_restore\"\n}',	'button',	'null.tpl',	'',	6,	'[]'),
(36,	'Количество записей в подтаблице',	'if ($event[\'type\'] === \'delete\') {\n    $deleteCond = \"AND id <> $ID\";\n}\n$filter = (int)\"{$filter}\";\n$filter = sql_select_array(FILTERS_TABLE, \'id=\' . $filter);\nif ($filter[\'value\']) {\n    $filter[\'value\'] = filter_tpl_replace($filter[\'value\']);\n} else {\n    $filter[\'value\'] = \'1 = 1\';\n}\n$pre = data_select_field(\n    $table_id,\n    \"COUNT(id) AS cnt\",\n    \"status = 0 \" . $deleteCond . \" AND {$cond_table.link_field_id} = \" . $line[\'{$cond_table.link_field_id}\'][\'raw\'] . \n    \" AND \" . $filter[\'value\']\n);\n$res = sql_fetch_assoc($pre);\n\nif ({$operand} == 1) {\n    $filter_str = \'\';\n    if (isset($filter)) {\n        $filter_str = \'&filter=\' . $filter[\'id\'];\n    }\n    $line_link = substr(\"{$cond_table.link_field_id}\", 1);\n    $url = $config[\'site_url\'] . \"/fields.php?table=\" . $table_id . \"&rel_search&rel_table={$cond_table.table}&rel_line=\" . \n    $line[\'{$cond_table.link_field_id}\'][\'raw\'] . \"&rel_field=\" . $line_link . $filter_str;\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = \"<a href=\'\" . $url . \"\'>\" . $res[\'cnt\'] . \"</a>\";\n} else {\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $res[\'cnt\'];\n}',	'{\n    \"title\": \"Количество записей в подтаблице\",\n    \"help\": \"subnotes_count\",\n    \"parameters\": {\n        \"cond_table\": {\n            \"type\": \"TableField\",\n            \"name\": \"cond_table\",\n            \"only_parent\": \"true\",\n            \"description\": \"Выберите таблицу, в которую будет записан результат\",\n            \"type_field\": \"3\",\n            \"help\": \"main_talbe\",\n            \"field_description\": \"Выберите поле, в которое будет записан результат\",\n            \"field_help\": \"main_table_field\"\n        },\n        \"filter\": {\n            \"type\": \"Filter\",\n            \"name\": \"filter\",\n            \"description\": \"Выберите фильтр\",\n            \"help\": \"filter_help\"\n        },\n        \"operand\": {\n            \"type\": \"List\",\n            \"name\": \"operand\",\n            \"description\": \"Добавить ссылку на записи\",\n            \"values\": {\n              \"1\": \"Да\",\n              \"2\": \"Нет\"\n            },\n            \"help\": \"link_in_res_table\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 4,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 7,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'subnotes_count.tpl',	'',	1,	'[2]'),
(37,	'Удаление записи',	'if ($line[\'status\'] != 2) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 2\n        ),\n        \'status IN (0,1) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Удаление записи\",\n    \"help\": \"note_delete\",\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'null.tpl',	'',	6,	'[1]'),
(38,	'Архивация записи',	'if ($line[\'status\'] != 1) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 1\n        ),\n        \'status IN (0,2) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Архивация записи\",\n    \"help\": \"note_archive\",\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'null.tpl',	'',	6,	'[1]'),
(39,	'Восстановление записи',	'if ($line[\'status\'] != 0) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 0\n        ),\n        \'status IN (1,2) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Восстановление записи\",\n    \"help\": \"note_restore\",\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'null.tpl',	'',	6,	'[1]'),
(40,	'Сохранение шаблона печати в поле типа файл',	'$form = sql_select_array(FORMS_TABLE,\n    \'id = {$print_tpl}\'\n);\nif ($form[\'type_form\'] == 2 && $form[\'pdf_import\'] == 1) {\n    include $config[\'site_path\'] . \"/include/mpdf/mpdf.php\";\n    $mpdf = new mPDF(\"\", \"A4\" . $form[\'orientation\'], \"\", \"\", $form[\'margin_left\'], $form[\'margin_right\'], $form[\'margin_top\'], $form[\'margin_bottom\']);\n    $mpdf->SetDisplayMode(\'fullwidth\');\n    $file_name = $form[\'name_form\'] . \'.pdf\';\n    $form_text = \'\';\n    if ($form[\'head_form\'] != \'\') {\n        $mpdf->WriteHTML(form_template($form, $line, \"head_form\"));\n    }\n    $mpdf->WriteHTML(form_template($form, $line, \"body_form\"));\n    if ($form[\'foot_form\'] != \'\') {\n        $mpdf->WriteHTML(form_template($form, $line, \"foot_form\"));\n    }\n    $form_text = $mpdf->Output($file_name, \"S\");\n    $save_link = substr(\"{$field}\", 1);\n    save_data_file($save_link, $ID, $file_name, $form_text);\n    $line[\'{$field}\'] = $file_name;\n} else {\n    if ($form[\'type_form\'] == 5) {\n        $file_name = $form[\'name_form\'] . \'.docx\';\n    } else if ($form[\'type_form\'] == 3) {\n        $file_name = $form[\'name_form\'] . \'.rtf\';\n    } else if ($form[\'type_form\'] == 4) {\n        $file_name = $form[\'name_form\'] . \'.odt\';\n    } else if ($form[\'type_form\'] == 6) {\n        $file_name = $form[\'name_form\'] . \'.xls\';\n    }\n    $save_link = substr(\"{$field}\", 1);\n    save_data_file($save_link, $ID, $file_name, form_template($form, $line, \'body_form\'));\n    $line[\'{$field}\'] = $file_name;\n}\nif ($form[\'type_form\'] == 2 && $form[\'pdf_import\'] == 0) {\n    array_push($error_trace, \'html_tpl\');\n}',	'{\n    \"title\": \"Сохранение шаблона печати в поле типа файл\",\n    \"help\": \"tpl_print_save\",\n    \"parameters\": {\n        \"print_tpl\": {\n            \"type\": \"Template\",\n            \"name\": \"print_tpl\",\n            \"description\": \"Выберите шаблон печати\",\n            \"tpl_type\": \"print\",\n            \"help\": \"tpl_print_help_save\"\n        },\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле для сохранения шаблона\",\n            \"type_field\": \"6\",\n            \"help\": \"tpl_field\"\n        }\n    }\n}',	'button',	'save_tpl_in_field.tpl',	'',	6,	'[]'),
(41,	'Печать шаблона',	'$print_tpl = {$print_tpl};\n?>\n<script>\nvar url = \'<?=$config[\"site_url\"]?>/forms.php?table=<?=$table_id?>&mode=print&form=<?=$print_tpl?>\';\nwindow.open(url);\n</script>\n<?php',	'{\n    \"title\": \"Печать шаблона\",\n    \"help\": \"tpl_print\",\n    \"parameters\": {\n        \"print_tpl\": {\n            \"type\": \"Template\",\n            \"name\": \"print_tpl\",\n            \"description\": \"Выберите шаблон печати\",\n            \"tpl_type\": \"print\",\n            \"help\": \"tpl_print_help\"\n        }\n    }\n}',	'button',	'tpl_print.tpl',	'',	6,	'[]'),
(42,	'Данные из поля подтаблицы в основную запись',	'if ($event[\'type\'] === \'delete\') {\r\n    $deleteCond = \" AND id <> $ID\";\r\n}\r\n$filter = sql_select_array(FILTERS_TABLE, \'id={$filter}\');\r\n$result = data_select_field($table_id, \'{$cond_field}\',\r\n    \'status = 0 AND {$cond_table.link_field_id} = \' . intval($line[\'{$cond_table.link_field_id}\'][\'raw\']) . $deleteCond .\r\n    ($filter[\'value\'] ? \' AND (\' . filter_tpl_replace($filter[\'value\']) . \')\' : \'\') . \' ORDER BY id {if $record == \"last\"}DESC{/if} LIMIT 1\');\r\n$row = sql_fetch_assoc($result);\r\n{if $add_value == \'yes\'}\r\nif ($line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] != \'\') {\r\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] .= \"{$add_delim}\" . $row[\'{$cond_field}\'];\r\n} else {\r\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $row[\'{$cond_field}\'];\r\n}\r\n{else}\r\n$line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $row[\'{$cond_field}\'];\r\n{/if}',	'{\n    \"title\": \"Данные из поля подтаблицы в основную запись\",\n    \"help\": \"last_record_data\",\n    \"parameters\": {\n        \"cond_table\": {\n            \"type\": \"TableField\",\n            \"name\": \"cond_table\",\n            \"only_parent\": \"true\",\n            \"description\": \"Выберите таблицу, в которую будет записан результат\",\n            \"field_description\": \"Выберите поле, в которое будет записан результат\",\n            \"help\": \"tpl_parent_table\",\n            \"field_help\": \"tpl_parent_field\"\n         },\n        \"filter\": {\n            \"type\": \"Filter\",\n            \"name\": \"filter\",\n            \"description\": \"Выберите фильтр\",\n            \"help\": \"tpl_filter\"\n        },\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"description\": \"Выберите поле\",\n            \"help\": \"tpl_field_out\"\n        },\n        \"record\": {\n            \"type\": \"List\",\n            \"name\": \"record\",\n            \"description\": \"Выберите запись\",\n            \"help\": \"tpl_record\",\n            \"values\": {\n                \"last\": \"последняя\",\n                \"first\": \"первая\"\n            }\n        },\n        \"add_value\": {\n            \"type\": \"List\",\n            \"name\": \"add_value\",\n            \"description\": \"Добавлять к существующему значению\",\n            \"help\": \"tpl_add_value\",\n            \"values\": {\n                \"no\": \"нет\",\n                \"yes\": \"да\"\n            }\n        },\n        \"add_delim\": {\n            \"type\": \"String\",\n            \"name\": \"add_delim\",\n            \"description\": \"Разделитель при добавлении\",\n            \"help\": \"tpl_add_delim\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cond_field\"\n        },\n        {\n            \"type\": 4,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 7,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'last_record_data.tpl',	'',	1,	'[2]'),
(43,	'Данные из поля подтаблицы в основную запись',	'$result = data_select_field({$sub_table.subTable}, \'{$sub_table.subField}\',\r\n    \'status = 0 AND {$sub_table.link_field_id} = \' . $ID . \' ORDER BY id {if $sub_record == \"last\"}DESC{/if} LIMIT 1\');\r\n$row = sql_fetch_assoc($result);\r\n{if $add_value == \'yes\'}\r\nif ($line[\'{$res_field}\'] != \'\') {\r\n    $line[\'{$res_field}\'] .= \"{$add_delim}\" . $row[\'{$sub_table.subField}\'];\r\n} else {\r\n    $line[\'{$res_field}\'] = $row[\'{$sub_table.subField}\'];\r\n}\r\n{else}\r\n$line[\'{$res_field}\'] = $row[\'{$sub_table.subField}\'];\r\n{/if}',	'{\n    \"title\": \"Данные из поля подтаблицы в основную запись\",\n    \"help\": \"last_record_data\",\n    \"parameters\": {\n        \"sub_table\": {\n            \"type\": \"SubField\",\n            \"name\": \"sub_table\",\n            \"description\": \"Выберите подтаблицу\",\n            \"sub_description\": \"Выберите поле подтаблицы\",\n            \"help\": \"tpl_sub_table\",\n            \"field_help\": \"tpl_sub_field\"\n        },\n        \"sub_record\": {\n            \"type\": \"List\",\n            \"name\": \"sub_record\",\n            \"description\": \"Выберите запись подтаблицы\",\n            \"help\": \"tpl_record\",\n            \"values\": {\n                \"last\": \"последняя\",\n                \"first\": \"первая\"\n            }\n        },\n        \"res_field\": {\n            \"type\": \"Field\",\n            \"name\": \"res_field\",\n            \"description\": \"Выберите поле, в которое будет записан результат\",\n            \"help\": \"tpl_field_in\"\n        },\n        \"add_value\": {\n            \"type\": \"List\",\n            \"name\": \"add_value\",\n            \"description\": \"Добавлять к существующему значению\",\n            \"help\": \"tpl_add_value\",\n            \"values\": {\n                \"no\": \"нет\",\n                \"yes\": \"да\"\n            }\n        },\n        \"add_delim\": {\n            \"type\": \"String\",\n            \"name\": \"add_delim\",\n            \"description\": \"Разделитель при добавлении\",\n            \"help\": \"tpl_add_delim\"\n        }\n    }\n}',	'button',	'last_record_data.tpl',	'',	1,	'[2]'),
(50,	'Копировать запись',	'$sel_table = (int)\'{$correlation[\'table\']}\';\n$sel_fields = [\n    {foreach from = $correlation[\'to_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\n];\n$sel_def_vals = [\n    {foreach from = $correlation[\'def_val\'] item = field_id}\'{$field_id}\', {/foreach}\n];\n$cur_fields = [\n    {foreach from = $correlation[\'cur_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\n];\nif ($sel_table > 0) {\n    $ins_arr = [];\n    foreach ($sel_fields as $num => $field_id) {\n        if (!$field_id) continue;\n        $def_val = $sel_def_vals[$num];\n        if ($def_val) {\n             $ins_arr[\'f\' . $field_id] = $def_val;\n        } else {\n             if (is_array($line[$cur_field[$num]])) {\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]][\'raw\'];\n             } else {\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]];\n             }\n        }\n    }\n    if (count($ins_arr) > 0) {\n        if ($new_id = data_insert($sel_table, EVENTS_ENABLE, $ins_arr)) {\n{if $addit neq \'stop\'}\n{if $addit eq \'go_edit\'}\n            header(\'Location: \' . $config[\'site_root\'] . \'/view_line2.php?table=\' . $sel_table . \'&line=\' . $new_id . \'&edit_mode=on\');\n{else}\n            header(\'Location: \' . $config[\'site_root\'] . \'/view_line2.php?table=\' . $sel_table . \'&line=\' . $new_id);\n{/if}\n{/if}\n        } else {\n            $error_trace[] = true;\n        }\n    } else {\n        $error_trace[] = true;\n    }\n} else {\n    $error_trace[] = true;\n}\n',	'{\n    \"title\": \"Копировать запись\",\n    \"help\": \"tpl_copy_line\",\n    \"parameters\": {\n        \"correlation\": {\n            \"type\": \"Correlation\",\n            \"name\": \"correlation\",\n            \"description\": \"Таблица-получатель\",\n            \"help\": \"tpl_table_copy_line\"\n        },\n        \"addit\": {\n            \"type\": \"List\",\n            \"name\": \"addit\",\n            \"description\": \"Опция\",\n            \"help\": \"tpl_help\",\n            \"values\": {\n              \"go_edit\": \"Переходить на созданную запись в режиме редактирования\",\n              \"go\": \"Переходить на созданную запись\",\n              \"stop\": \"Оставаться в текущей записи\"\n            }\n        }\n    }\n}',	'button',	'copy_line.tpl',	'',	6,	'[]'),
(51,	'Сохранение шаблона печати в поле типа файл',	'$form = sql_select_array(FORMS_TABLE,\n    \'id = {$print_tpl}\'\n);\nif ($form[\'type_form\'] == 2 && $form[\'pdf_import\'] == 1) {\n    include $config[\'site_path\'] . \"/include/mpdf/mpdf.php\";\n    $mpdf = new mPDF(\"\", \"A4\" . $form[\'orientation\'], \"\", \"\", $form[\'margin_left\'], $form[\'margin_right\'], $form[\'margin_top\'], $form[\'margin_bottom\']);\n    $mpdf->SetDisplayMode(\'fullwidth\');\n    $file_name = $form[\'name_form\'] . \'.pdf\';\n    $form_text = \'\';\n    if ($form[\'head_form\'] != \'\') {\n        $mpdf->WriteHTML(form_template($form, $line, \"head_form\"));\n    }\n    $mpdf->WriteHTML(form_template($form, $line, \"body_form\"));\n    if ($form[\'foot_form\'] != \'\') {\n        $mpdf->WriteHTML(form_template($form, $line, \"foot_form\"));\n    }\n    $form_text = $mpdf->Output($file_name, \"S\");\n    $save_link = substr(\"{$field}\", 1);\n    save_data_file($save_link, $ID, $file_name, $form_text);\n    $line[\'{$field}\'] = $file_name;\n} else {\n    if ($form[\'type_form\'] == 5) {\n        $file_name = $form[\'name_form\'] . \'.docx\';\n    } else if ($form[\'type_form\'] == 3) {\n        $file_name = $form[\'name_form\'] . \'.rtf\';\n    } else if ($form[\'type_form\'] == 4) {\n        $file_name = $form[\'name_form\'] . \'.odt\';\n    } else if ($form[\'type_form\'] == 6) {\n        $file_name = $form[\'name_form\'] . \'.xls\';\n    }\n    $save_link = substr(\"{$field}\", 1);\n    save_data_file($save_link, $ID, $file_name, form_template($form, $line, \'body_form\'));\n    $line[\'{$field}\'] = $file_name;\n}\nif ($form[\'type_form\'] == 2 && $form[\'pdf_import\'] == 0) {\n    array_push($error_trace, \'html_tpl\');\n}',	'{\r\n    \"title\": \"Сохранение шаблона печати в поле типа файл\",\r\n    \"help\": \"tpl_print_save\",\r\n    \"parameters\": {\r\n        \"print_tpl\": {\r\n            \"type\": \"Template\",\r\n            \"name\": \"print_tpl\",\r\n            \"description\": \"Выберите шаблон печати\",\r\n            \"tpl_type\": \"print\",\r\n            \"help\": \"tpl_print_help_save\"\r\n        },\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Выберите поле для сохранения шаблона\",\r\n            \"type_field\": \"6\",\r\n            \"help\": \"tpl_field\"\r\n        }\r\n    }\r\n}',	'calc',	'save_tpl_in_field.tpl',	'',	6,	'[1]'),
(60,	'Копировать запись в подтаблицу',	'$sel_table = (int)\'{$correlation[\'table\']}\';\r\n$sel_fields = [\r\n    {foreach from = $correlation[\'to_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\r\n];\r\n$sel_def_vals = [\r\n    {foreach from = $correlation[\'def_val\'] item = field_id}\'{$field_id}\', {/foreach}\r\n];\r\n$cur_fields = [\r\n    {foreach from = $correlation[\'cur_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\r\n];\r\n$link_field = (int)\'{$correlation[\'link_field_id\']}\';\r\nif ($sel_table > 0) {\r\n    $ins_arr = [];\r\n    foreach ($sel_fields as $num => $field_id) {\r\n        if (!$field_id) continue;\r\n        $def_val = $sel_def_vals[$num];\r\n        if ($def_val) {\r\n             $ins_arr[\'f\' . $field_id] = $def_val;\r\n        } else {\r\n             if (is_array($line[$cur_field[$num]])) {\r\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]][\'raw\'];\r\n             } else {\r\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]];\r\n             }\r\n        }\r\n    }\r\n    if ($link_field) {\r\n        $ins_arr[\'f\' . $link_field] = $ID;\r\n    }\r\n    if (count($ins_arr) > 0) {\r\n        data_insert($sel_table, EVENTS_ENABLE, $ins_arr);\r\n    } else {\r\n        $error_trace[] = true;\r\n    }\r\n} else {\r\n    $error_trace[] = true;\r\n}\r\n',	'{\r\n    \"title\": \"Копировать запись в подтаблицу\",\r\n    \"help\": \"tpl_copy_line\",\r\n    \"parameters\": {\r\n        \"correlation\": {\r\n            \"type\": \"Correlation\",\r\n            \"name\": \"correlation\",\r\n            \"description\": \"Таблица-получатель\",\r\n            \"help\": \"tpl_table_copy_line\",\r\n            \"only_subtables\": true\r\n        }\r\n    }\r\n}',	'button',	'copy_line_subtable.tpl',	'',	6,	'[]'),
(61,	'Печать шаблона',	'$print_tpl = {$print_tpl};\n?>\n<script>\nvar url = \'<?=$config[\"site_url\"]?>/forms.php?table=<?=$table_id?>&mode=print&form=<?=$print_tpl?>\';\nwindow.open(url);\n</script>\n<?php',	'{\n    \"title\": \"Печать шаблона\",\n    \"help\": \"tpl_print\",\n    \"parameters\": {\n        \"print_tpl\": {\n            \"type\": \"Template\",\n            \"name\": \"print_tpl\",\n            \"description\": \"Выберите шаблон печати\",\n            \"tpl_type\": \"print\",\n            \"help\": \"tpl_print_help\"\n        }\n    }\n}',	'calc',	'tpl_print.tpl',	'',	6,	'[1]'),
(62,	'Изменение значения поля',	'$line[\'{$put_field}\'] = \'{$put_value}\';',	'{\r\n    \"title\": \"Изменение значения поля\",\r\n    \"help\": \"tpl_field_change\",\r\n    \"parameters\": {\r\n        \"put_field\": {\r\n        \"type\": \"Field\",\r\n            \"name\": \"put_field\",\r\n            \"description\": \"Выберите поле для замены значения\",\r\n            \"help\": \"tpl_put_field\",\r\n            \"no_system\": true\r\n        },\r\n        \"put_value\": {\r\n        \"type\": \"String\",\r\n            \"name\": \"put_value\",\r\n            \"description\": \"Введите значение, которое должно быть присвоено полю\",\r\n            \"help\": \"tpl_put_value\"\r\n        }\r\n    }\r\n}',	'button',	'field_change.tpl',	'',	6,	'[]'),
(72,	'Изменение значения поля',	'$line[\'{$put_field}\'] = \'{$put_value}\';',	'{\r\n    \"title\": \"Изменение значения поля\",\r\n    \"help\": \"tpl_field_change\",\r\n    \"parameters\": {\r\n        \"put_field\": {\r\n        \"type\": \"Field\",\r\n            \"name\": \"put_field\",\r\n            \"description\": \"Выберите поле для замены значения\",\r\n            \"help\": \"tpl_put_field\",\r\n            \"no_system\": true\r\n        },\r\n        \"put_value\": {\r\n        \"type\": \"String\",\r\n            \"name\": \"put_value\",\r\n            \"description\": \"Введите значение, которое должно быть присвоено полю\",\r\n            \"help\": \"tpl_put_value\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 1,\r\n            \"field\": \"\"\r\n        }\r\n    ]\r\n}',	'calc',	'field_change.tpl',	'',	5,	'[1]');
EOT;
run_query($sql_query);