Меню

Elma ошибка обновления структуры бд

  1. Добрый день!

    При работе с объектом в Дизайнере допустили ошибку — поменяли тип свойства.
    Изменение опубликовано, при запуске сервера, соответственно, ошибка:

    «Ошибка обновления структуры БД: Изменение типа свойства запрещено (свойство IzrashodovannyeMaterialy в сущности AktVypolnennyhRabot_RashodnyeMaterialy; старый тип: Да / нет; новый тип: Выпадающий список)»

    Скажите, можно ли вручную изменить обратно это свойство, чтобы сервер мог запуститься?
    (восстанавливать всю БД из бекапа очень не желательно…)

    Версия ELMA 3.12.3.36869 R.1394507aede4e9.

    Заранее спасибо!

  2. сочувствую, была такая же проблема в декабре, решается только силам разрабов… Но у нас на тот момент еще и бэкапов не было, так что Вы еще в терпимых обстоятельствах. Мы после этой ситуации настроили бэкапыБД на каждый час.

    Последнее редактирование: 26 апр 2018

  3. И как в итоге Вы проблему решили, если не восстановлением из бекапа? Начинали все с 0?

  4. Сервер же делает бэкап прямо перед началом преобразования, почему нежелательно выполнить это действие?

  5. У нас была версия 3.10.7 она не умела делать бэкап перед преобразованием. Чтобы решить проблему — мы слезно попросили разрабов взять нас в работу, несмотря на — то, что у нас версия CE. К их чести они согласились, но не с первого раза ) . По финансам вышла некоторая сумма (не уверен что можно озвучивать). Из-за этой ошибки у нас произошло что-то с индексами в БД и ЭЛМА теперь не обновляется, что с этим делать пока тоже не знаем, сидим до сих пор на версии 3.10.7 Кстати ежечасные бэкапы рулят т.к. наши ковыряния ложили ЭЛМУ еще несколько раз за эти 4 мес, для нас восстановление из бэкапа теперь рутиная операция.

  6. Под бекапом я имел в виду созданный вручную, так как он (мягко говоря) — делался очень давно.

    Автоматический бекап, который должен делаться при старте — не можем найти.

    Следуя инструкции — «Параметр backupPath определяет путь до файлов резервной копии. Если это поле оставить пустым, то резервная копия будет создана там же, где расположена основная база данных. Имя файла генерируется автоматически и содержит имя файла базы данных, дату и время создания резервной копии.»

    Основная база в PostgreSQL лежит в /var/lib/postgresql/10/main/base/<директория с номером>, внутри или рядом нет ничего похожего на файлы с бекапом…

Поделиться:

  1. Добрый день!
    Произошла следующая ошибка:

    *EleWise.ELMA.Runtime.Db.DbStructureException: Ошибка обновления структуры БД —> NHibernate.StaleStateException: Batch update returned unexpected row count from update; actual row count: -1; expected: 2
    в NHibernate.AdoNet.Expectations.VerifyOutcomeBatched(Int32 expectedRowCount, Int32 rowCount)
    в NHibernate.AdoNet.SqlClientBatchingBatcher.DoExecuteBatch(IDbCommand ps)
    в NHibernate.AdoNet.AbstractBatcher.ExecuteBatchWithTiming(IDbCommand ps)
    в NHibernate.AdoNet.AbstractBatcher.ExecuteBatch()
    в EleWise.ELMA.Runtime.NH.CustomBatcher.ExecuteBatch()
    в NHibernate.Engine.ActionQueue.ExecuteActions(IList list)
    в NHibernate.Engine.ActionQueue.ExecuteActions()
    в NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session)
    в NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event)
    в NHibernate.Impl.SessionImpl.Flush()
    в EleWise.ELMA.Runtime.NH.NHUnitOfWorkManager.UnitOfWork.Commit()
    в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)
    в Castle.DynamicProxy.AbstractInvocation.Proceed()
    в EleWise.ELMA.Runtime.Db.DbStructureReader.Read(IEnumerable`1 structures, IEnumerable`1 handlers)
    — Конец трассировки внутреннего стека исключений —
    в EleWise.ELMA.Runtime.Db.DbStructureReader.Read(IEnumerable`1 structures, IEnumerable`1 handlers)
    в EleWise.ELMA.Runtime.Providers.NHProvider.InitComplete()
    в EleWise.ELMA.Runtime.RuntimeApplication.InitComplete()
    в EleWise.ELMA.ComponentModel.ComponentManager.InvokeInitHandlers(Action`1 action)
    в EleWise.ELMA.ComponentModel.ComponentManager.Init()
    в EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.Cpj5HMPmZYSTDB8tsy(Object , Object , Object )
    в EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.StartApplicationInThread()
    Ошибка обновления структуры БД
    EleWise.ELMA.SDK
    в EleWise.ELMA.Runtime.Db.DbStructureReader.Read(IEnumerable`1 structures, IEnumerable`1 handlers)
    в EleWise.ELMA.Runtime.Providers.NHProvider.InitComplete()
    в EleWise.ELMA.Runtime.RuntimeApplication.InitComplete()
    в EleWise.ELMA.ComponentModel.ComponentManager.InvokeInitHandlers(Action`1 action)
    в EleWise.ELMA.ComponentModel.ComponentManager.Init()
    в EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.Cpj5HMPmZYSTDB8tsy(Object , Object , Object )
    в EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.StartApplicationInThread()*

    Заранее спасибо!

Поделиться:

  1. *EleWise.ELMA.Runtime.Db.DbStructureException: Ошибка обновления структуры БД: Не удалось выполнить метод EleWise.ELMA.KPI.Db.KpiDbStructure.SetPerformanceMatrixItems() —> System.Reflection.TargetInvocationException: Адресат вызова создал исключение. —> System.ArgumentException: option.Value

  2. в Nemerle.Core.option`1.get_Value()

  3. в EleWise.ELMA.Model.Managers.EQL.EQLHelper.AddEQLQuery(ICriteria criteria, String query, EntityMetadata metadata, String alias, Func`4 propertyCriterionFunc)

  4. в EleWise.ELMA.Model.Managers.EntityManager`2.SetupFilterQuery(ICriteria criteria, String query, EntityMetadata metadata, Func`4 propertyCriterionFunc, String alias)

  5. в Castle.Proxies.Invocations.EntityManager`2_SetupFilterQuery_29.InvokeMethodOnTarget()

  6. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  7. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  8. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  9. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  10. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  11. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  12. в Castle.Proxies.PerformanceItemManagerProxy.SetupFilterQuery_callback_1(ICriteria criteria, String query, EntityMetadata metadata, String alias)

  13. в Castle.Proxies.Invocations.EntityManager`2_SetupFilterQuery_28.InvokeMethodOnTarget()

  14. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  15. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  16. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  17. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  18. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  19. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  20. в EleWise.ELMA.Model.Managers.EntityManager`2.SetupAutoFilter(ICriteria criteria, IEntityFilter filter, EntityMetadata metadata, String alias)

  21. в Castle.Proxies.Invocations.EntityManager`2_SetupAutoFilter_19.InvokeMethodOnTarget()

  22. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  23. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  24. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  25. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  26. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  27. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  28. в Castle.Proxies.PerformanceItemManagerProxy.SetupAutoFilter_callback(ICriteria criteria, IEntityFilter filter)

  29. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  30. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  31. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  32. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  33. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  34. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  35. в EleWise.ELMA.Model.Managers.EntityManager`2.SetupFilter(ICriteria criteria, IEntityFilter filter)

  36. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  37. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  38. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  39. в EleWise.ELMA.Runtime.NH.Interceptors.AuditInterceptor.Intercept(IInvocation invocation)

  40. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  41. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  42. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  43. в EleWise.ELMA.Model.Managers.EntityManager`2.Find(IEntityFilter filter, FetchOptions fetchOptions, Boolean cacheble)

  44. в EleWise.ELMA.KPI.Db.KpiDbStructure.SetPerformanceMatrixItems()

  45. — Конец трассировки внутреннего стека исключений —

  46. в System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)

  47. в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)

  48. в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

  49. в EleWise.ELMA.Runtime.Db.DbStructureReader.ExecuteMethod(UserMethod method)

  50. — Конец трассировки внутреннего стека исключений —

  51. в EleWise.ELMA.Runtime.Db.DbStructureReader.ExecuteMethod(UserMethod method)

  52. в EleWise.ELMA.Runtime.Db.DbStructureReader.ExecuteMethods(ExecuteTime executeTime)

  53. в EleWise.ELMA.Runtime.Db.DbStructureReader.ExecuteComplete()

  54. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  55. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  56. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  57. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  58. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  59. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  60. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  61. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  62. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  63. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  64. в EleWise.ELMA.Runtime.Db.DbStructureReader.Read(IEnumerable`1 structures, IEnumerable`1 handlers)

  65. в EleWise.ELMA.Runtime.Providers.NHProvider.InitComplete()

  66. в EleWise.ELMA.Runtime.RuntimeApplication.InitComplete()

  67. в EleWise.ELMA.ComponentModel.ComponentManager.InvokeInitHandlers(Action`1 action)

  68. в EleWise.ELMA.ComponentModel.ComponentManager.Init()

  69. в EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.StartApplicationInThread()

  70. Ошибка обновления структуры БД: Не удалось выполнить метод EleWise.ELMA.KPI.Db.KpiDbStructure.SetPerformanceMatrixItems()

  71. EleWise.ELMA.SDK

  72. в EleWise.ELMA.Runtime.Db.DbStructureReader.ExecuteMethod(UserMethod method)

  73. в EleWise.ELMA.Runtime.Db.DbStructureReader.ExecuteMethods(ExecuteTime executeTime)

  74. в EleWise.ELMA.Runtime.Db.DbStructureReader.ExecuteComplete()

  75. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  76. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  77. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  78. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  79. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  80. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  81. в EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation)

  82. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  83. в EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation)

  84. в Castle.DynamicProxy.AbstractInvocation.Proceed()

  85. в EleWise.ELMA.Runtime.Db.DbStructureReader.Read(IEnumerable`1 structures, IEnumerable`1 handlers)

  86. в EleWise.ELMA.Runtime.Providers.NHProvider.InitComplete()

  87. в EleWise.ELMA.Runtime.RuntimeApplication.InitComplete()

  88. в EleWise.ELMA.ComponentModel.ComponentManager.InvokeInitHandlers(Action`1 action)

  89. в EleWise.ELMA.ComponentModel.ComponentManager.Init()

  90. в EleWise.ELMA.BPM.Mvc.Application.Orchard.ELMAEnviromentStarter.StartApplicationInThread()*

Уважаемые пользователи.

Внимание.
Сообщаем Вам, что данный форум не является официальной страницей технической поддержки компании Ай Ти
Ви.
Форум — это место для общения между пользователями ПО ITV (конечных пользователей и партнеров ITV)
Если у вас возникли вопросы к службе технической поддержки, просим вас задавать их
здесь.
В этом случае Вы обязательно получите ответ на свой вопрос.

[ Закрыто ] Ошибка записи в БД. Требуется обновление структуры.

User

Сообщений: 21
Регистрация: 07.10.2008

Интеллект 4.7.3
Базы MSSQL

При попытке изменить, что-либо в конфигурации выскакивает
данное сообщение
«Ошибка записи в БД. Требуется обновление структуры.»

Вопрос — что делать?
Есть какая-то утилита восстанавливающаю структуру?

Editor

Сообщений: 1314
Регистрация: 31.10.2005

Idb.exe — кнопка обновление структуры.

User

Сообщений: 21
Регистрация: 07.10.2008

Допустимо ли пользоваться idb.exe от более поздних версий Интеллекта для обновления структуры баз версии 4.7.3?
Просто в idb.exe (версия 4.7.2.0) которая идет в комплекте ПО Интеллект 4.7.3 нет такой кнопки «Обновить структуру»

Иван Шевелёв

Editor

Сообщений: 1314
Регистрация: 31.10.2005

#4

15.06.2010 17:13:45

в принципе можно
но проблема может быть не только в этом.
если проблемы будут продолжаться обратитесь в техподдержку.

Изменено:
Иван Шевелёв15.06.2010 17:14:42

E-mail

Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)

Три года назад с целью автоматизации управления организационно-распорядительной документацией была приобретена система elma. Но после года эксплуатации стало понятно, что от нее придется отказаться.

Рассказ о том, как я ушел от elma к easla.com.

Прежде, чем приобрести elma был проведен тщательный анализ системы на адекватность поставленным задачам. Понравилось в системе следующее:

  • Современный веб-интерфейс
  • Возможность настройки бизнес-процессов с помощью блок-схем
  • Возможность написания кода на C#.

Жаль, что не смог увидеть подводных камней сразу. Не буду сильно вдаваться в подробности, но месяца через три после начала эксплуатации появились проблемы разного плана. Прежде всего, меня конечно беспокоили технические проблемы, например:

  • Крайне сложно именовать файлы объекта программно (помнится, техподдержка предложила для этого написать больше сотни строк кода в разных событиях), правда месяца через два разработчики исправили эту проблему.
  • Проблемы при создании процессов с ветвлениями. Был создан процесс рассмотрения входящего письма, который ветвился в соответствии с количеством ответственных исполнителей. Кода в процессе практически не было. Однако регулярно появлялись задачи-фантомы — я их так назвал. Назначено 5 задач, а получается 10. Решить проблему с помощью техподдержки не удалось и мне пришлось писать «костыли», которые уничтожали фантомов программно. Но все равно в непредсказуемых ситуациях они проявлялись.
  • Разработка новых процессов была возможна только на отдельном, тестовом сервере, для которого регулярно приходилось выпрашивать лицензию, т.к. она не включена в поставку. Готовый процесс приходилось вручную переносить с тестового сервера на боевой. При этом боевой сервер приходилось перезапускать. В рабочее время такое невозможно, что приводило к регулярному переносу рабочего времени на ночь.
  • Каждое обновление приносило свои исправления и свои баги. Однажды, обновление принесло баг, который был исправлен 2-3 обновления назад. Причем порой ошибки были смешные — детские. Например, два обновления подряд не могли главное меню развернуть на всю высоту браузера.

Были и другие проблемы. Но то, технические проблемы, которые конечных пользователей не касаются.
Однако и пользователи тоже регулярно жаловались на неудобства, например:

  • Поиск объектов осуществляется только на отдельной странице, что вроде бы логично, и даже критерии поиска можно вводить весьма сложные, но для конечного пользователя этот функционал оказался неудобным. Все давно привыкли, что искать удобно указывая критерии в шапке таблицы, а переход на отдельную страницу и многоходовой ввод критериев вызывал недовольство и отторжение.
  • Elma, работая в локальной сети, начала удивлять своей задумчивостью. Мы изучили систему изнутри. Оказалось, что для каждого объекта система создает отдельную таблицу и еще кучку смежных таблиц для хранения данных, т.е. торможения быть не должно. Однако, когда количество записей каждого объекта превысило тысяч пять, тормоза стали заметны на интуитивном уровне. Странички со списком открывались несколько секунд.

После года эксплуатации elma стало понятно, что система приведет организацию в тупик. Мы не сможем реализовать на ней другие процессы без деградации производительности. И нет гарантии, что реализовав процессы, они будут работать стабильно, учитывая постоянно «вылезающие баги». Все преимущества системы сошли на нет.

Поиск

Был осуществлен поиск системы взамен elma. Одним из критериев поиска была ее бесплатность или дешевизна, т.к. руководство организации не хотело тратиться на покупку новой системы, а мне, как руководителю отдела ИТ принявшему в свое время решение о приобретении elma и обосновав ее приобретение было стыдно в очередной раз просить деньги на тоже самое. Также, в списке критериев были:

  • Привычный пользователю веб-интерфейс
  • Разработка и изменение процессов в реальном времени
  • Гибкость хранения файлов
  • Возможность импорт данных из elma в новую систему.

Как раз easla.com подошла по всем пунктам.

Разработка

После регистрации в системе начал разработку соответствующих бизнес-процессов. Причем атрибуты объектов пришлось реализовывать так, чтобы они могли принимать импортируемые данные из elma.
Потребовалось реализовать четыре процесса:

  • Заказчики
  • Договоры
  • Переписка
  • Задачи.

Процесс «Заказчики» сложно назвать процессом. У объектов нет даже статусов. Фактически – это каталог контрагентов и контактов связанных между собой. Но контрагент отличается от всех других объектов числом атрибутов. Он позволяет хранить не только наименование, но и юридический, и почтовый адреса, а также банковские реквизиты. Всего 40 атрибутов! Контакт – это физическое лицо являющееся сотрудником контрагента.
Процесс «Договоры» в тот момент тоже представлял собой простой каталог договоров. Он был нужен исключительно для классификации писем.
Процесс «Переписка» – очень важный для организации процесс. Он управляет официальной входящей и исходящей корреспонденцией, которая влияет на принятие технических решений и участвует в разрешении конфликтных ситуации в суде. Входящие письма могут принести убытки из-за несвоевременного рассмотрения или ответа. Исходящие письма могут приносить

шести-, а иногда и семизначную прибыль

при их своевременной отправке. Важными отличиями объекта «Исходящий документ» являются:

  • Способ хранения файла письма
  • Способ хранения прилагаемых документов
  • Возможность разработки письма онлайн
  • Возможность отправки письма одним из десятка способов.

Процесс «Задачи» важен точно также, как «Переписка», т.к. является его логическим продолжением. С помощью задач осуществляется контроль исполнения поручений по каждому входящему или исходящему документу. Кроме этого, в каждой задаче осуществляется регистрация трудозатрат в минутах и связка с входящим и исходящим письмом.
Разработку процессов закончил за месяц и встал вопрос собственно импорта данных. Но прежде – экспорта из elma.

Экспорт-импорт

Импорт в easla.com обладает некоторыми особенностями, которые надо учитывать:

  • Первая строка файла с данными может содержать обозначения атрибутов
  • Можно импортировать только 1000 записей за один раз
  • Нескольких значений для одного атрибута надо разделить символом «|»
  • Импортируемые файлы должны иметь разные имена.

Штатных средств выгрузки данных из elma не нашел, поэтому пришлось лезть в базу данных. В базе elma море разных таблиц, необходимые таблицы были найдены интуитивно. Все-таки программисты мыслят одинаково.
Начал экспорт с простых объектов. Сперва контрагенты. Написал вот такой SQL запрос:

ELMA_export_contragents.sql

SELECT DISTINCT 
	   [ELMA].[dbo].[Contractor].[Name] AS [crm_management_contragent_name]
	  ,[LF].[LongName] AS [crm_management_contragent_opf]	  
      ,[ELMA].[dbo].[ContractorType].[Name] AS [crm_management_contragent_type]
      ,[Site] AS [crm_management_contragent_url]
      ,[crm_management_contragent_email] = STUFF((
		SELECT '|' + [ELMA].[dbo].[Email].[EmailString]
		FROM [ELMA].[dbo].[Contractor_Email]
		LEFT OUTER JOIN [ELMA].[dbo].[Email] ON [ELMA].[dbo].[Email].[Id] = [ELMA].[dbo].[Contractor_Email].[Email]
		WHERE [ELMA].[dbo].[Contractor_Email].[Contractor] = [ELMA].[dbo].[Contractor].[Id]
		FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '') 
	  ,[Fax] AS [crm_management_contragent_fax]	
      ,[crm_management_contragent_phone] = STUFF((
		SELECT '|' + [ELMA].[dbo].[Phone].[PhoneString]
		FROM [ELMA].[dbo].[Contractor_Phone]
		LEFT OUTER JOIN [ELMA].[dbo].[Phone] ON [ELMA].[dbo].[Phone].[Id] = [ELMA].[dbo].[Contractor_Phone].[Phone]
		WHERE [ELMA].[dbo].[Contractor_Phone].[Contractor] = [ELMA].[dbo].[Contractor].[Id]
		FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '') 
      ,[LAC].[Name] AS [crm_management_contragent_legal_country]
      ,[LA].[Region] AS [crm_management_contragent_legal_region]
      ,[LA].[District] AS [crm_management_contragent_legal_district]
      ,[LA].[City] AS [crm_management_contragent_legal_city]
      ,[LA].[Locality] AS [crm_management_contragent_legal_locality]
      ,[LA].[Street] AS [crm_management_contragent_legal_street]
      ,[LA].[Building] AS [crm_management_contragent_legal_house]
      ,[LA].[Stroenie] AS [crm_management_contragent_legal_building]
      ,[LA].[Korpus] AS [crm_management_contragent_legal_corp]
      ,[LA].[Appartment] AS [crm_management_contragent_legal_apartment]
      ,[LA].[Zip] AS [crm_management_contragent_legal_postcode]     
      ,[PAC].[Name] AS [crm_management_contragent_post_country]
      ,[PA].[Region] AS [crm_management_contragent_post_region]
      ,[PA].[District] AS [crm_management_contragent_post_district]
      ,[PA].[City] AS [crm_management_contragent_post_city]
      ,[PA].[Locality] AS [crm_management_contragent_post_locality]
      ,[PA].[Street] AS [crm_management_contragent_post_street]
      ,[PA].[Building] AS [crm_management_contragent_post_house]
      ,[PA].[Stroenie] AS [crm_management_contragent_post_building]
      ,[PA].[Korpus] AS [crm_management_contragent_post_corp]
      ,[PA].[Appartment] AS [crm_management_contragent_post_apartment]
      ,[PA].[Zip] AS [crm_management_contragent_post_postcode]
      ,[INN] AS [crm_management_contragent_inn]
      ,[ELMA].[dbo].[ContractorLegal].[KPP] AS [crm_management_contragent_kpp]
      ,[ELMA].[dbo].[ContractorLegal].[OGRN] AS [crm_management_contragent_ogrn]
      ,[ELMA].[dbo].[ContractorLegal].[BIK] AS [crm_management_contragent_bik]
      ,[ELMA].[dbo].[ContractorLegal].[BANK] AS [crm_management_contragent_bank]
      ,[ELMA].[dbo].[ContractorLegal].[KS] AS [crm_management_contragent_ks]
      ,[ELMA].[dbo].[ContractorLegal].[RS] AS [crm_management_contragent_rs]         
  FROM [ELMA].[dbo].[Contractor]
  LEFT OUTER JOIN [ELMA].[dbo].[ContractorType] ON [ELMA].[dbo].[ContractorType].[Id] = [ELMA].[dbo].[Contractor].[Type]
  LEFT OUTER JOIN [ELMA].[dbo].[ContractorLegal] ON [ELMA].[dbo].[ContractorLegal].[Id] = [ELMA].[dbo].[Contractor].[Id]
  LEFT OUTER JOIN [ELMA].[dbo].[Address] AS [LA] ON [LA].[Id] = [ELMA].[dbo].[Contractor].[LegalAddress]
  LEFT OUTER JOIN [ELMA].[dbo].[Country] AS [LAC] ON [LAC].[Id] = [LA].[Country]
  LEFT OUTER JOIN [ELMA].[dbo].[Address] AS [PA] ON [PA].[Id] = [ELMA].[dbo].[Contractor].[PostalAddress]
  LEFT OUTER JOIN [ELMA].[dbo].[Country] AS [PAC] ON [PAC].[Id] = [PA].[Country]
  LEFT OUTER JOIN [ELMA].[dbo].[LegalForm] AS [LF] ON [LF].[Id] = [ELMA].[dbo].[ContractorLegal].[LegalForm]
  
  WHERE [ELMA].[dbo].[Contractor].[IsDeleted] = 0 AND [ELMA].[dbo].[Contractor].[Name] IS NOT NULL AND [ELMA].[dbo].[Contractor].[id] > 500

Несколько значений для одного атрибута объединил в одно с помощью STUFF(…). Результат запроса сохранил в формате csv с разделителем «;». Первой строкой в файле добавил обозначения атрибутов в easla.com. Загрузил файл в разделе «Импорт объектов». Потом указал кодировку файла и пользователя, от имени которого выполнить импорт. Запустил импорт. Процедура импорта не очень быстрая, на создание каждого объекта может уходить порядка одной секунды. Количество импортированных записей было примерно 500. Выглядело это примерно так:

Теперь контакты. Написал вот такой SQL запрос:

ELMA_export_contacts.sql

SELECT 
	   [Surname] AS [crm_management_contact_lastname]
      ,[Firstname] AS [crm_management_contact_firstname]
      ,[Middlename] AS [crm_management_contact_middlename]
      ,[ELMA].[dbo].[Contractor].[Name] AS [crm_management_contact_contragent]
      ,[Department] AS [cnt_management_contact_department]
      ,[Position] AS [cnt_management_contact_position]
      ,[crm_management_contact_email] = STUFF((
		SELECT '|' + [ELMA].[dbo].[Email].[EmailString]
		FROM [ELMA].[dbo].[Contact_Email]
		LEFT OUTER JOIN [ELMA].[dbo].[Email] ON [ELMA].[dbo].[Email].[Id] = [ELMA].[dbo].[Contact_Email].[Email]
		WHERE [ELMA].[dbo].[Contact_Email].[Contact] = [ELMA].[dbo].[Contact].[Id]
		FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '') 
      ,[crm_management_contact_phone] = STUFF((
		SELECT '|' + [ELMA].[dbo].[Phone].[PhoneString]
		FROM [ELMA].[dbo].[Contact_Phone]
		LEFT OUTER JOIN [ELMA].[dbo].[Phone] ON [ELMA].[dbo].[Phone].[Id] = [ELMA].[dbo].[Contact_Phone].[Phone]
		WHERE [ELMA].[dbo].[Contact_Phone].[Contact] = [ELMA].[dbo].[Contact].[Id]
		FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '') 
	  ,CASE WHEN [Year] IS NULL THEN NULL ELSE CONVERT(varchar, [Birthday],104) END AS [crm_management_contact_birthday]
	  ,[RAC].[Name] AS [crm_management_contact_country]
      ,[RA].[Region] AS [crm_management_contact_region]
      ,[RA].[District] AS [crm_management_contact_district]
      ,[RA].[City] AS [crm_management_contact_city]
      ,[RA].[Locality] AS [crm_management_contact_locality]
      ,[RA].[Street] AS [crm_management_contact_street]
      ,[RA].[Building] AS [crm_management_contact_house]
      ,[RA].[Stroenie] AS [crm_management_contact_building]
      ,[RA].[Korpus] AS [crm_management_contact_corp]
      ,[RA].[Appartment] AS [crm_management_contact_apartment]
      ,[RA].[Zip] AS [crm_management_contact_postcode]	         
  FROM [ELMA].[dbo].[Contact]
  LEFT OUTER JOIN [ELMA].[dbo].[Contractor] ON [ELMA].[dbo].[Contractor].[Id] = [ELMA].[dbo].[Contact].[Contractor]
  LEFT OUTER JOIN [ELMA].[dbo].[Address] AS [RA] ON [RA].[Id] = [ELMA].[dbo].[Contact].[RegistrationAddress]
  LEFT OUTER JOIN [ELMA].[dbo].[Country] AS [RAC] ON [RAC].[Id] = [RA].[Country]
  WHERE [ELMA].[dbo].[Contact].[Id] > 1919

Все действия аналогичны предыдущему импорту. Особенность импорта контактов после контрагентов заключалась в том, что контакт обладает атрибутом «Контрагент», который ссылается на контрагента. Поэтому, в первую очередь были импортированы контрагенты, а за ними контакты. При импорте контактов в поле «Контрагент» easla.com

находила и подставляла ссылки на контрагентов

! Количество импортированных записей было примерно 1800.
После импорта контрагентов и контактов получилась структурированная база данных, в которой все контакты принадлежат определенным контрагентам. На импорт данных ушло примерно 2 часа. Причем половину времени потратил на разработку SQL запросов. В результате получил две готовые и взаимосвязанные таблицы.
Реестр контрагентов:

Реестр контактов:

На очереди стоял импорт договоров. Выгрузил их с помощью вот такого SQL запроса:

ELMA_export_contracts.sql

SELECT 
      [RegYear] AS [agr_management_contract_year]
      ,[RegNum] AS [agr_management_contract_num]
      ,[RegAppendixFront] AS [agr_management_contract_appendix_front]
      ,[RegAppendixBack] AS [agr_management_contract_appendix_back]
      ,[RegCode]
      ,[ELMA].[dbo].[Contractor].[Name] AS [agr_management_contract_contragent]
      ,'"'+REPLACE(REPLACE(REPLACE([Title],CHAR(10),''),CHAR(13),''),';',',')+'"' AS [agr_management_contract_title]
      ,CONVERT(varchar, [RegDate],104) AS [agr_management_contract_reg_date]
      ,CONVERT(varchar, [SignDate],104) AS [agr_management_contract_sign_date]
      ,[PM1].[EMail] AS [agr_management_contract_project_manager]
      ,[PM2].[EMail] AS [agr_management_contract_project_manager_helper]
      ,agr_management_contract_fields = STUFF((
		SELECT '|' + [F1].[Title]
		FROM [ELMA].[dbo].[Project_Fields]
		LEFT OUTER JOIN [ELMA].[dbo].[Field] AS [F1] ON [F1].[Id] = [ELMA].[dbo].[Project_Fields].[Field]
		WHERE [ELMA].[dbo].[Project_Fields].[Parent] = [ELMA].[dbo].[Project].[Id]
		FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '') 
  FROM [ELMA].[dbo].[Project]
  LEFT JOIN [ELMA].[dbo].[Contractor] ON [ELMA].[dbo].[Contractor].[Id] = [ELMA].[dbo].[Project].[Contragent]
  LEFT JOIN [ELMA].[dbo].[User] AS [PM1] ON [PM1].[Id] = [ELMA].[dbo].[Project].[ProjectManager]
  LEFT JOIN [ELMA].[dbo].[User] AS [PM2] ON [PM2].[Id] = [ELMA].[dbo].[Project].[ProjectManagerHelper]

Все действия также аналогичны предыдущему импорту. И точно также, как с контактами, все договоры обладая атрибутом «Контрагент» при импорте связались с соответствующими контрагентами. Количество импортированных записей было немногим больше 200.

Вот теперь, когда все контрагенты, контакты и договоры, на которые ссылаются входящие и исходящие документы находились в easla.com, можно было приступить к импорту переписки.
Количество входящих и исходящих писем было большим — примерно 5400 и 5300 соответственно.
Интересно то, что входящие и исходящие письма ссылаются друг на друга, т.е. исходящее может быть отправлено в ответ на входящее и информации об этом сохраняется в соответствующем атрибуте исходящего документа. Входящий документ может быть получен в ответ на исходящий и информация об этом хранится в соответствующем атрибуте входящего документа. Таким образом, при импорте одного из типов объектов обеспечить формирование всех связей

невозможно

. Первыми были импортированы входящие документы, но перед этим, тип атрибута хранящего ссылку на исходящий документ был изменен с «Объект» на «Строка». Это позволило сохранить в атрибуте описание исходящего документа, которого пока нет в базе данных и использовать его позже, после импорта исходящих документов. В конечном счете, для выгрузки входящих документов получился вот такой SQL запрос:

ELMA_export_incomings.sql

SELECT 
       CASE [DocMethod] WHEN 1 THEN 'Эл. письмо' WHEN 2 THEN 'Бумажное письмо' WHEN 3 THEN 'Факсимиле' WHEN 4 THEN 'Передан лично' END AS [crs_management_incoming_method]
      ,[ELMA].[dbo].[Contractor].[Name] AS [crs_management_incoming_contragent]
      ,[ELMA].[dbo].[Contact].[Surname] + ' ' + SUBSTRING([ELMA].[dbo].[Contact].[Firstname],1,1) + '.' + SUBSTRING([ELMA].[dbo].[Contact].[Middlename],1,1) + '.' AS [crs_management_incoming_contact]
      ,[crs_management_incoming_performers] = STUFF((
		SELECT '|' + [C1].[Surname] + ' ' + SUBSTRING([C1].[Firstname],1,1) + '.' + SUBSTRING([C1].[Middlename],1,1) + '.'
		FROM [ELMA].[dbo].[IncomingDoc_Performers]
		LEFT OUTER JOIN [ELMA].[dbo].[Contact] AS [C1] ON [C1].[Id] = [ELMA].[dbo].[IncomingDoc_Performers].[Performer]
		WHERE [ELMA].[dbo].[IncomingDoc_Performers].[Parent] = [ELMA].[dbo].[IncomingDoc].[Id]
		FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '') 
      ,CONVERT(varchar, [ELMA].[dbo].[IncomingDoc].[ContragentDate], 104) AS [crs_management_incoming_contragent_date]
      ,[ELMA].[dbo].[IncomingDoc].[ContragentRegNum] AS [crs_management_incoming_contragent_regnum]
      ,CONVERT(VARCHAR,[ELMA].[dbo].[IncomingDoc].[ReceiveDate],20) AS [crs_management_incoming_receive_date]
      ,[ELMA].[dbo].[IncomingDoc].[ReceiveOriginalDate] AS [crs_management_incoming_receive_original_date]
      ,[ReceiveOriginalDateFlag] AS [crs_management_incoming_receive_original_flag]
      ,[ELMA].[dbo].[IncomingDoc].[ReceiveRegNum] AS [crs_management_incoming_receive_regnum]
      ,REPLACE(REPLACE([ELMA].[dbo].[IncomingDoc].[Subj],CHAR(13),''),CHAR(10),'') AS [crs_management_incoming_subj]
      ,CASE [ELMA].[dbo].[IncomingDoc].[DocType] 
		WHEN 0 THEN 'Задания'
		WHEN 1 THEN 'Замечания'
		WHEN 2 THEN 'Ответы на замечания'
		WHEN 3 THEN 'Запрос исходных данных'
		WHEN 4 THEN 'Выдача исходных данных'
		WHEN 5 THEN 'Запрос согласования'
		WHEN 6 THEN 'Согласование ранее направленных материалов'
		WHEN 7 THEN 'Запрос информации'
		WHEN 8 THEN 'Пожелания контрагента'		
		WHEN 9 THEN 'Претензия'
		WHEN 13 THEN 'Постановление'
		WHEN 14 THEN 'Отзыв'
		WHEN 17 THEN 'Ходатайство'
		WHEN 15 THEN 'Определение'
		WHEN 10 THEN 'Приглашение'
		WHEN 18 THEN 'О подтверждении технической возможности'
		WHEN 11 THEN 'Запрос коммерческого предложения'
		WHEN 12 THEN 'Договорная документация'
		WHEN 16 THEN 'Коммерческое предложение'
		WHEN 99 THEN 'Прочее'
		END AS [crs_management_incoming_content]
      ,[U1].[UserName]+'@sngp.ru' AS [crs_management_incoming_to]
      ,[U2].[UserName]+'@sngp.ru' AS [crs_management_incoming_forwardto]
      ,[ELMA].[dbo].[OutgoingDoc].[RegNum] AS [crs_management_incoming_outgoing]
      ,[ELMA].[dbo].[Project].[RegCode] AS [crs_management_incoming_contract]
	  ,[crs_management_incoming_attachments] = STUFF((
		SELECT '|' + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LTRIM(STR([F0].[Id]) + ' ' + [F0].[Name]),'«',''),'»',''),'–','-'),'.zip.zip','.zip'),'.docx','.docx'),'  ',' ') 
		FROM [ELMA].[dbo].[IncomingDoc_DocAttachments]
		LEFT OUTER JOIN [ELMA].[dbo].[FS_FILES] AS [F0] ON [F0].[Uid] = [ELMA].[dbo].[IncomingDoc_DocAttachments].[DocAttachment]		
		WHERE [ELMA].[dbo].[IncomingDoc_DocAttachments].[Parent] = [ELMA].[dbo].[IncomingDoc].[Id]
		FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '') 
	  ,LTRIM(STR(ISNULL([F1].[Id],[F2].[Id]))) + REVERSE(SUBSTRING(REVERSE(ISNULL([F1].[Name],[F2].[Name])), 0, CHARINDEX('.',REVERSE(ISNULL([F1].[Name],[F2].[Name]))) + 1)) AS [crs_management_incoming_document]
	  ,[S].[Name] AS [status]
  FROM [ELMA].[dbo].[IncomingDoc]
  LEFT OUTER JOIN [ELMA].[dbo].[Contractor] ON [ELMA].[dbo].[Contractor].[Id] = [ELMA].[dbo].[IncomingDoc].[Contragent]
  LEFT OUTER JOIN [ELMA].[dbo].[Contact] ON [ELMA].[dbo].[Contact].[Id] = [ELMA].[dbo].[IncomingDoc].[Contact]
  LEFT JOIN [ELMA].[dbo].[User] AS [U1] ON [U1].[Id] = [ELMA].[dbo].[IncomingDoc].[To]
  LEFT JOIN [ELMA].[dbo].[User] AS [U2] ON [U2].[Id] = [ELMA].[dbo].[IncomingDoc].[ForwardTo]
  LEFT JOIN [ELMA].[dbo].[Project] ON [ELMA].[dbo].[Project].[Id] = [ELMA].[dbo].[IncomingDoc].[Project]
  LEFT JOIN [ELMA].[dbo].[OutgoingDoc] ON [ELMA].[dbo].[OutgoingDoc].[Id] = [ELMA].[dbo].[IncomingDoc].[OutgoingDoc]
  LEFT JOIN [ELMA].[dbo].[DocumentVersion] AS [DV1] ON [DV1].[DocumentId] = [ELMA].[dbo].[IncomingDoc].[Id] AND [DV1].[Status] = 2 AND ISNUMERIC([DV1].[File]) = 1
  LEFT JOIN [ELMA].[dbo].[DocumentVersion] AS [DV2] ON [DV2].[DocumentId] = [ELMA].[dbo].[IncomingDoc].[Id] AND [DV2].[Status] = 2 AND ISNUMERIC([DV1].[File]) = 0
  LEFT JOIN [ELMA].[dbo].[FS_FILES] AS [F1] ON [F1].[Id] = [DV1].[File]  
  LEFT JOIN [ELMA].[dbo].[FS_FILES] AS [F2] ON [F2].[Uid] = [DV2].[File]  
  LEFT JOIN [ELMA].[dbo].[Document] ON [ELMA].[dbo].[Document].[Id] = [ELMA].[dbo].[IncomingDoc].[Id]
  LEFT JOIN [ELMA].[dbo].[LifeCycleStatus] AS [S] ON [S].[Id] = [ELMA].[dbo].[Document].[Status]
  WHERE --[ELMA].[dbo].[IncomingDoc].[Subj] NOT LIKE 'тест%' AND [ELMA].[dbo].[IncomingDoc].[Subj] NOT LIKE 'test%'
  [ELMA].[dbo].[IncomingDoc].[Id] > 12193
  ORDER BY [ELMA].[dbo].[IncomingDoc].[ReceiveDate]

Кстати, осложнялась ситуация еще и тем, что вместе с данными нужно было выгрузить и импортировать все файлы.
Совершенной неожиданностью стало то, что разработчики elma в какой-то момент изменили способ хранения файлов, поэтому пришлось создавать два разных запроса и объединять их вместе для выгрузки файлов. При первой попытке выгрузки возникла проблема. Имена некоторых файлов повторялись и перезаписывали друг друга. Пришлось изменить в запросе имя конечного файла, добавив к нему id. Кроме, собственно, файла и его имени нужно было перенести в easla.com и дополнительные данные, хранящиеся вместе с файлом. Их тоже пришлось вписать в имя файла. Таким образом, конечное имя файла формировалось по принципу: id data filename.ext. Так как elma хранит файлы в отдельном каталоге, результат запроса планировалось преобразовать в bat файл для выгрузки файлов в нужное место. В конечном счете, для выгрузки файлов входящих документов получился вот такой запрос:

ELMA_export_incoming_files.sql

SELECT 
'copy "\ssv11c$ELMA3-Standart.cfgUserConfigFiles' + [FNAME] + '" "c:tempelmaincoming' + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(ISNULL([ENDNAME],[FNAME]),'«',''),'»',''),'–','-'),'.zip.zip','.zip'),'.docx','.docx'),'  ',' ') + '"'
FROM (
	SELECT [ELMA].[dbo].[IncomingDoc].[Id] AS [Id], [ELMA].[dbo].[IncomingDoc].[Subj] AS [Subj], [ELMA].[dbo].[IncomingDoc].[ReceiveDate] AS [RD], LTRIM(STR([F0].[Id])) + REVERSE(SUBSTRING(REVERSE([F0].[Name]), 0, CHARINDEX('.',REVERSE([F0].[Name])) + 1)) AS [FNAME], LTRIM(STR([F0].[Id]) + ' ' + [Name]) AS [ENDNAME]
	FROM [ELMA].[dbo].[IncomingDoc]
    LEFT JOIN [ELMA].[dbo].[IncomingDoc_DocAttachments] ON [ELMA].[dbo].[IncomingDoc_DocAttachments].[Parent] = [ELMA].[dbo].[IncomingDoc].[Id]
    LEFT OUTER JOIN [ELMA].[dbo].[FS_FILES] AS [F0] ON [F0].[Uid] = [ELMA].[dbo].[IncomingDoc_DocAttachments].[DocAttachment]	    
	UNION
	
	SELECT [ELMA].[dbo].[IncomingDoc].[Id] AS [Id], [ELMA].[dbo].[IncomingDoc].[Subj] AS [Subj], [ELMA].[dbo].[IncomingDoc].[ReceiveDate] AS [RD], LTRIM(STR(ISNULL([F1].[Id],[F2].[Id]))) + REVERSE(SUBSTRING(REVERSE(ISNULL([F1].[Name],[F2].[Name])), 0, CHARINDEX('.',REVERSE(ISNULL([F1].[Name],[F2].[Name]))) + 1)) AS [FNAME], NULL AS [ENDNAME]
	FROM [ELMA].[dbo].[IncomingDoc]
    LEFT JOIN [ELMA].[dbo].[DocumentVersion] AS [DV1] ON [DV1].[DocumentId] = [ELMA].[dbo].[IncomingDoc].[Id] AND [DV1].[Status] = 2 AND ISNUMERIC([DV1].[File]) = 1
    LEFT JOIN [ELMA].[dbo].[DocumentVersion] AS [DV2] ON [DV2].[DocumentId] = [ELMA].[dbo].[IncomingDoc].[Id] AND [DV2].[Status] = 2 AND ISNUMERIC([DV1].[File]) = 0
    LEFT JOIN [ELMA].[dbo].[FS_FILES] AS [F1] ON [F1].[Id] = [DV1].[File]  
    LEFT JOIN [ELMA].[dbo].[FS_FILES] AS [F2] ON [F2].[Uid] = [DV2].[File]  
) AS [F]
WHERE [FNAME] IS NOT NULL 
ORDER BY [RD]

Загрузил csv файл, загрузил все файлы входящих. Процедура оказалась долгой, т.к. общий объем файлов был несколько гигабайт. Хорошо, что импорт данных по 1000 записей, т.к. без накладок не обошлось. Обязательно в каждой тысяче всплывало по 10-15 ошибок. Выявить ошибки удалось перед процедурой импорта, с помощью предварительного просмотра. Очень удобно. В общем, каждая тысяча требовала предварительной подготовки.
Таким же образом импортировал все исходящие документы.
После этого, в объектах была написана процедура преобразования имен файлов. Она удаляла id, а data, переносила в revdata файла в easla.com. Таким образом, файлы приложений получили исходные имена filename.ext.

function updateAttachmentsFileName()
{
    $files = cobjectref()->attributeref('crs_management_incoming_attachments')->availableFiles();
    foreach ($files as $f)
    {
        $parts = explode(' ', $f->nowname, 2);
        if (count($parts) == 2)
        {
            $f->nowname = $parts[1];
            $f->save();
        }
    }
}

Специально для входящих писем была написана процедура, которая заменяла описания ссылок на исходящие документы на их идентификаторы.

function updateOutgoing()
{
    if (empty(cobjectref()->attributeref('crs_management_incoming_outgoing')->value))
        return;
        
    $outgoing_doc = selectAll(      
        'crs_management',
        'crs_management_outgoing',
        array(),
        array('crs_management_outgoing_regnum'=>cobjectref()->attributeref('crs_management_incoming_outgoing')->value)
    );
    
    if (empty($outgoing_doc))
        return;
        
    cobjectref()->attributeref('crs_management_incoming_outgoing')->value = $outgoing_doc['id'];
}

Проверив работу этих процедур запустил пакетное обновление объектов. Медленно, но верно easla.com обновила все объекты! После этого, изменил тип атрибута ссылающегося на исходящий документ во входящем документе со «Строка» на «Объект», чтобы идентификаторы объекта стали объектами.
Таким образом, easla.com переименовала файлы и организовала

перекрестные ссылки

между входящими и исходящими документами!
В целом, процедура экспорта и импорта заняла примерно 3 рабочих дня. Загрузку файлов на easla.com осуществлял по вечерам, когда канал Интернет был свободен. Импорт данных по 1000 был удобен еще и потому, что старые письма можно было импортировать сразу, не беспокоясь о целостности данных. И только перед «боевым» запуском загрузил и импортировал остатки – последние пару сотен писем.
Миграцию осуществил в конце 2014 года, а запустил в эксплуатацию все описанные бизнес-процессы 12 января 2015 года.
Прошло уже больше года. Общий объем писем превысил 20 тысяч. Количество задач перевалило за 10 тысяч. Вот свежие данные из главного меню:

Итоги

Могу с уверенностью сказать, что год назад все сделал правильно. Вот основные выгоды:

  • Время на регистрацию писем сократилось до секунд или минут
  • Время на отправку исходящего письма сократилось с 30-40 минут до секунд
  • Появилась возможность размещать файлы исходящих писем на файлообменнике easla.com
  • Разработка письма стала проще, т.к. теперь файл в формате docx хранится в объекте easla.com, а не где попало у пользователя
  • Связь задач и писем позволяет формировать и выгружать сложные отчеты, которые приносят организации прибыль
  • Получил развитие процесс управления договорами, если раньше он был простым каталогом, то теперь он настоящий процесс со статусами, контролем выполнения, подписанием актов и поступлением средств.

