Обсуждение:Перенос пользоватеских пунктов меню при апгрейде
0 (0)
Обсуждение:Перенос пользоватеских пунктов меню при апгрейде ( Обсуждение примера 19.06.2006 08:58 )
0(0)В архиве 2 макроса.
menu9999 заменяет всем пользователям текущее меню на системное меню 9999.
allmenu сканирует новые и старые меню, и переносит пользовательские пункты, с сохранением иерархии.
Используется рекурсивный алгоритм, ограничений на вложенность меню нет(если не считать ограничений стека, что в данном случае не существенно).
Схема переноса меню следующая:
После апгрейда запускается menu9999. Благодаря этому старые системные пункты не будут тянуться из версии в версию. Меню 9999 -- это правильный каркас меню для всех пользователей. Далее запускаем allmenu, и наполняем каркас пользовательскими пунктами.
Пробовал на RS-BANK 5.0 и RS-Retail 5.1.
Посмотреть пример
>> ОтветитьРешил попробовать макросы. AllMenu переполняте стек :(.(+) ( Sergey 02.11.2006 16:46 )
0(0)┌────────────────────────────────┐ │ Ошибка allmenu.mac │ │ Строка 128 │ │ переполнен стек интерпретации │
может можно как-то поискать источник? Очень глубокая вложенность меню у пользователя, да?
>> Ответитьнет, похоже пользователей много. Удалил одного(+) ( Sergey 02.11.2006 16:49 )
0(0)Странно ( bazhan_aa 02.11.2006 17:09 )
0(0)Вообще то кол-во операционистов не должно влиять на переполняемость, т.к. при переходе к следующему операционисту стек очищен (мы на самом верхнем уровне вложенности). Все пользователи обрабатываются по очереди и независимо. По стеку мы идем только в моменты ветвления меню. Но может быть есть какие-то "особенности" rsl?... Попробуйте обрабатывать пользователей порциями. На каждый запуск макроса -- очередные N пользователей.
>> Ответить