Алгоритм программируемого каталогизатора
Алгоритм предназначен для формирования групп программируемого каталогизатора. Ссылка на алгоритм задается при создании програмируемого каталогизатора. Сам алгоритм может храниться в свойстве любого объекта аналитики. При формировании каталогизатора алгоритм запускается для каждого объекта ветки, и его задачей является ответ на вопрос: в какую группу следует отнести этот объект.
Параметры алгоритма:
ВЫЧИСЛИТЬ ( ПЕРЕМ <Т>: объект; ПЕРЕМ СТРОКА: группа ) //… КОНЕЦ
- объект - входной параметр. Объект аналитики, требующий каталогизации. Вместо идентификатора <T> задается имя объектного типа, которое соответствует одному из родительских объектов аналитики. Возможно задать в качестве идентификатора и базовый объектный тип АНАЛИТИКА .
- группа - выходной параметр. Имя группы, в которую принято решение поместить объект, или списка групп через разделитель, если объект необходимо поместить в несколько групп. В качестве разделителя групп используется точка с запятой. Если для каталогизатора установлен признак проверки уникальности объектов - указание списка групп приведет к ошибке. Для указания пути к подгруппе - используется разделитель "~". группа = <имя_группы>~<имя_подгруппы>~...;<имя_группы>... Если в качестве имени группы указана пустая строка - объект не попадает в каталогизатор.
Пример создания автоматического каталогизотора
Создадим новый объект аналитики "ТОВАРЫ" со свойствами "цена" (вещественное число) и "страна" (строка).На странице "Дополнительно" диалога редактирования объекта установите признак "Использовать реальное имя типа" и задайте имя объектного типа - "Товары". Создайте в плане аналитики объект "ТОВАРЫ" со свойствами "цена" (вещественное число) и "страна" (строка) и добавим у него дочерние объекты с разными значениями свойств(Платье стоит 5000, Ботинки стоят 8000 и Брюки стоят 4000). В мастере создания каталогизатора указваем имя каталогизотора, корневой объект, тип каталогизатора - программируемый. На втором шаге указывается код объекта, и создается новое свойство("алг_каталог"), которое будет хранить алгоритм каталогизотора, после чего создается новый проект с исходным кодом/p>
ВЫЧИСЛИТЬ(ПЕРЕМ Товары: об; // вход ПЕРЕМ СТРОКА: группа)// выход // группа = пустая строка - объект не заносится в каталогизатор // подгруппы разделяются ~ (пример: группа = "Группа~Подгруппа1~Подгруппа2") ЕСЛИ об.цена < 2000 ТО группа = "Дешевые" ИНАЧЕ ЕСЛИ об.цена > 2000 И об.цена < 8000 ТО группа = "Средние" ИНАЧЕ группа = "Дорогие" КОНЕЦ_ЕСЛИ КОНЕЦ_ЕСЛИ КОНЕЦ
В результате применения такого каталогизотора будут созданы группы: “Дешевые” (цена меньше 2000 ), “Средние” (цена от 2000 до 80000), “Дорогие” (более 8000). В каждой группе будут соответствующие условию цены объекты.