В настоящий момент развитие получили и другие процессы: управление задачам, согласованиями, субподрядными договорами. Все то, что опасались ранее делать в elma, теперь сделано в easla.com!

P.S. Прошу не расценивать статью как антирекламу elma. Система не подошла нам, но вполне может подойти другим, если они не будут «выжимать из нее соки», как мы.

Ошибка структура базы данных имеет ошибки

После обновлений ошибка «структура базы данных имеет ошибки»

Добрый день! Обновил движок и возникла проблема

Ошибка! Структура базы данных имеет ошибки (нет таблиц: 0, нет полей: 0, поля отличаются: 1, нет индексов: 0). Всего 1, автоматически могут быть исправлены: 0.

Пробовал «Оптимизация БД» и «Проверка БД» ничего не помогает.
Кто знает как исправить. Спасибо.

Цитата
Ирина Боброва написал:
Всем добрый вечер! Столкнулись с проблемой: Структура базы данных Ошибка! Структура базы данных имеет ошибки (нет таблиц: 0, нет полей: 0, поля отличаются: 2, нет индексов: 0). Всего 2, автоматически могут быть исправлены: 0.
Может кто победил данную проблему, отпишитесь пожалуйста.

у вас картинки тоже перестали загружаться новые?

В общем эта проблема решается выполнением SQL запроса к базе данных через интерфейс Битрикса

Код

В таблице b_user_hit_auth поле TIMESTAMP_X «datetime NULL DEFAULT NULL » не соответствует описанию на диске «timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP»

ALT ER TABLE `b_user_hit_auth` MODIFY `TIMESTAMP_X` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;

ALT ER TABLE `b_user_hit_auth` MODIFY `TIMESTAMP_X` datetime NULL DEFAULT NULL ;

при выполнении данного запроса:
Запрос завершен, изменено 0 записей. (0.010 s)

Скажите пожалуйста, кто сталкивался с данной ошибкой

Цитата
SkyNetYar написал:
В общем эта проблема решается выполнением SQL запроса к базе данных через интерфейс Битрикса

Код

Не помогло( при этом запрос выполняется успешно), что ещё можно сделать?

Цитата
2016-Sep-06 21:27:40 Структура базы данных (check_mysql_table_structure): Fail ALT ER TABLE `b_user_hit_auth` MODIFY `TIMESTAMP_X` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP; Ошибка! Структура базы данных имеет ошибки (нет таблиц: 0, нет полей: 0, поля отличаются: 1, нет индексов: 0). Всего 1, автоматически могут быть исправлены: 0.

Выполните запрос к базе данных (Настройки > Инструменты > SQL запрос)

Цитата
ALT ER TABLE `b_user_hit_auth` MODIFY `TIMESTAMP_X` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;
Цитата
SkyNetYar написал:
ALT ER TABLE `b_user_hit_auth` MODIFY `TIMESTAMP_X` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;

Не проходит.
Ошибка во время выполнения запроса:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ALT ER TABLE `b_user_hit_auth` MODIFY `TIMESTAMP_X` timestamp NOT NULL DEFAULT C’ at line 1!

После отключения Автокомпозита прошел запрос и ошибка ушла.

Код

После обновления системы, при попытке полного тестирования системы проявляется ошибка
Структура базы данных — Ошибочный ответ сервера. Не удалось завершить тестирование.
В логах Журнала проверки системы следующее ()

В таблице b_user_hit_auth поле TIMESTAMP_X «datetime NULL DEFAULT NULL » не соответствует описанию на диске «datetime NOT NULL
Структура базы данных (check_mysql_table_structure): Ok
41% done
Структура базы данных (check_mysql_table_structure): Ok
45% done
на 45% проверка останавливается и дальше не идет.

По поводу b_user_hit_auth поле TIMESTAMP_X
я проверил, что
В файле /bitrix/modules/main/install/mysql/install.sql

строка выглядит так как нужно —
INDEX ix_module_to_module(FROM_MODULE_ID(20), MESSAGE_ID(20), TO_MODULE_ID(20), TO_CLASS(20), TO_METHOD(20))

Поддержка написала такое. Пожалуйста, обратитесь к администратору сервера или хостеру для выяснения причин и их устранения.

Пожалуйста, подскажите что можно предпринять?
Сразу отпишусь по результатам.

Ошибка SDBL 1С 8.3

Помощь персонального менеджера, оперативность сдачи отчетности, соответствие законодательству РФ

  • Исключение «простоев» работы сотрудников;
  • Устранение «плохих» блокировок;
  • Устранение таймаутов, диадоков, длительных запросов;
  • Управляемые блокировки.

Различные конфигурации 1С из-за сложности кода, бывает, огорчают администраторов и пользователей ошибками. Многие из них легко устраняются, но существуют и те, что способны испортить достаточно «крови» ИТ-службам. Одна из таких ошибок известна в кругах специалистов по 1С под именем «Ошибка SDBL».

Исправление ошибки SDBL в 1С

Обычно сообщение об ошибке SDBL мы видим при обновлении конфигурации, сохранении изменений или работе обменов данными. Чаще всего сопровождаться она следующими сообщениями:

  • Ошибка при полнотекстовом индексировании;
  • Попытка вставки значения недопустимого типа;
  • Поле таблицы не может принимать значение NULL;
  • Ожидается выражение (pos = );
  • Пропущена точка с запятой;
  • Выход за пределы размерности;
  • Поле определено неоднозначно.

Также эта ошибка может сопровождаться и другими информационными сообщениями. Чтобы решить эту проблему, администраторы 1С для начала применяют достаточно простые решения:

  1. Очистка КЭШа на сервере и компьютере пользователя, где появилась ошибка. Необходимо выйти из 1С, найти все папки с названиями типа «bd5c8ea4-b65f-4c23-a9c8-2dccfb0b15fa» в папке «Application Data» и удалить их;
  2. Перезагрузка сервера приложений 1С. Также может помочь включение и выключение всех связанных сервисов – SQL и его агента. Заходим на сервер, находим службу «Агент сервера 1С» и останавливаем ее с помощью контекстного меню. Аналогично поступаем со службами «SQL Server» и «Агент SQL Сервера» на сервере SQL. Затем включаем в обратной последовательности;
  3. Механизм «Тестирование и исправление ИБ», доступный в конфигураторе. В нужной информационной базе заходим в «Администрирование» — «Тестирование и исправление. » и запускаем процесс;
  4. Выгрузка базы данных в файл формата DT и загрузка его обратно в ту же информационную базу. Также выполняется в режиме конфигуратора через меню «Администрирование». Используются команды «Выгрузить информационную базу. » и «Загрузить информационную базу. »;
  5. Загрузка из резервной копии, если она сделана недавно. Резервные копии необходимо делать регулярно и дополнительно перед каждым серьезным действием с информационной базой. Резервные копии можно делать с помощью SQL MS или конфигуратора через выгрузку файла формата dt;
  6. Обновление платформы до более новой версии с официального портала ИТС. Необходимо скачать с сайта ИТС последний релиз платформы и установить на сервере и клиентских компьютерах.

Если все эти методы не дали результата, то для клиент-серверного варианта базы 1С можно попробовать очистить таблицы _ConfigChngR_ExtProps и _ConfigChngR. Делать это доверьте профессионалу, умеющему работать с MSSQL. В подавляющем большинстве случаев один из этих методов обязательно поможет. Если же ошибка осталась, и у вас нет резервной копии, следует обратиться к профессионалам за помощью.

Восстановление структуры DBSchema

Ситуация

Маленькая файловая база Бух3, учёт ведется 4 года, во время очередного обновления вылетает конфигуратор, при повторной попытке обновления имеем сообщение о невозможности применить изменения конфигурации.

Стандартный алгоритм действий:

  1. Долго себя ругаем за лень при создании архива перед обновлением;
  2. Откатываем конфигурацию на версию БД. При попытке запустить базу – ошибка, что таблица такая-то не найдена и вылет;
  3. Конфигуратор – тестирование и исправление, опять ошибка, что таблица такая-то отсутствует и невозможность ремонта;
  4. Попытка залить предыдущую типовую конфигурацию – опять критическая ошибка SDBL ;
  5. Последняя попытка – выгрузка базы в DT , проходит частично и вылетает. При загрузке DT – получаем базу с 90% пустых таблиц и сохранившейся ошибкой при тестировании и исправлении.
  6. С удивлением узнаем, что у админа нет архивных копий от слова совсем;
  7. Осознание того, что проблема серьезная и требуется помощь. Отправка запроса в 1С и замечательный ответ о том, что ваша база разрушена, поэтому восстановите базу из архивной копии и будет вам хорошо.
  8. Гуглим, находим “ Tool 1 CD ”, с горечью осознаём, что с версией 8.3.8 он работает только на чтение. Вывод – что-то чинить можно в режиме SQL .
  9. Загружаем базу из ранее выгруженного DT . Получаем те же проблемы, но на этот раз можно использовать Profiler и, например, создать недостающие таблицы, поля.
  10. Некоторое время закрываем проблемы по отсутствующим полям на SQL , пока не получаем вот такое сообщение

    При условии работающей базы, мы вполне можем узнать что это за регистр, но работающей базы у нас нет, от слова совсем.
  11. Опять гуглим на предмет: «А что такое схема базы данных», и вот тут информация крайне скудная. Официальная трактовка от 1С:
  12. Открываем эту табличку в SQL , это бинарные данные. Выгружаем их в файлик, открываем его Notepad ++ и видим набор массивов с описанием полей базы:

    Попытка найти информацию о том, что же это всё такое – результат нулевой. Ок, значит разбираться придётся самому. Перечитывание нескольких статей на инфостарте даёт понимание необходимости просмотра также данных сопоставление объектов конфигурации в файлике DBNames и самой конфигурации 1С.
  13. Проблема, как найти идентификаторы объектов конфигурации 1С, решилась выгрузкой конфигурации в XML . Предварительно файл cf был выгружен с помощью Tool 1 CD и загружен в чистую базу на SQL .
  14. Далее путем поиска таблицы в DBNames получаем её идентификатор, и ищем по нему в каталоге с выгруженной конфигурацией XML . Находим, удаляем объект в конфигураторе, снова попытка сохранения – другая ошибка, на другую таблицу… в общем повторяем итерацию в надежде вылечить базу до тех пор, пока не получаем вот такую ошибку:
  15. И это серьезная засада, потому как непонятно что ещё можно удалить из конфигуратора. Можно конечно запустить Profiler и найти на какую таблицу он ругается. Но в конце концов это всё закончилось такой ошибкой на поле Fld 793 (ОбластьДанныхОсновныеДанные), и по профайлеру всё останавливается после проверки таблицы журналов и всё, вылетает.
  16. В итоге приходим к выводу, что «скотчем и соплями» проблему не решить, и придётся подходить к вопросу системно.

Инструментарий

  1. Загрузка/выгрузка данных из DBSchema и DBNames (используя алгоритм Deflate);
  2. Загрузка схемы объекта из чистой эталонной базы, автозамена реквизитов объекта на наши. Добавление/замена схем объектов в DBSchema ;
  3. Проверка и автоматическое(не все) создание недостающих схем объектов, проверка реквизитов в таблице DBNames ;
  4. Реструктуризация таблиц SQL , добавление/замена полей(не все);
  5. Загрузка в таблицы SQL , выгруженные из файловой базы с помощью Tool 1CD

upd. 2019.07.13 — Добавлена интеграция с обработкой //infostart.ru/public/275315/. Подключаемся к «убитой» базе, читаем список таблиц и загружаем напрямую нужные таблицы в SQL

Причины купить

Экономия собственного времени на решение подобной задачи

Достоинства

Обработка предназначена ТОЛЬКО для программистов 1С. Написана под конкретные проблемы конкретной базы. Автоматически восстанавливаются схемы Справочников, Документов, Журналов документов, Регистров сведений, Регистров накопления, Констант, Перечислений, Регламентных заданий. остальные объекты править ручками, либо писать код по аналогии с моим.

Типовые битрикс ошибки

1.Duplicate entry ‘H1vyYZlZDAeRMeZJ76uKHWozRqctgvK1’ for key ‘PRIMARY’
Нужно снести содержимое базы и заново попытаться восстанавливать сайт из резервной копии, также нужно посмотреть включено ли хранение сессий в отдельной базе данных в настройках расширенного режима безопасности группы администратор, отключить такую настройку.

2. Превышен лимит на размер базы данных
На виртуальном хостинге есть ограничения размеров базы данных. Если размер базы превысит лимит, вам начнут высылаться уведомления. При превышении максимального размера высылается предупреждение с последующей блокировкой до момента устранения проблемы. В этом случае нужно или повысить тариф, или смотреть содержимое базы. В моем случае таблицы b_event_log — много места занимала, b_event — очень много было, b_captcha — также много было. Нужно войти в Phpmyadmin и в базе очистить указанные таблицы.

3. Allowed memory size of
Откройте файл php.ini и найдите там строку: memory_limit = 256M, увеличьте значение (для тарифов виртуального хостинга есть ограничения)

4. Cannot use BitrixMainTextString as String because ‘String’
нет обновлений битрикс для используемой версии РНР, обычно проблема возникает при восстановлении сайта на другом хостинге. Пробуйте начать с версии РНР 5.6

5. DB query error. Please try later
Обычно ошибка доступа к базе данных
1) Открой файл /bitrix/php_interface/dbconn.php и вставь в самый низ файла строку $DBDebug=true;

6. max_input_vars
В файле .htaccess задайте php_value max_input_vars 10000, но не всегда помогает для изменения данной директивы необходимо отредактировать файл php.ini: max_input_vars = 10000

7. Maximum execution time of 60 seconds exceeded
Могут помочь такие варианты:
1) после внесения изменений в php.ini требуется рестарт apache.
2) если определена переменная set_time_limit в файле /bitrix/php_interface/dbconn.php то она имеет приоритет по сравнению с тем что хранится в php.ini в max_execution_time
3) ошибка может возникать из-за нехватки значения параметра memory_limit(также определяется в этих файлах)

8. MySQL server has gone away
В процессе выполнения запроса сервер оборвал соединение. Проблема связана с настройкой MySQL и часто возникает когда на сервере установлен небольшой лимит времени на соединение.
Установите в bitrix/php_interface/after_connect.php:
$DB->Query(«SET wait_timeout=28800»);

9. opcache.revalidate_freq для битрикс
Мне помогает связка в файле .htaccess, особенно на тарифе host-0 reg.ru, который не сильно подходит для битрикс тарифа:
php_value opcache.revalidate_freq 0
php_value max_input_vars 10000
php_value default_socket_timeout 60
Также помогает переход на РНР 7.0

10. Query Error SET LOCAL time_zone
на виртуалке битрикс
$DB->Query(«SET LOCAL time_zone=’».date(‘P’).»‘»);

11. Кодировка таблицы (cp1251) отличается от кодировки базы (utf8)
Для той таблицы на которую указывает ошибка потребуется выполнить ряд SQL запросов в базе данных:
ALTER TABLE имя_таблицы CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ciДля смены кодировки таблиц выполните, пожалуйста, запрос для каждой таблицы:
ALTER TABLE имя_таблицы CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

12. Ошибка больших файлов импорта
Потребуется увеличить лимиты размера файлов в файле php.ini.

13. Ошибка! Структура базы данных имеет ошибки- поля отличаются
Смотрим название таблиц в логах
Перейдите, пожалуйста, в sql-строку (Настройки > Инструменты > SQL запрос) и там выполните запрос:
ALTER TABLE `b_ticket` MODIFY `TITLE` varchar(255) NOT NULL ;
ALTER TABLE `b_ticket` MODIFY `OWNER_SID` varchar(255) NULL DEFAULT NULL ;
ALTER TABLE `b_ticket` MODIFY `LAST_MESSAGE_SID` varchar(255) NULL DEFAULT NULL ;
ALTER TABLE `b_ticket` MODIFY `SUPPORT_COMMENTS` varchar(255) NULL DEFAULT NULL ;

После этого переустановите (удалить и снова установить) модуль поиска без сохранения
таблиц (Настройки-Настройки продукта-Модули).

Затем нужно выполнить полную переиндексацию. Для этого в административной части сайта перейдите,
пожалуйста, в «Настройки > Поиск > Переиндексация». Снимите галочку «Переиндексировать только измененные»,
установите шаг, например, 10 секунд и нажмите кнопку «Переиндексировать».

Ещё статьи:

31.03.2020 Где искать редирект в Битриксе?
Как найти причину редиректа средствами битрикс. При попытке добавить сайт, его редиректом перекидывает на основной сайт.
ID: 223

31.03.2020 Зависает установка сайта Битрикс при многосайтовости
При установке сайта при многосайтовости зависает на 0%, и ничего не происходит, ошибок не выдаёт. Причина оказалась довольно простая. ID: 222

07.03.2020 Мифы про дорогих Битрикс программистов
Есть навязываемый миф о дорогих Битрикс программистах. На самом деле цена на услуги специалиста напрямую зависит от уровня его навыков в не зависимости. ID: 220

Новые статьи в блоге:

25.02.2020 Ошибка агента eval()’d. Как отключить агенты если сайт не работает?
Словил как-то ошибку связанную с отработкой агента. сайт полностью перестал работать и админка тоже. Возник вопрос как отключить агенты в таком случае. ID: 218

17.01.2020 Когда битрикс г*вно, а SEO специалист «Бог»
Я теперь понял откуда ноги растут про кривой битрикс. Всё дело в кривых специалистах. Вот один характерный случай. ID: 216

Последнее обновление: 07/03/2022
[Время на прочтение статьи: 5 мин.]

Файлы A motorbike simulator game, такие как Elma.exe, считаются разновидностью файла Win32 EXE (Исполняемое приложение). Они соотносятся с расширением EXE, разработанным компанией Balazs Rosza для Elasto Mania 1.11a.

Первая версия Elma.exe для Elasto Mania 1.11a увидела свет 08/07/2003 в Windows 10.

По нашим данным, эта версия файла является последним обновлением от компании Balazs Rosza.

В этой статье приведены подробные сведения о Elma.exe, руководство по устранению неполадок с файлом EXE и список версий, доступных для бесплатной загрузки.

Что такое сообщения об ошибках Elma.exe?

Elma.exe — ошибки выполнения

Ошибки выполнения — это ошибки Elasto Mania, возникающие во время «выполнения». Термин «выполнение» говорит сам за себя; имеется в виду, что данные ошибки EXE возникают в момент, когда происходит попытка загрузки файла Elma.exe — либо при запуске приложения Elasto Mania, либо, в некоторых случаях, во время его работы. Ошибки выполнения являются наиболее распространенной разновидностью ошибки EXE, которая встречается при использовании приложения Elasto Mania.

В большинстве случаев ошибки выполнения Elma.exe, возникающие во время работы программы, приводят к ненормальному завершению ее работы. Большинство сообщений об ошибках Elma.exe означают, что либо приложению Elasto Mania не удалось найти этот файл при запуске, либо файл поврежден, что приводит к преждевременному прерыванию процесса запуска. Как правило, Elasto Mania не сможет запускаться без разрешения этих ошибок.

Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Поиск причины ошибки Elma.exe является ключом к правильному разрешению таких ошибок. Несмотря на то что большинство этих ошибок EXE, влияющих на Elma.exe, происходят во время запуска, иногда ошибка выполнения возникает при использовании Elasto Mania 1.11a. Причиной этого может быть недостаточное качество программного кода со стороны Balazs Rozsa, конфликты с другими приложениями, сторонние плагины или поврежденное и устаревшее оборудование. Кроме того, эти типы ошибок Elma.exe могут возникать в тех случаях, если файл был случайно перемещен, удален или поврежден вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Как исправить ошибки Elma.exe — 3-шаговое руководство (время выполнения: ~5-15 мин.)

Если вы столкнулись с одним из вышеуказанных сообщений об ошибке, выполните следующие действия по устранению неполадок, чтобы решить проблему Elma.exe. Эти шаги по устранению неполадок перечислены в рекомендуемом порядке выполнения.

Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите «Восстановление системы» и нажмите ENTER.
  3. В результатах поиска найдите и нажмите «Восстановление системы»
  4. Введите пароль администратора (при необходимости).
  5. Следуйте инструкциям мастера восстановления системы, чтобы выбрать соответствующую точку восстановления.
  6. Восстановите компьютер к этому образу резервной копии.

Если на этапе 1 не удается устранить ошибку Elma.exe, перейдите к шагу 2 ниже.

Шаг 2. Если вы недавно установили приложение Elasto Mania (или схожее программное обеспечение), удалите его, затем попробуйте переустановить Elasto Mania.

Чтобы удалить программное обеспечение Elasto Mania, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите «Удалить» и нажмите ENTER.
  3. В результатах поиска найдите и нажмите «Установка и удаление программ»
  4. Найдите запись для Elasto Mania 1.11a и нажмите «Удалить»
  5. Следуйте указаниям по удалению.

После полного удаления приложения следует перезагрузить ПК и заново установить Elasto Mania.

Если на этапе 2 также не удается устранить ошибку Elma.exe, перейдите к шагу 3 ниже.

Elasto Mania 1.11a

Balazs Rosza

Шаг 3. Выполните обновление Windows.

Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках Elma.exe может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите «Обновить» и нажмите ENTER.
  3. В диалоговом окне Центра обновления Windows нажмите «Проверить наличие обновлений» (или аналогичную кнопку в зависимости от версии Windows)
  4. Если обновления доступны для загрузки, нажмите «Установить обновления».
  5. После завершения обновления следует перезагрузить ПК.

Если Центр обновления Windows не смог устранить сообщение об ошибке Elma.exe, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.

Если эти шаги не принесут результата: скачайте и замените файл Elma.exe (внимание: для опытных пользователей)

Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла Elma.exe. Мы храним полную базу данных файлов Elma.exe со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Elasto Mania . Чтобы загрузить и правильно заменить файл, выполните следующие действия:

  1. Найдите версию операционной системы Windows в нижеприведенном списке «Загрузить файлы Elma.exe».
  2. Нажмите соответствующую кнопку «Скачать», чтобы скачать версию файла Windows.
  3. Скопируйте этот файл в соответствующее расположение папки Elasto Mania:

    Windows 10: C:Program Files (x86)ElastoMania111
    Windows 10: C:UsersTesterDownloads

  4. Перезагрузите компьютер.

Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.

СОВЕТ ОТ СПЕЦИАЛИСТА: Мы должны подчеркнуть, что переустановка Windows является достаточно длительной и сложной задачей для решения проблем, связанных с Elma.exe. Во избежание потери данных следует убедиться, что перед началом процесса вы создали резервные копии всех важных документов, изображений, установщиков программного обеспечения и других персональных данных. Если вы в настоящее время не создаете резервных копий своих данных, вам необходимо сделать это немедленно.

Скачать файлы Elma.exe (проверено на наличие вредоносного ПО — отсутствие 100 %)

ВНИМАНИЕ! Мы настоятельно не рекомендуем загружать и копировать Elma.exe в соответствующий системный каталог Windows. Balazs Rosza, как правило, не выпускает файлы Elasto Mania EXE для загрузки, поскольку они входят в состав установщика программного обеспечения. Задача установщика заключается в том, чтобы обеспечить выполнение всех надлежащих проверок перед установкой и размещением Elma.exe и всех других файлов EXE для Elasto Mania. Неправильно установленный файл EXE может нарушить стабильность работы системы и привести к тому, что программа или операционная система полностью перестанут работать. Действовать с осторожностью.

Файлы, относящиеся к Elma.exe

Файлы EXE, относящиеся к Elma.exe

Имя файла Описание Программа (версия) Размер файла (байты) Расположение файла
FileSyncHelper.exe Microsoft OneDriveFileSyncHelper Microsoft OneDrive (19.192.0926.0012) 2133352 C:UsersTesterAppDataLocalMicrosoftOneDriv…
FileSyncConfig.exe Microsoft OneDrive Configuration Application Microsoft OneDrive (19.192.0926.0012) 364392 C:UsersTesterAppDataLocalMicrosoftOneDriv…
Elma.exe Windows Executable Elasto Mania 1.11a 348160 C:Program Files (x86)ElastoMania111
MpSigStub.exe Microsoft Malware Protection Signature Update Stub Microsoft Malware Protection (1.1.16500.1) 748816 C:WindowsSystem32
UNWISE.EXE Windows Executable Elasto Mania 1.11a 149504 C:Program Files (x86)ElastoMania111

Другие файлы, связанные с Elma.exe

Имя файла Описание Программа (версия) Размер файла (байты) Расположение файла
setupact.log Log Elasto Mania 1.11a 62521 C:WindowsPantherUnattendGC
diagwrn.xml Extensible Markup Language Elasto Mania 1.11a 5718 C:WindowsSystem32SysprepPanther
diagerr.xml Extensible Markup Language Elasto Mania 1.11a 44109 C:WindowsPantherUnattendGC
api-ms-win-core-synch-… ApiSet Stub DLL Microsoft® Windows® Operating System (10.0.17134.12) 13160 C:UsersTesterAppDataLocalMicrosoftOneDriv…
api-ms-win-core-memory… ApiSet Stub DLL Microsoft® Windows® Operating System (10.0.17134.12) 11624 C:UsersTesterAppDataLocalMicrosoftOneDriv…

Вы скачиваете пробное программное обеспечение. Для разблокировки всех функций программного обеспечения требуется покупка годичной подписки, стоимость которой оставляет 39,95 долл. США. Подписка автоматически возобновляется в конце срока (Подробнее). Нажимая кнопку «Начать загрузку» и устанавливая «Программное обеспечение», я подтверждаю, что я прочитал (-а) и принимаю Лицензионное соглашение и Политику конфиденциальности компании Solvusoft.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Elma агент ошибка 401
  • Electronic workbench ошибка при запуске приложения 0xc0000142