Клиентский алгоритм удаления объекта аналитики
Алгоритм служит для обработки события удаления объекта аналитики. Ссылка на алгоритм задается в менеджере настроек отображения.
Параметры алгоритма:
ВЫЧИСЛИТЬ (ПЕРЕМ АНАЛИТ_КОНТЕКСТ: контекст; ПЕРЕМ <T>: объект; ПЕРЕМ СТРОКА: замена; ПЕРЕМ МОДИФ_ПАРАМ: мп; ПЕРЕМ СТРОКА: рез) // ... КОНЕЦ
- контекст - входной параметр. Код текущего корневого объекта ветки или текущей группы каталогизатора + имя режима настроек.
- объект - входной параметр. Удаляемый объект аналитики. Вместо идентификатора <Т> задается имя объектного типа родительского объекта аналитики или имя базового объектного типа АНАЛИТИКА или АНАЛИТ_ОБЪЕКТ.
- замена - входной параметр. Ссылка на строковое значение абсолютного пути в плане аналитики, которым определяется объект для замены. Все ссылки на удаляемый объект будут заменены ссылками на объект замены. Если в качестве параметра указать ссылку на пустую строку, то ссылки на объект будут удалены по следующей схеме:
- ссылки в проводках - удаляются проводки;
- ссылки в признаках операций - заменяются значениями по умолчанию;
- ссылки в свойствах объектов аналитики - заменяются значениями по умолчанию;
- ссылки в значениях по умолчанию - заменяются пустыми ссылками.
- мп - выходной параметр. Параметр типа МОДИФ_ПАРАМ позволяет реализовать механизм сквозной передачи параметров между клиентским и серверными алгоритмами удаления. Серверный алгоритм может изменить полученные параметры, соответственно, следующему алгоритму будет передаваться изменный набор параметров. Тип МОДИФ_ПАРАМ включает в себя набор параметров и правила их передачи. То есть помимо параметров можно указать пути их передачи: логические поля "до", "после" и "возврат" задают условия передачи параметров серверным алгоритмам ДО_УДАЛЕНИЯ и ПОСЛЕ_УДАЛЕНИЯ и условие передачи параметров обратно в клиентский алгоритм. Если передача параметров запрещена - передается пустой контейнер параметров (пустая переменная типа АЛГ_ПАРАМ).
- рез - выходной параметр. Результат выполнения алгоритма.
Алгоритм может возвращать три строковых значения результата: OK, CANCEL и CONTINUE.
- OK - возвращается в случае успешного выполнения алгоритма;
- CANCEL -возвращается в случае ошибки;
- CONTINUE -возвращается в случае, если по завершении работы алгоритма запускается стандартный диалог.
Имеется возможность совершать множественное удаление объектов аналитики. При множественном удалении платформа создает ветку "PLATFORM"->"BATCH" в параметрах модификации с информацией о серии элементов.На данной ветке создаются три параметра:
- ITEM - числового типа, содержит номер текущего элемента серии;
- COUNT - числового типа, содержит количество элементов в серии;
- RESULT - строкового типа, содержит команду для управления дальнейшей обработки серии:
- CONTINUE - продолжать выполнение (по умолчанию);
- CANCEL - отменить удаление, оставшиеся элементы серии не обрабатываются;
- ALL - продолжить удаление серии без дальнейших вопросов, т.е. для оставшихся элементов серии не будут вызываться клиентские алгоритмы модификации и/или показываться стандартные диалоги.
Пример
Пример иллюстрирует использование алгоритма удаления объекта, который удаляет объект без помощи стандартных платформенных диалогов. В ходе работы алгоритма выводится сообщение об успешном или неуспешном удалении объекта.
В Настройке отображения указывается ссылка на алгоритм для ветки "ТОВАРЫ" в узле "Удаление".
ВЫЧИСЛИТЬ(ПЕРЕМ АНАЛИТ_КОНТЕКСТ: контекст; // вход ПЕРЕМ АНАЛИТИКА: об; // вход ПЕРЕМ СТРОКА: замена; // вход/выход ПЕРЕМ МОДИФ_ПАРАМ: парам; // вход/выход ПЕРЕМ СТРОКА: рез) // вход/выход // OK - CANCEL - CONTINUE ПЕРЕМ ЛОГИКА: утв утв = УДАЛИТЬ_ОБЪЕКТ(об._код, "") ЕСЛИ утв = ДА ТО СООБЩЕНИЕ("Объект '" + об._название + "' успешно удален") ИНАЧЕ СООБЩЕНИЕ("Объект '" + об._название + "' не удален") КОНЕЦ_ЕСЛИ рез = "OK" КОНЕЦ