1с ошибка при выполнении запроса post к ресурсу e1cib logform

Обновлено: 04.07.2024

Недавно столкнулся с неприятной ошибкой на одном из старых серверов с 1С. Решил записать решение, чтобы не забыть и с другими поделиться. При определенных обстоятельствах пользователь не может зайти в базу 1С, получая ошибку во время логина на нехватку памяти.

Введение

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

Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/login:
по причине:
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Ошибка выделения памяти
HRESULT=80004005,

Изначально мне показалось, что проблема с нехваткой памяти для работы MSSQL сервера. Так что я пошел и отрегулировал ее потребление в настройках сервера. Но это не помогло. На следующий день пользователи опять периодически стали получать эту ошибку, хотя на сервере было достаточно свободной оперативной памяти. Стал разбираться дальше.

Неспецифицированная ошибка работы с ресурсом

Второй вариант текста той же самой ошибки выглядел следующим образом:

Неспецифицированная ошибка работы с ресурсом
Ошибка при выполнении запроса GET к ресурсу /e1cib/cmi/commands:
Недостаточно свободной памяти для выполнения операции

После этого я уже понял, что проблема не в MSSQL сервере, а в самой 1С. Поиск в интернете и анализ ситуации на сервере привел к пониманию проблемы. Суть ее вот в чем. Сервер 1С создал рабочий процесс rphost , который обслуживает подключения к базам данных. В моем случае сервер 1С 32-х битный, так что он ограничен по максимальному использованию памяти одним рабочим процессом.

Решение проблемы "недостаточно свободной памяти для выполнения операции" в 1С

В общем случае данную проблему можно решить следующим образом. Открываем консоль управления кластером, идем в раздел Рабочие серверы , выбираем свой сервер и его свойства. Меняем 2 параметра:

  • Количество ИБ на процесс.
  • Количество соединений на процесс.

Чтобы проблема ушла, вам необходимо уменьшить значения. Определить оптимальные сходу вряд ли получится. Для начала можете их просто уменьшить вдвое, поставив 4 и 128 соответственно.

Заключение

Если нет возможности изменить настройки из-за несоответствия лицензии, временно поможет перезапуск сервера 1С. Но работать он будет нормально до тех пор, пока очередной рабочий процесс не займет максимально возможную для себя память. На практике это в районе 3.5 Гб. После этого если не запустится новый рабочий процесс, новые подключения к базам будут невозможны. Придется раскошелиться на 64-х битный сервер.

Если у вас медленно работает сервер 1С, читайте мою статью по его профилированию - Процесс 1С rmngr.exe грузит процессор .

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Перевод и причины дисфункции

Проблема возникает на серверной версии программы, причём после установки очередного обновления к «1С». Проблемными стали версии программы 8.3.6, 8.3.8.хх, 8.3.9.ххх, на которых рассматриваемая мной дисфункция возникает наиболее часто.

Данная ошибка возникает случайно, в большинстве случаев не имеет каких-либо закономерностей при своём появлении, чем раздражает довольно многих пользователей, заваливающих техподдержку 1С «письма счастья».

Картинка ERROR

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

Чтобы избавиться от ошибки рекомендую выполнить следующее:

Скрин администрирования 1С

  • Выполните стандартное «Тестирование и Исправлении» (ТиИ) вашей базы данных. Данная операция осуществляется переходом в «Конфигуратор», где во вкладке «Администрирование» необходимо выбрать опцию «Тестирование и Исправление». Операцию необходимо осуществлять в монопольном режиме, потому никого кроме вас в базе быть не должно. Перед выполнением указанной процедуры рекомендуется сделать страховочную копию ваших баз данных;
  • Установите наиболее свежие обновления к вашей версии 1С. Поскольку пик появления данной ошибки пришёлся на 2016-2017 годы, то с тех пор разработчиками был выпущен ряд обновлений, позволяющих устранить данную ошибку. Установите свежие апдейты для вашей «1С», и если не помогло, то идём дальше;
  • Откатите программу до прежней версии. В некоторых случаях (когда у пользователей было установлены самые свежие обновления) помог откат программы до более ранней (и более стабильной) версии программы;
  • При доступе к серверу 1С рекомендуется почистить кэш. Остановите на сервере службу под названием «агент сервера 1с предприятие», в каталоге кэша сервера удалите всё кроме файлов, имеющих расширение *.1 Примерный путь к каталогу может быть:

После чего вновь запустите указанную службу;

Заключение

Основным фактором возникновения ошибки запроса POST к ресурсу /e1cib/logForm является некорректно написанный разработчиками код обновления к программе «1С». Эффективным решением возникшей проблемы станет обновление вашей версии 1С до самой свежей версии, где рассматриваемая дисфункция уже исправлена, и появлений рассматриваемой ошибки более не наблюдается.

Причины ошибки в 1С

Изменяем режим запуска для пользователей

Часто ошибку можно решить довольно просто. Для этого вам необходимо войти с правами администратора и изменить настройки учетной записи пользователя. Нужно выбрать редактирование информационной базы и в поле «Основной режим запуска» поставить галочку на «Выбирать автоматически». Сохраните эти изменения, и ошибка должна пропасть.

Окно редактирования информационной базы

Устранение сбоя при выполнении запроса GET к ресурсу

Из-за переполнения кэша программы, могут возникать разные ошибки. Так как для стабильной работы с новыми формами необходимо свободное пространство буфера быстрого доступа. Часто освобождение этого буфера помогает программе снова начать работу без каких-либо проблем.

Конфигурация диалога запуска 1С

  1. Чтобы очистить кэш, вам нужно в 1С найти к нему путь. Он находится в той же папке, что и программа;
  2. Выберите кнопку «Настройки»;
  3. Найдите путь в этом окне. Вы можете скопировать путь и вставить его в проводнике, чтобы быстро попасть в нужную папку;
  4. В ней будут файлы с длинными случайными наборами символов в качестве имен. Их все нужно удалить. Это и есть кэш 1С.

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

Запуск утилит для исправления ошибок 1С

В программном комплексе 1С включены специальные утилиты, которые могут помочь пользователю решить проблемы при работе. Если вам еще не удалось устранить дисфункцию при выполнении запроса GET к ресурсу e1c/ibc/micommands:

Каждый из параметров позволяет выполнять дополнительные проверки над теми или иными данными программы:

  • Реиндексация таблиц — ревизия индексов таблиц. В ходе тестирования будет произведена реиндексация. Не убирайте с него галочку. Эта процедура пойдет программе на пользу;
  • Проверка целостности базы — база данных будет перепроверена. Если будут найдены неполадки, утилита исправит их. Также полезная функция, которая не будет лишней при запуске;
  • Проверка базы ссылок — будут найдены неверные указатели, ссылки и действия над ними передаются пользователю;
  • Реструктуризация таблиц — эта процедура занимает много времени. Поэтому применять нужно только в случае реальной необходимости. В результате её действия структура таблицы будет пересоздана;
  • Сжатие таблиц — также полезный параметр, в процессе удаляются элементы данных, в которых уже нет необходимости.

Добавление памяти для 1С

Ошибки в 1С Предприятие часто имеют дополнительный параметр «Недостаточно памяти». С ней встречались, наверное, все, кто долгое время работал с программой. Нехватка памяти появляется из-за обновления конфигурации, загрузки объемных баз данных, при создании отчетов и т.д.

Чтобы избавиться от ошибки с памятью:

  1. Откройте меню «Пуск». Запишите в пустой строке поиска «Командная строка»;
  2. Выберите её в результатах ПКМ и запустите от имени администратора;
  3. Введите команду: CMD и нажмите клавишу ввода;
  4. Курсор перейдет на другую строку, в ней запишите: bcdedit /set increaseuserva 3072 и нажмите ENTER. В цифрах выражается память в мегабайтах. Здесь вы можете указать свое значение, относительно установленной в компьютере оперативной памяти;
  5. В системных настройках можно узнать, сколько памяти есть в компьютере. Для этого нажмите вместе WIN+PAUSE.

После этих действий перезагрузите компьютер и проверьте, появляется ли ошибка при выполнении запроса GET к ресурсу e1cib/cmi/commands.

При свертке базы во время выполнения второго пункта 1С отваливается с ошибкой: "Невосстановимая ошибка Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm по причине:" и всё на этом.а

База весит 100Гб, оперативной памяти на сервере 64Гб, в настройках кластера снимал ограничение(-1) про максимальный объем памяти, не помогло.
up. Попробовал обновить сервер и платформу до 8.3.14.1976, не помогло, та же самая ошибка.
(4) но памяти не хватает.
Может у тебя клиент, с которого свертку запускаешь, она на 32-бит, т.е. ошибка не на сервере, а на клиенте?
(5) Всё x64, свертку запускаю прямо на сервере. Есть подозрение конечно, что тупо памяти не хватает, в процессах рождаются rphost в количестве 7 штук, один основной отъедает 1,4Гб оперативы, другие по 300-500Мб, разрешено памяти на один процесс до 20Гб, после какого-то времени 1С падает с ошибкой и эти процессы сокращаются.

(7) А есть статистика, что этот рпхост перед падением доходит до предела памяти?

Тут как бы возникает специфический вопрос. На фоне террабайтных дисков для установки во всякие там компы, которые можно купить в розницу за относительно небольшие деньги,
получается, что 100 гб в базе вроде бы и не так много. Однако, процессы с таким размером памяти работать не хотят.

А может быть, с учетом того, что базу надо изнасиловать, обеспечить этому событию абсолютную монопольность на сервере?
Ну и убрать при этом любые ограничения на использование памяти, конечно.

Вообще, Заказчику в подобной ситуации нужно понимать, что одного сервера для нормальной работы в режиме 24/7 при таком размере баз и процессов уже не хватит.
И если КОРП версию 1С покупать по стоимости просто неадекватно, то может быть имеет смысл купить просто еще одну лицензию на сервер 1С
и запускать всякие системные и сервисные вопросы на дополнительном компьютере.

Например, этот дополнительный сервер можно поставить на линукс платформе (это такой ненавязчивый намек)

Читайте также: