Показать сообщение отдельно
Старый 28.12.2011, 11:40   #1  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Начальная компания при входе в систему
Всем доброго времени суток!
Ax2009 RU5.

Выявилась следующая проблема:
у пользователя задана определенная начальная компания, скажем "К1", в параметрах пользователя (Сервис \ Параметры) и эта же компания указана для пользователя в справочнике пользователей (Администрирование \ Обычные формы \ пользователи). Как я думал, при входе в систему, по умолчанию у пользователя должна открываться та компания, которая задана в параметрах в поле "Начальная компания", и вроде так раньше и было. Но сейчас наткнулся, что всегда открывается другая компания, например "К2", не зависимо от выполлненных мной настроек в параметрах пользователя.

Сделал: удалил кэш аосов, сбросил данные пользователя - не помогло.

Посмотрел: посмотрел методы startUp() и startUpPost() класса Info, в них никаких доработок. Не верная компания в системе числится уже на момент выполлнения метода startUp().
На голом стандарте компания подтягивается нормально, в соответствии с настройками в параметрах пользователя. Сравнил класс info() голого стандарта и приложения где не правильная компания при входе, нет никаких различий связанных с запуском системы.
Нашел в методе startUp() вызов метода checkStartupCompany(), в котором вызывается статический метод checkStartupCompany_Server(), где уже выполняется проверка текущей компании и компании указанной в параметрах пользователя, и в случае их не совпадения выставляется компания из настроек пользователя. НО перед выполнением проверки и простановки компании есть условие:
X++:
if (!hasMenuItemAccess(menuitemdisplaystr(SysDataAreaSelect), MenuItemType::Display) ||
        !hasMenuItemAccess(menuitemdisplaystr(SysDataArea), MenuItemType::Display))
которое не отрабатывает, и соответственно компания не исправляется. Можно было бы грешить на этот метод, но есть ещё одно НО. То же самое происходит и на голом стандарте, где начальная компания правильная!

Люди, подскажите, в чем проблема? куда рыть? что сделать? Я, если честно, уже не представляю куда ещё посмотреть и что сделать

З.Ы. одно уточнение. SolutionVersion голого стандарта, с которым я сверял свое приложение, отличается от SolutionVersion моего приложения. Они оба RU5, но цифры в конце разные. Я уже начинаю думать на это...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем