Ссылка на програмерский ужас. Радуйтесь, что вам с этим не работать.
А вот я сегодня правил ведомость, от которой куда-то задевали текстовый исходник. Идиотская бухгалтерская система позволяет редактировать свои скрипты как в тексте, так и в бинарнике, методом сбора из менюшек мышой. Мне нужно было индийским методом copy-paste добавить обработки еще одного кода аналитики.
Так вот, при сборке алгоритма мышой можно делать copy-paste. НО!
выделения не видно!. Это не считая того, что его можно сделать только мышью, только включив с тулбара, на котором кнопки 12х12 вбиты рядом друг с другом совершенно без разделителей, и после выделения надо возвращаться на тулбар, чтобы нажать Copy, и затем Paste и опять мышой выделить место куда вставить.
Это инструмент разработки.
А алгоритм сам сделан просто в лоб - внутри одного цикла по выборке около 30 или 40 вызовов встроенных функций типа "посчитать сальдо" и "посчитать оборот". Длительность работы функций пропорциональна размеру базы. Сальдовые функции типа оптимизированы(считают не суммированием с самого начала, а от остатков промежуточных), но реально это не помогает. Работает около 20-30 минут.
Если бы была нормальная клиент-серверная система, а не файл-серверная и нормальный язык, а не кларион и собственные скрипты - работало бы 1 минуту максимум.
Наиболее оптимальным для этого алгоритма был бы перебор таблицы проводок с момента создания промежуточных остатков с отбором по счету и группировкой по аналитике, а затем дополнительная группировка получившегося небольшого набора данных по сложному критерию. Если очень круто потрахаться - можно было бы оптимизировать в рамках существующего инструмента. Но лучше я это время потрачу на функционал выполнения запросов над базой старой системы в своей новой, бо это будет намного полезнее.