...

Установка модуля "Сотрудники организации". Проблема с таблицей "Employee"

Тема в разделе "Проблемы/ошибки", создана пользователем dimich1978, 2 май 2020.

  1. dimich1978

    dimich1978 Member

    До того, как решили установить модуль "Сотрудники организации". Был создан справочник с названием таблицы "Employee" и успешно использовалась сотрудниками ОК. Далее установили модуль. Все установилось без ошибок(на тот момент я не знал, что вообще была когда либо создана таблица Employee). Далее захожу "Персонал "Сотрудники"" - Добавить нового пользователя. Вношу все требуемые данные по пользователю. Пытаюсь сохранить , и выпадает ошибка
    Код:
    System.MissingMethodException: Method not found: 'Void EleWise.ELMA.Security.Managers.UserManager.Save(EleWise.ELMA.Security.Models.IUser, System.String, Boolean)'.
    --------------------------------------------------------------------------
    at EleWise.ELMA.EmployeeOfOrganization.Web.Controllers.EmployeeController.Save(IEmployee employee, List`1 employeePosition)
       at lambda_method(Closure , ControllerBase , Object[] )
       at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass13.b__10()
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
       at System.Web.Mvc.Controller.ExecuteCore()
       at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
       at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)
       at Orchard.Mvc.Routes.ShellRoute.HttpHandler.ProcessRequest(HttpContext context)
       at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
    
    Хорошо, добавил необходимые поля в таблицу Employee основываясь на руководстве Администратора. Ошибка осталась прежней, да и дело тут в нехватке метода, а не в полях таблицы. Хотя мало ли.
    Спасибо, если кто-то сможет пояснить как решить данную проблему. Чтобы модуль успешно заработал. Было бы здорово, если бы можно было для работы модуля изменить таблицу, предварительно изменить в скрипте (который выполняется при инсталляции по созданию той или иной таблицы БД), а потом и в самом модуле (Visual Studio установлена).
    Спасибо за предложение какого либо решения.
    Таблицу Employee в текущем виде(ее поля) прикладываю во вложении
     

    Вложения:

    • Employee.PNG
      Employee.PNG
      Размер файла:
      19,5 КБ
      Просмотров:
      2
  2. pushkarev

    pushkarev Active Member

    У вас произошло пересечение имен сущностей вашего объекта и установленного модуля. Ситуация очень не хорошая. Что тут можно предложить:
    1. Если есть возможность и бекапы, то откатиться до момента создания вашего справочника, и не создавать его или создать с другим именем, а потом установить модуль.
    2. Если возможность так откатиться нет, но есть бекапы перед установкой модуля, то можно откатиться до него, но использовать модуль Сотрудники организации у вас не получится.
    3. Если бекапов нет, то ситуация не хорошая, тут лучше обратиться в поддержку, может у них будут идеи.
    От себя могу предложить попробовать сделать бекап БД в SQL виде и в ней поковыряться, заменить название своей таблицы на другое, а штатной таблицы Employee сделать штатную структуру (для этого лучше сделать отдельную установку пустой ELMA и на нее поставить модуль и сделать выгрузку БД и скопировать структуру). Возможно что-то еще нужно будет поправить в этой выгрузку, какие-нибудь метаданные, но точно я не подскажу. После этого сделать восстановление БД, и попробовать с нее запустить ELMA. Но правильно поправить резервную копию БД, будет очень сложно и трудоемко, и шансы сделать все правильно не большие.
    Если ничего не удастся, то можно попробовать продолжить использовать ELMA, как есть, отказавшись от использования модуля и вашей таблицы, потому что они вряд ли будут работать корректно, но я бы попробовал произвести обновление системы, для проверки, будет ли оно проходить, потому что есть риск, что обновляться у вас больше не получится.
    На будущее: используйте ежедневные бекапы и всегда используйте свой префикс в названиях объектов, документов и проектов.
    Желаю удачи!
     

Поделиться: