Ошибка недостаточно свободной памяти для выполнения операции

Клиент поймал довольно странную ошибку при работе в 1С. При этом отследить её было проблематично. Она могла возникнуть в любой момент: при работе с документами или же просто в режиме ожидания.

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

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

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

Конфигурация среды

Обычная локальная сеть с роутером и подключенными станциями по «проводу» (100 Мбит/сек). Файловая база 1С:УНФ опубликована через веб-сервер Apache. Основной ПК и клиенты на базе ОС Windows 10.

Подключение к ИБ с помощью тонкого клиента по протоколу http. Одновременных подключений к базе — до 3-х человек. Ошибка появляется на удаленных ПК, которые соединяются с Apache.

Как исправить ошибку

Что можно сделать в этом случае. Разберем несколько рекомендаций — они разные и могут показаться странными — но все-таки проверьте. Вдруг какая-то из них окажется полезной и закроет ошибку.

В ошибке указывается, что недостаточно свободной памяти. Если вы обладаете ресурсом, чтобы увеличить объем ОЗУ на сервере — сделайте это. Конечно, там свои тонкости и нюансы. Проверьте — не помешает.

Внимание; перед любыми изменениями обязательно сделайте контрольную точку системы (бэкап) и резервную копию ИБ для подстраховки.

Рекомендации

1. Перезапустите службу Apache на основном ПК.
В качестве быстрого решения в моменте.

2. Очистите локальный кэш на станциях.

3. Выполните проверку и переиндексацию БД (ТиС). Опционально — сократите журнал регистрации (ЖР).

4. Отключите ipv6 на ПК с опубликованной базой.

5. Увеличьте объем оперативной памяти, доступной пользователю.
Для Windows Vista, Windows 7, Windows Server 2008 выполните команду от имени администратора:

bcdedit /set increaseuserva 2560 //если у вас установлено 3 Гб ОЗУ
bcdedit /set increaseuserva 3072 //если у вас установлено 4 Гб ОЗУ

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

bcdedit /deletevalue increaseuserva
bcdedit /deletevalue {current} increaseuserva //если использовался параметр {current}

Для Windows XP, Windows Server 2003 настраивается через изменение файла boot.ini. Будьте осторожны. В конце каждой строки под заголовком [Operating Systems] после команды /fastdetect (или любой другой команды, которая идет последней) добавьте следующие параметры:

/3GB /userva=2560 //если у вас установлено 3 Гб ОЗУ
/3GB //если у вас установлено 4 Гб ОЗУ

Например,
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=»Windows XP Professional» /fastdetect /3GB /userva=2560

6. Если допустимо — перейдите на x64-версии 1С.

7. Замените веб-сервер Apache на типовой Microsoft IIS.

8. Обновите платформу.
Фирма «1С» указала на то, что проблема наблюдается в релизах технологической платформы, начиная с 8.3.16.1791, 8.3.17.1823, 8.3.18.1201.

С информационного портала 1С:
«Ошибка исправлена в версиях платформы начиная с 8.3.17.2231 и 8.3.18.1483. Фирма «1С» приносит извинения пользователям, у которых проявилась указанная проблема. Для ее устранения предлагаем обновиться на указанные версии платформы или последующие», – говорится на официальном сайте.

✅ Успехов вам!

__________
Не получается? Зовите на помощь ИТ-специалиста или обратитесь с нашим джедаям техподдержки → +7-911-500-10-11



27 сентября, 2021
27 сентября, 2021

Дано:

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

Ошибка обнаружена на платформе 8.3.18.1289

Что было проделано в попытках исправить ситуацию:

  • ТиИ со всеми возможными вариантам включая исправления.
  • перезагрузка сервера 1С, СУБД, а так же самой железки.
  • изменение настроек выделения памяти СУБД
  • чистки КЭШей 1С на стороне сервера (тут было очень страшно, но с чистилось только то что можно) и клиента
  • Удаление базы из сервера 1С и восстановление из dt

Решение

В итоге после долгих поисков ошибка нашлась среди багов платформы (полная официальная информация тут: Код ошибки: 10230003), решение так же нашлось, но, конечно, оно подойдет не всем.

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

Для тех, кто не может просто удалить расширение, может быть выходом станет обновление платформы до новых релизов, так как согласно официальному источнику ошибка исправлена в новых релизах версия 8.3.18.1433 и версия 8.3.19.1150. Лично не проверял. Но думаю это так.

Обмен с сайтом: неспецифицированная ошибка, недостаточно свободной памяти

Я

  

slafor

04.08.21 — 12:28

При обмене с сайтом Битрикс, возникает ошибка: «Неспецифицированная ошибка работы с ресурсом. Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm. Недостаточно свободной памяти для выполнения операции <Перезапустить>/<Завершить>».

Сама 1С запускается из локальной папки, база на SQL.

В чем может быть проблема?

Искал в интернете, но там в основном эта же проблема описывается при публикации базы на веб-сервере. А у меня программа запускается из файла на компьютере пользователя + база на SQL.

  

Галахад

1 — 04.08.21 — 12:31

Может файлики поменьше туда посылать?

  

Мультук

2 — 04.08.21 — 12:33

(0) А у меня программа запускается из файла на компьютере пользователя + база на SQL.

Поясните мне, что автор имеет в виду.

Это файловая база? Тогда причем тут SQL.

Это серверная база? Тогда причем тут «запускается из файла» ?

  

Галахад

3 — 04.08.21 — 12:37

(2) Ну типа нету у него web-сервера.

  

SunFox

4 — 04.08.21 — 12:41

Попробуйте 64-х битную платформу.

  

slafor

5 — 04.08.21 — 12:45

(3) Это база на SQL.

«Запускается из файла» — я имел ввиду, что сама платформа запускается из локального файла на компьютере. То есть нет никаких RDP.

  

Мультук

6 — 04.08.21 — 12:48

(0)

1) Сколько ОЗУ на «сервере» ? (видел «сервера» с 8Гб ОЗУ — хотя конечно это не повод падать)

2) Обмен это обмен в вакууме ?

Это полный обмен ? По изменениям?

В логах пишется на чем конкретно обмен поломался.

Обмен ломается при выгрузке? или при загрузке?

3) В настройках узла битрикса есть реквизит «Количество товаров/объектов в пакете». Можно попробовать уменьшить кол-во

4) Раньше работало, а сейчас поломалось.

Раньше было 10 товаров и 2 свойства, а вчера импортировали еще 80к позиций номенклатуры.

Вот такой набор вопросов, на которых нужно ответить самому себе.

  

Вафель

7 — 04.08.21 — 12:49

32 бита сервер небось

  

slafor

8 — 04.08.21 — 14:32

(6)

«1) Сколько ОЗУ на «сервере» ? »

32

«2) Обмен это обмен в вакууме ?

Это полный обмен ? По изменениям?

В логах пишется на чем конкретно обмен поломался.

Обмен ломается при выгрузке? или при загрузке?»

Что значит «обмен в вакууме»?

Ломается при выгрузке.

На самоме деле это обмен не с Битриксом, а «Выгрузка товаров (Настройка обмена с интернет-магазином)». Нам нужны только файлы с данными, потом мы сами с ними работаем.

«3) В настройках узла битрикса есть реквизит «Количество товаров/объектов в пакете». Можно попробовать уменьшить кол-во»

Поскольку сейчас идет только выгрузка из 1С, наверное, там тоже есть такие же настройки?

«4) Раньше работало, а сейчас поломалось.»

Да именно так.

  

slafor

9 — 04.08.21 — 14:32

+(8) Платформа 64.

  

ДенисЧ

10 — 04.08.21 — 14:33

«4) Раньше работало, а сейчас поломалось.»

Да именно так.

Добавили ещё 100500 товаров и оппа… Может, у вас там файл выгрузки 7ТБ получается…

  

slafor

11 — 04.08.21 — 15:56

(10) Там стоит галочка «Выгрузка на сайт». Если ставлю выгрузку в каталог, все проходит нормально, но в каталоге ничего не появляется.

В логах (запись в «C:/Log site») вообще ничего не появляется…

  

slafor

12 — 04.08.21 — 15:59

  

slafor

13 — 04.08.21 — 16:01

  

Garykom

14 — 04.08.21 — 16:08

(0) позовите программиста

  

Garykom

15 — 04.08.21 — 16:09

но для начала ТиИ сделать

  

Deal with it

16 — 04.08.21 — 16:12

(15) сначала все же следует сделать бэкап, а уже потом все что угодно)

  

Мультук

17 — 04.08.21 — 16:15

(12)

О логах.

Указанный каталог надеюсь расположен на сервере? И у службы 1С есть права туда писать?

Ибо Битрикс при выгрузке туда таки пишет.

В моей практике в битрикс выгружали по 40к номенклатуры по (это грустно да) 200 свойств. Сервер печалился, но выгружал.

А так да — зовите уже погроммиста.

  

slafor

18 — 04.08.21 — 16:35

(17) В этот каталог я могу писать файлы, разве может быть так, что 1С не может? )

В общем, сначала я подумал, что надо изменить размер пакета — с 1000 уменьшил до 100 элементов. И сделал выгрузку в каталог, а не сразу на сайт. В результате ошибок не было, но и в каталоге ничего нового не появилось… И вот какие комментарии мне выдали: https://yadi.sk/d/JY3J30jR1uGuZA

  

slafor

19 — 04.08.21 — 16:39

(15) А при чем здесь ТиИ? Что могло порушиться?

  

Deal with it

20 — 04.08.21 — 16:52

(18) пользователь, под которым запускается служба 1С имеет права на этот каталог? НЕ пользователь сеанса, прошу заметить.

  

Мультук

21 — 04.08.21 — 16:52

(18)

>>>И сделал выгрузку в каталог, а не сразу на сайт. В результате ошибок не было, но и в каталоге ничего нового не появилось…

Этот каталог на сервере?

А у службы 1С есть права туда писать?

Зови своего админа и пусть он дает права службе 1С на этот каталог.

Заодно на каталог с логами пуст даст

  

lamme

22 — 04.08.21 — 17:25

фото пожми

или выгрузи без фото на сайт — посмотри как будет

  

slafor

23 — 04.08.21 — 19:10

(20) Дело в том, что когда эта ошибка выскакивала отдельным окном, внизу была ссылка для получения лог-файла. И он действительно создавался и записывался в этот каталог. https://yadi.sk/d/yRJHG1r8PIXhtg

Значит, доступ на запись у пользователя 1С есть.

Но тут это окно выскакивать перестало. Все пишется в окне сообщений, и там возникает такая строка: «Ошибка получения параметров обмена (ограничение размера файла)!»

  

slafor

24 — 04.08.21 — 19:12

Вот полный текст в окне сообщений: https://yadi.sk/d/Vixak3W832KDhQ .

  

slafor

25 — 05.08.21 — 11:08

(14) Да мы сами программисты, просто именно с такой проблемой раньше не сталкивались. Ничего, поработаем отладчиком, все и разъяснится.

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

  

PuhUfa

26 — 05.08.21 — 11:14

(24) Ты бы определился с ошибкой… Какая все же ошибка то?

— Недостаточно свободной памяти для выполнения операции из (0)

или

— Ошибка получения параметров обмена (ограничение размера файла)! из (23)

  

Kassern

27 — 05.08.21 — 11:15

(24) может картинку прикрепили к товару жирную (под гиг) вот и загибается ваш обмен?

  

slafor

28 — 05.08.21 — 11:21

(26) В том-то и дело, что вчера он сначала показывал окно с первой ошибкой, и с кнопками «Завершить» и «Перезапустить». Потом стал выводить в окно сообщений данные со второй ошибкой, но окно уже не запускалось. А сегодня опять окно выскакивает.

(27) Может быть… Можно через консоль запросов как-то определить размеры бинарных вложений?

  

Kassern

29 — 05.08.21 — 11:23

(28) если штатно картинки цепляли, то там размер должен быть в реквизите указан.

  

BeerHelpsMeWin

30 — 05.08.21 — 11:23

(28) Справочник.НоменклатураПрисоединенныеФайлы.Размер

  

PuhUfa

31 — 05.08.21 — 11:33

(28) — «Недостаточно свободной памяти для выполнения операции» — Лечится установкой ограничения (со стороны 1С) на отправляемые пакеты. Например отправлять по 50 позиций в пакете. Правда на твоих скринах я не увидел такой настройки. Может где на других закладках.

— «Ошибка получения параметров обмена (ограничение размера файла)» — Это баг/глюк/ошибка на стороне сайта (битрикса). Гуглится какие параметры нужно подкрутить в битриксе.

Это как решались данные ошибки у меня в связке УТ11 — Битрикс (обмен типовой встроенный в УТ)

  

slafor

32 — 05.08.21 — 13:26

(31) У меня вообще задано 1000 позиций )

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

Показывать по
10
20
40
сообщений

Новая тема

Ответить

SoNik

Дата регистрации: 17.02.2009
Сообщений: 148

Обновились на Платформа: 1С:Предприятие 8.3 (8.3.15.1747) и понеслось:

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

Кто как боролся, особенно на сервере 2003 ??

SoNik

Дата регистрации: 17.02.2009
Сообщений: 148

Вот ответ 1С:

Цитата

Здравствуйте!

Использовать 64-х разрядную версию ОС и оперативную память 8Gb и больше

С уважением,
отдел тех. поддержки фирмы «1С»
Тел. (495) 956-11-81 (линия ИТС)
(495) 688-10-01 (базовые версии)

Тоесть я устанавливаю версию для работы в 32-х битной системе, но от меня требуют 64-х битную, это ли не косяк 1С, который они не желают исправлять?

ОльгаН

Дата регистрации: 18.02.2009
Сообщений: 985

А чего тут бороться? Написано же «недостаточно памяти».
Увеличиваете память и всё.
На 64 переходить не обязательно.

SoNik

Дата регистрации: 17.02.2009
Сообщений: 148

ОльгаН пишет:

Цитата

              А чего тут бороться? Написано же «недостаточно памяти». Увеличиваете память и всё. На 64 переходить не обязательно.

Девушка, милая, на 32 разрядной ОС ограничение в 4 ГБ. Из них ОС задействует под программы 2 и 2 оставляет для системных задач. Можно только перераспределить.

Контрольное Cоотношение Равенство

Дата регистрации: 28.01.2018
Сообщений: 229

SoNik,
судя по тексту ошибки, надо просто обрезать и настроить размер ЖР — Журнал Регистрации

Евгений

Дата регистрации: 28.01.2020
Сообщений: 2

Обновились на 3.0.75.58 и тоже начало появляться такое сообщение.. … ошибка в конфигурации? есть решение?

Контрольное Cоотношение Равенство

Дата регистрации: 28.01.2018
Сообщений: 229

Евгений пишет:

Цитата
Обновились на 3.0.75.58 и тоже начало появляться такое сообщение.. … ошибка в конфигурации? есть решение?

Ответили же уже выше:
— уменьшите (размер) ЖР и
— увеличте размер , выделяемой под процессы 1С оперативной памяти
— удалите ненужное

Гугль сразу же выдаёт ссылки на
bcdedit /set increaseuserva

Евгений

Дата регистрации: 28.01.2020
Сообщений: 2

Контрольное Cоотношение Равенство пишет:

Цитата

             Евгений пишет:

Цитата
Обновились на 3.0.75.58 и тоже начало появляться такое сообщение.. … ошибка в конфигурации? есть решение?

Ответили же уже выше: — уменьшите (размер) ЖР и — увеличте размер , выделяемой под процессы 1С оперативной памяти — удалите ненужное Гугль сразу же выдаёт ссылки на bcdedit /set increaseuserva

я так понимаю выделяемая память это функция: bcdedit /set increaseuserva?

а про уменьшить размер ЖР можно чуть подробнее?

Контрольное Cоотношение Равенство

Дата регистрации: 28.01.2018
Сообщений: 229

Евгений,

Показывать по
10
20
40
сообщений

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

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

Оборудование: 1С 8.3.15.1700, 1С: Бухгалтерия 8.3.2.0.66.88

Решение проблемы: На моей памяти подобное в небольших организациях начинает происходить ежегодно — в январе, когда нужно готовить годовые отчёты для сдачи в различные контролирующие ведомства. Ошибка появляется не обязательно при сохранении. А может просто появиться, когда вносятся какие-либо данные. При этом на одном компьютере всё происходит до ужаса стабильно раз в год. На других — по обстоятельствам.

Есть в Интернете несколько вариантов решения проблемы:

1) Увеличить ОЗУ. Ну, тут, как говорится, смотря по обстоятельствам. Однако отмечу такой факт: на компьютере, где ошибка возникает ежегодно, база рабочая весит не более 1,6 Гб, а ОЗУ стоит 16 Гб (кстати, увеличен объём в последние два года дважды — сначала с 4 до 8, а потом с 8 до 16 Гб!!). Если дело тут в памяти, то тогда как работают остальные на куда менее «объёмо-памятных» ПК?

2) Сам по себе глючный сервис /e1cib/logForm. И вроде как там стоит выбирать время, то, сё… пятое-десятое… Однако при работе на разных БД в одно и то же время бывало так, что один работает нормально, а другой — вот такое выдаёт.

Есть ещё всякие разные объяснения подобной ошибке. Мне в 5 случаях из 6 (единственный иной заключался в том, что я ещё, ничего не зная, просто сделал отчёт у себя на домашнем ПК по архивной БД) помогло следующее:

а) Урезание журнала БД. Делается это классическим способом: либо в конфигураторе, либо при закрытой базе просто удалением файлов журнала в папке, если этот журнал не жалко.

б) Проверкой и переиндексацией БД. Тут тоже можно проявить вариации: либо сделать это в конфигураторе, либо внешней утилитой (если кто сомневается, вдруг чего) chdbfl.exe.

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

Обе процедуры помогают (проверено мной). Понятное дело, что на очень-очень мало мощном компьютере с убитой ОС и старым ПО вряд ли и эти процедуры смогут помочь. Так что не стоит доводить всё до абсурда и утопии.

А потому: желаю всем качественного ПО и спокойной работы над поддержанием его работоспособности.

Одна из самых распространенных ошибок, возникающих в процессе работы с 1С 8.3 – «Недостаточно памяти». В реальности она может происходить после множества событий – обновления, обработки больших файлов, формирования отчета, загрузки данных и прочих. Это означает, что любой администратор и разработчик 1С должен понимать суть проблемы и уметь исправлять ее. Простым увеличением оперативной памяти ПК или жесткого диска эту проблему не решить.

Решение проблемы на клиентском компьютере

Причины этой ошибки кроются в том, что в операционных системах семейства Microsoft выделяется определенный объем памяти на каждое приложение 1С. Эти значения заявлены разработчиком, компанией 1С. Для 32-разрядных систем это значение установлено в 2 Гб, для 64 – 4 Гб. Когда ПО превышает этот показатель, на мониторе возникает окно с ошибкой.

Рис.1 Ошибка
Рис.1 Ошибка

Самый простой способ избавиться от таких сообщений – удалить помеченные на удаление объекты в конфигурации. Это помогает нечасто, но избавляет от лишних колебаний. К тому же, риск этих действий минимален, поскольку не требует вмешательства во внутренние настройки Windows. Если удаление не помогло, то придется бороться другими методами.

Еще одним решением для 32-битных систем можно назвать переход на 64-разрядную версию или выделение большего количества памяти приложениям. Первый вариант намного правильнее, но иногда в силу различных причин он невозможен. Тогда остается только вариант с алгоритмом действий, показанный ниже, но пользоваться им стоит очень аккуратно – возможны существенные проблемы с работоспособностью всей системы.

Этот алгоритм достаточно прост:

  1. Откройте командную строку Windows. Воспользуйтесь меню «Пуск» или комбинацией клавиш Windows +R и введите команду «cmd»;
  2. В появившемся окне наберите команду «bcdedit /set increaseuserva 3200» (для примера увеличим ограничение до 3,2 Гб). Увеличивать ограничение стоит аккуратно и постепенно;
  3. После подтверждения успешного завершения операции в окне командной строки перезагрузите ПК и попробуйте еще раз выполнить действия, приведшие к ошибке. Если проблема не ушла и 1С по-прежнему вылетает – можете еще раз увеличить ограничение;
  4. После успешного завершения операции без ошибки в 1С восстановите ограничения Windows по умолчанию командой «bcdedit /deletevalue increaseuserva». Это необходимый шаг, чтобы ОС не ущемляла свою работоспособность в угоду 1С и другим приложениям.

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

Недостаточно памяти на сервере 1С

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

Рис.2 Недостаточно памяти на сервере
Рис.2 Недостаточно памяти на сервере

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

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

  • Перезагрузка сервера 1С;
  • Перезапуск рабочих процессов 1С, что приведет к уменьшению используемой памяти. Этот вариант подойдет только для опытных администраторов, разбирающихся в консоли администрирования сервера 1С;
  • Используя технологический журнал, найти таблицу, при загрузке которой появляется ошибка «Недостаточно памяти» при обновлении или другой операции. Если ошибка появилась при работе с таблицей «config», то выполните проверку конфигурации с флагом «Проверка логической целостности конфигурации». Найти эту функцию можно в конфигураторе в меню «Конфигурация».

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

Рис.3 На жестком диске на сервере мало места
Рис.3 На жестком диске на сервере мало места

В компаниях с большим количеством пользователей ошибка «Недостаточно свободной памяти на сервере 1С:Предприятия 8.3» возникает достаточно часто. Большой проблемой и предпосылкой к этому является недостаточный анализ необходимой производительности. Поэтому при внедрении 1С уделите большое внимание достаточной мощности серверов, чтобы в будущем не пришлось настраивать производительность в ущерб стабильности.

Простой запрос. Ошибка — Недостаточно свободной памяти для выполнения операции

Я
   Kongo2019

21.10.20 — 16:21

Доброго

До дебильного простой запрос.

В консоли выполняется на раз. Возвращает 1200 записей.

В обработке вываливается ошибкой — Недостаточно свободной памяти для выполнения операции.

Запрос = Новый Запрос;

Запрос.Текст = «ВЫБРАТЬ

               |    НАЧАЛОПЕРИОДА(ЗакупкаВинограда.Дата, ДЕНЬ) КАК ДатаДок,

               |    ЗакупкаВинограда.Ссылка КАК Ссылка

               |ИЗ

               |    Документ.ЗакупкаВинограда КАК ЗакупкаВинограда

               |ГДЕ

               |    ЗакупкаВинограда.Проведен = ИСТИНА

               |    И ЗакупкаВинограда.ПометкаУдаления = ЛОЖЬ

               |    И ЗакупкаВинограда.Дата МЕЖДУ &ДатаНач И &ДатаКон

               |

               |УПОРЯДОЧИТЬ ПО

               |    ЗакупкаВинограда.Номер

               |ИТОГИ ПО

               |    ДатаДок»;

Запрос.УстановитьПараметр(«ДатаНач»,НачДата);

Запрос.УстановитьПараметр(«ДатаКон»,КонДата);

Результат = Запрос.Выполнить();

ВыборкаДаты = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,»ДатаДок»);

Пока ВыборкаДаты.Следующий() Цикл

    Сообщить(«- » + ВыборкаДаты.ДатаДок);

    Выборка = ВыборкаДаты.Выбрать();

    Пока Выборка.Следующий() Цикл

        Сообщить(«— » + Выборка.Ссылка);    

    КонецЦикла;

КонецЦикла;

Код выполняется в модуле внешней обработки.

Платформа.8.3.13.1865.

Где косяк-то?

   H A D G E H O G s

1 — 21.10.20 — 16:29

Тоже не вижу криминала.

Кэш?

   Kongo2019

2 — 21.10.20 — 16:32

(1) Чистил.

Запускать пробовал как на файловой версии базы, так и на северной.

   Lama12

3 — 21.10.20 — 16:36

(2) НачДата и КонДата какие имеют значения?

   Kongo2019

4 — 21.10.20 — 16:39

(3)

НачДата = Дата(‘2009.01.01 00:00:01’);

КонДата = КонецДня(ТекущаяДата());

   vova1122

5 — 21.10.20 — 16:41

(2)  А на Южной не пробовали запустить?

(4) А если указать меньший период, тоже валится?

   Lama12

6 — 21.10.20 — 16:42

(4) Не, ты в отладчике посмотри.

   Lama12

7 — 21.10.20 — 16:42

6+ Запрос нормальный особенно если в консоли выполняется. Значит дело в параметрах.

   ILM

8 — 21.10.20 — 16:43

Итоги нах… в запросе с ссылкой?

   Kongo2019

9 — 21.10.20 — 16:45

   ILM

10 — 21.10.20 — 16:45

Я бы добавил представление для ссылки…

   Kongo2019

11 — 21.10.20 — 16:46

(8) Надо доки по дням.

   Kongo2019

12 — 21.10.20 — 16:47

(10) Мне потом эти доки надо обработать.

Время им менять, ну для последовательности.

   Kongo2019

13 — 21.10.20 — 16:48

(5) Да хоть день.

   Kongo2019

14 — 21.10.20 — 16:49

(13) Стоп

НачДата = Дата(‘2009.01.01 00:00:01’);

//КонДата = КонецДня(ТекущаяДата());

КонДата = Дата(‘2009.12.31 23:59:59’);

Так отработал.

   Kongo2019

15 — 21.10.20 — 16:50

Но там 1200 записей всего. За год 150-200.

   H A D G E H O G s

16 — 21.10.20 — 16:55

Нет никакой дичи в обработке получения представления?

   Lama12

17 — 21.10.20 — 16:57

(14) Тестируй базу :-)

   MikhaNik

18 — 21.10.20 — 17:04

Если выполняется на терминальном сервере, то надо сколько памяти выделено на сеанс.

   H A D G E H O G s

19 — 21.10.20 — 17:13

Если есть доступ к серверу SQL и 1С — могу посмотреть

пишите на liveups@yandex.ru

   Kongo2019

20 — 22.10.20 — 08:04

(17) ТИИ прогнал. Ошибок нету.

Ладно хрен с ним, перебором буду делать.

   Масянька

21 — 22.10.20 — 08:19

(20) А случайно (ну, на всякий пожарный) в документе нет циклических ссылок?

   acht

22 — 22.10.20 — 08:19

А где валится-то — на .Выполнить или на .Выбрать?

Если на .Выбрать, то это у тя места на диске скорей всего мало, .Выбрать оно любит результат запроса в адские структуры раскладывать для работы разных там .Следующий по значению и т.п. Причем по временные файлы.

А консоль наверняка просто делает .Выгрузить и не парит мозг.

   Kongo2019

23 — 22.10.20 — 08:40

Это явно не аппаратный прикол.

Я вечером пробовал запустить на боевом сервере.

А там 128 гиг оперативы и винты на 8 терабайт.

Причем сама база 10 гиг.

Заметил такую закономерность если в выборку попадёт 999 записей то все отрабатывает, как только 1000 валится с ошибкой.

Причем период любой. Это глюк платформы видно такой. (

(21)пробовал другие доки, тот же эффект.

В общем 1000 некий предел у меня базе. Причем именно в моей базе.

Чего-то я там этакого накрутил видно.

Аналогичный запрос, но в УПП работает только так.

   Масянька

24 — 22.10.20 — 08:46

(23) Ну, чё… Молодец! :)))

   ДенисЧ

25 — 22.10.20 — 08:56

(23) на (22) ответь. Уже интересно становится ))

   Garykom

26 — 22.10.20 — 08:57

(23) А конфа у тебя случаем не учебная?

   Garykom

27 — 22.10.20 — 08:57

(26) *платформа

   Kongo2019

28 — 22.10.20 — 09:02

(24) Ну да, так самому себе на яйки наступить, это надо уметь.

(25) Пошагово дохожу до этой строчки

Выборка = ВыборкаДаты.Выбрать();

(26)Нет, официально купленная.

  

Garykom

29 — 22.10.20 — 09:13

Перепиши запрос на группировку по дате вместо итогов

Александр Рудницкий

Александр Рудницкий


Программист 1С компании CorpSoft24

Ошибка системы «1С: Предприятие 8.3» из-за нехватки памяти — постоянный спутник администратора 1С. Разбираемся, из-за чего они возникают, и рассматриваем пример диагностики одного подобного эпизода из практики администрирования сервера 1С.

Природа проблемы

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

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

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

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

Инцидент

Поступило обращение со следующей ошибкой:

Александр Рудницкий


Программист 1С компании CorpSoft24

Ошибка системы «1С: Предприятие 8.3» из-за нехватки памяти — постоянный спутник администратора 1С. Разбираемся, из-за чего они возникают, и рассматриваем пример диагностики одного подобного эпизода из практики администрирования сервера 1С.

Природа проблемы

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

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

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

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

Инцидент

Поступило обращение со следующей ошибкой:

Смотрим журнал регистрации, там так же выводится ошибка с пояснением о нехватке памяти на сервере:

Иллюстрация: нехватка памятиИллюстрация: нехватка памяти

Настроив технологический журнал (ТЖ) системы 1С с событием EXCP — EXCPCNTX обнаруживаем запись:

Ошибка СУБД out of memory for query result

То есть, обе ошибки сообщают о проблеме объёма памяти, на основании чего нашим главным подозреваемым становится код конфигурации (возможно наличие неоптимальных запросов).

Находим код конфигурации, вызывающий ошибку.

В журнале регистрации указан следующий код:

{ОбщийМодуль.ДокументооборотСКОВызовСервера.Модуль(22)}: Ошибка при вызове метода контекста (Получить)
по причине:

Недостаточно памяти для получения результата запроса к базе данных

Открываем конфигуратор и переходим в указанный модуль к указанному номеру строки кода:

Иллюстрация: нехватка памяти

Строка, на которой произошла ошибка:

ВнешниеОбъектыХранилище = Константы.ДокументооборотСКонтролирующимиОрганами_ВнешнийМодуль;
ДвоичныеДанныеОбработки = ВнешниеОбъектыХранилище.Получить().Получить();

Смотрим тип объекта (константы), к которой идёт обращение:

Иллюстрация: нехватка памяти

Итак, в конфигурации есть константа:

ДокументооборотСКонтролирующимиОрганами_ВнешнийМодуль

Она хранит в базе что-то неструктурированное (двоичные данные), что может занимать значительный объём памяти.

Проверяем, какой объем данных фактически занимает константа. Для этого узнаем имя таблицы хранения в базе PostgreSQL — таблица «_Const10013», индекс «_Const10013_ByKey».

Иллюстрация: нехватка памяти

Узнаем размер таблиц «Const10013», «_Const10013_ByKey» на диске:

На диске таблица занимает всего 4688 Кб = 4,6 Мб. Размер является незначительным, значит, причина не в константе.

Обнаруживаем, что кластер 1С является 32-разрядным:

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

Внесены изменения:

  • В кластере серверов 1С «Интервал превышения допустимого объёма памяти процессов» = 300. Настройка не избавляет от ошибки, но необходима для снижения частоты возникновения ошибки.
  • В планировщике Windows настроен перезапуск службы 1С; такими образом освобождается виртуальное адресное пространство в памяти, создаётся новый рабочий процесс.

Настройка также не гарантирует от ошибки, но снижает вероятность её возникновения.

Для предотвращения повторной ошибки следует:

  • Сменить 32-разрядный кластер серверов 1С на 64-разрядный.
  • Так как на сервере используется 14 ядер процессора, необходимо осуществить переход на платформенные лицензии 1С КОРП для снятия ограничений по настройкам и обеспечения возможностей для гибкой настройки распределения памяти сервера.

Другие варианты

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

Источником проблемы также может быть недостаток пространства на жестком диске сервера. Здесь решение будет зависеть от устройство сервера или кластера, но здесь также могут помочь и перезапуск сервера, и наращивание ёмкости диска (или освобождение существующего пространства), а также оптимизация запросов или обновление версии ПО системы.

Понравилась статья? Поделить с друзьями:
  • Ошибка недостаточно свободного места для выполнения этой операции
  • Ошибка недостаточно ресурсов памяти для обработки этой команды
  • Ошибка недостаточно ресурсов для подключения к таргету daemon tools
  • Ошибка недостаточно ресурсов для завершения вызова api
  • Ошибка недостаточно привилегий оперативного управления