Пользуясь базами данных любой программы 1С, сотрудники предприятий и организаций часто сталкиваются с непредвиденными ситуациями. Пожалуй, одна из самых частых — когда работа программы внезапно завершается по причине того, что администратор разорвал контакт с сервером.
В данном случае Microsoft OLE DB Provider for SQL Server выдаёт такую информацию: «Неопознанная ошибка hresult 80004005». При этом главным признаком проблемы является невозможность выгрузить информацию в базу.
Следует отметить, что ошибки, содержащие именно код 80004005, встречаются постоянно. У них есть особая классификация, которую при желании можно найти в соответствующей литературе.
Для начала нужно провести проверку конфигурации. Там может содержаться мусор (иными, словами, информация, которая является некорректной). Необходимо проверить конфигурацию с помощью соответствующей команды. Вы увидите флажок, предназначенный для того, чтобы проверить её логическую целостность. Если имеются проблемы, пользователь будет уведомлен об этом с помощью сообщения.
Данные, являющиеся неверными, система удалит в автоматическом режиме, но для этого нужно дать ей доступ, чтобы она изменила главный объект. К примеру, если вы работаете в облачном хранилище, его надо просто захватить.
Поддержка конфигурации требует её проверки и у поставщиков. С этой целью:
- нужно сохранить данные о конфигурации поставщиков. Для этого используйте CF-файл;
- теперь необходимо провести загрузку файла в обновлённую базу;
- выполните операцию, которая описана в п.1.
При получении сообщения об исправлении ошибки имейте в виду то, что конфигурация, имеющаяся у поставщика, содержала неправильные данные. Если такое произошло, снимите свою конфигурацию с поддержки и установите её снова. При этом её надо объединить с новой (от поставщика).
Сейчас уже любой релиз, который выпускает 1С, не имеет таких сложностей.
Сопутствующая проблема и методы её решения
С ситуацией, описанной ранее, тесно связана ещё одна, происходящая параллельно. Выглядит она так: 10007066.
Суть проблемы: когда используется СУБД MS SQL SERVER, во время записи объекта из базы с несколькими колонками (например, «Значения» и «Хранилища»), часто случается другой тип ошибки.
Выглядит она таким образом:
Ошибка СУБД:Microsoft OLE DB Provider for SQL Server: String data length mismatchHRESULT=80004005.
Когда происходит ошибка 1с hresult clr 80004005, программа завершает свою работу в аварийном режиме.
Если вы ознакомитесь во время загрузки программы со специальным журналом (речь идёт о технологическом журнале), там есть табличка, содержащая информацию об этих хранилищах.
С помощью средств MS SQL Server Query Analizer нужно найти в табличке несколько колонок image и сделать для каждой следующий запрос
select top 10 DATALENGTH(_Fld4044 from _InfoReg4038 order by DATALENGTH(_Fld4044) desc
При этом, со стороны стандартных проверок, проводимых платформой (chdbfl), поступит информация о том, что база полностью в порядке.
Ошибка выделения памяти hresult 80004005 (на английском это out of memory for query result 1с) может происходить вследствие различных причин, имеющей общую черту. Для системы 1С это, прежде всего, недостаток оперативной памяти. Если говорить точнее, речь идёт о некорректном применении возможностей памяти, поэтому для решения задачи лучше использовать несколько косвенных алгоритмов.
Необходимо сделать рестарт (перезапуск) сервера. Таким образом памяти, которая доступна для работы, временно станет больше. Также есть возможность воспользоваться сервером в 64 разряда, содержащем приложения.
Исходя из опыта, ошибка СУБД hresult 80004005 чаще определяется двумя факторами:
- данные хранятся в хранилище значений (реквизите);
- в таблице конфигураций содержатся двоичные данные объёмом более 120 мегабайт.
Когда советы от сотрудников 1С не приносят результата (ошибка 1с hresult 80004005 остаётся), попробуйте воспользоваться другой пошаговой инструкцией:
Наши постоянные клиенты по 1С:
- используйте все базы, включив у них все фоновые задачи;
- в 8.1.11. должен появиться переключатель о запрете на фоновые задачи (во время создания базы);
- сделайте перезапуск сервера.
Имеет смысл проверки работоспособности. Тем не менее вследствие утечек памяти проблема может возникнуть снова — после перезапуска. В этом случае целесообразно:
- воспользоваться инструментами sql и сделать бэкап;
- снять базу с поддержки;
- выгрузить cf.
Во время любых действий следует копировать файлы в резерв, так как в любой момент может возникнуть необходимость возвращения к исходному статусу информации. Далее надо убрать в менеджменте консоли (config) запись «более 120 мегабайт» и провести загрузку конфигурации (не объединять, а загрузить).
Есть ещё один способ, с помощью которого неопознанная ошибка субд hresult 80004005 может быть исправлена. Нужно открыть конфигуратор и снять конфигурацию, не сохраняя её. Далее, сохранив, нужно поместить её в отдельный файл без сохранения её изменённого вида.
Выполните в SQL операцию, предназначенную для конкретной базы:
DELETE FROM dbo.Config WHERE DataSize > 125829120
После выполнения этой команды проведите загрузку сохранённой конфигурации.
Что касается радикальных шагов, используемых в особо трудных ситуациях, иногда помогает такая схема:
- удалите таблицу config из базы данных, воспользовавшись менеджментом консоли DROP TABLE [dbo].[Config];
- проведите загрузку конфигурации (не «объединить»,а именно «загрузить»).
После проведения проверки проблема должна уйти.
- Стоимость работ специалистов IT Rush — 2000 руб./час
- Абонемент от 50 часов в месяц – 1900 руб./час
- Абонемент от 100 часов в месяц – 1800 руб./час
Нам доверяют:
|
|||
claus66
14.08.15 — 09:53 |
Добрый день, Уважаемые. |
||
shuhard_серый
1 — 14.08.15 — 09:54 |
(0) а SP на сиквеле стоит ? |
||
shuhard_серый
2 — 14.08.15 — 09:56 |
(1) +1 и код у ошибки странный, там символов должно быть больше, например всем известная 80004005 |
||
claus66
3 — 14.08.15 — 10:09 |
(1) нет, не стоит |
||
claus66
4 — 14.08.15 — 10:10 |
(2) Ошибка слово в слово, буква в букву |
||
ДенисЧ
5 — 14.08.15 — 10:10 |
(3) Надо себя заставить… |
||
ДенисЧ
6 — 14.08.15 — 10:10 |
http://catalog.mista.ru/public/18771/ |
||
shuhard_серый
7 — 14.08.15 — 10:11 |
(3) надо установить |
||
claus66
8 — 14.08.15 — 10:13 |
(5) думаете с SP пройдет ошибка ?! |
||
claus66
9 — 14.08.15 — 10:15 |
(7) сори, действительно.. ошибся ))) виноват каюсь 80004005 |
||
shuhard_серый
10 — 14.08.15 — 10:15 |
(8) гарантий нет, но SP очень часто снимает такого рода ошибку |
||
shuhard_серый
11 — 14.08.15 — 10:16 |
(9) читай Гилева — там всё более чем очевидно |
||
claus66
12 — 14.08.15 — 10:16 |
ладно спасибо Вам большое, на сайте Гилева, читал про эту ошибку, но ошибка звучало чуть чуть не так: Неопознанная ошибка, а у меня Ошибка выделения памяти |
||
shuhard_серый
13 — 14.08.15 — 10:20 |
(12) да, эта ошибка многолика и Гилев писал про неё в 2013 году, рецепты тем не менее универсальны |
||
claus66 14 — 14.08.15 — 10:23 |
(13) спасибо, буду пробовать.. |
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
Здравствуйте!
Есть один сервер. На нем стоит MS SQL, 1С сервер и терминально подключаются пользователи через RDP (до 80 пользователей).
В один прекрасный день при входе в клиент-серверную базу 1С всем пользователям начало выдавать ошибку:
Платформа: 1С:Предприятие 8.3 (8.3.5.1068)
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.
HRESULT=80040E21,
Сервер перезагрузили. После перезагрузки пользователи при попытки зайти в базу видели ошибку:
Платформа: 1С:Предприятие 8.3 (8.3.5.1068)
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Ошибка выделения памяти
HRESULT=80004005,
При запуске Тестирования и исправление на проверку логической целостности к моменту завершения конфигуратор выдал критическую ошибку и завершил работу.
Сервер перезагрузили и после пользователи смогли зайти в 1С и нормально начать работу. Прошло пара дней и при входе в 1С снова вылезла ошибка:
Платформа: 1С:Предприятие 8.3 (8.3.5.1068)
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Ошибка выделения памяти
HRESULT=80004005,
Потом, при выгрузке базы в файл .dt 1С её не выгрузила и выдала ошибку соединения с сервером 1С Предприятие. Подскажите возможные причины этого и как с этим бороться?
MS SQL Server 2014
Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Memory allocation failure
HRESULT=80004005
Заходим в SQL Server Configuration Manager -> SQL Native Client 11.0 Configuration -> Client Protocol Protocols -> Properties
Вводная: При обновлении конфигурации, возникала ошибка «Неопознанная ошибка HRESULT=80004005».
Судя по статье Гилёва проблема связана с нехваткой оперативной памяти (хотя rphost.exe больше 200 метров не потреблял).
Ссылки обязательные к прочтению —
http://www.gilev.ru/1c/memleak/memorymore.htm
http://infostart.ru/public/18771/
1. Рестарт сервера 1С
2. ТиИ со всеми отмеченными галками
3. Рестарт сервера БД
4. Останавливаем сервер 1С и чистим папку «C:Program Files1cv82srvinforeg_1541» (число может отличаться — это порт на котором у вас кластер настроен) — это кэш сервера из-за него тоже могут быть проблемы (необходимо сохранить список БД и настройки 1С сервера, иначе надо будет их придётся забивать заново, так же рекомендую держать наготове дистрибутив — может потребоваться переустановка)
5. Также чистим «C:temp» , «C:WINDOWSTemp» и темповую папку пользователя из-под которого запускается сервис 1С. К примеру если пользователь 1cUsr «C:Documents and Settings1cUsrLocal SettingsTemp»
PS: Если проблема осталась то, как вариант
1. Переводим сервер 1С и БД на 64 бита
2. Временно переносим на другой сервер, где БД будет ЕДИНСТВЕННОЙ (с обязательным отключением фоновых задач)
3. Выгружаем в dt, загружаем в файловую. Пробуем сделать то, что нам надо.
4. Если БД типовая и без правок, то можно попробовать «загрузить конфигурацию» (не объединение) из cf (то есть просто переписывание конфигурация, только надо брать точно такой-же релиз, как и был)
5. Удалением записи больше 120 метров из таблицы config
6. Есть БД на сервере несколько, то может помочь добавление рабочих процессов в консоли
7. Также данная ошибка может возникать, если на одном сервере запущены одновременно 1С и SQL. И при этом не настроено ограничение потребления памяти на скуль-сервере (выжирает всю память и не остаётся для 1С)