Обсуждение:Перенос пользоватеских пунктов меню при апгрейде

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 пользователей.
          >> Ответить