IE 2016

Если не хватает памяти 1С

Опубликовал Vladimir87 в раздел Администрирование - Системное

Если вы проводите операцию в 1С, а она тупит и закрывается с ошибкой "Недостаточно памяти", то эта статья для вас.

Был у меня случай, пришел клиент, говорит, при закрытии месяца вылетает ошибка "Недостаточно памяти". Взялся я за эту проблему. Думал, что легко, сначала добавил оперативки - ошибка. Было 2 гигабайта, стало 4, а все равно 1с-ке мало. Размер файла подкачки менял - ошибка, переустановка системы (поставил Windows 7) дало только временный результат, где-то на неделю. Перепробовал все. Спустя некоторое время решение было найдено.

Решение

На клиентском компе запустить командную строку от имени администратора, прописать там следующее:

BCDEdit /set increaseuserva xxxx - вместо хххх пишите объем виртуального адресного пространства в мегабайтах, т.е. сколько нужно памяти под работу приложений. По умолчанию 2 гига. Вообще в 32-разрядных операционных системах выделяется 4 гигабайта: 2 - на приложения и 2 на нужды самой ОС.  Я выбрал 3000 (т.е. CDEdit /set increaseuserva 3000). Однако система может подглючивать. Особенно, если у вас 2 гига оперативки, как у меня. Это для ОС семейства Windows Vista, 7, Windows 2008.

Для Windows XP \ Windows 2003 пишем
/3GB /userva=xxxx (xxxx в МБ в диапазоне 2048 - 3072) в файле boot.ini, рекомендуемый максимум значений userva 2900–3030.

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

http://igrekk.ucoz.ru/forum/2-3-1 

http://blogs.technet.com/b/mark_russinovich/archive/2008/07/21/3151288.aspx 

http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=9583842&linkID=9240697

http://forall.ru-board.com/egor23/online/FAQ/Virtual_Memory/Limits_Virtual_Memory.html#t1

См. также

PowerTools от 1 000

Лучшие комментарии

7. pumbaE 16.08.2012 13:20
(6) Vladimir87, вот специально сейчас проверил на свой 64 битной винде и толстый клиент на 8.2.15 . Взял СКД и вывел регистр "Продажи" в отчет, без отборов, все поля, за весь период, до регистратора - результат "Недостаточно памяти".
(4) maxkisa, если это не production решение, то не нужно. Долго просить, что бы потом на ошибки 1С отвечало "продолжайте наблюдение", а у себя в журнале писало "Эксперемент № 12433, подгруппа хомячков № 342 , на 10 день пользования продуктом, хомячки взбунтовались, отделались обещание исправить. Посмотрим, через какое время опять выть начнут."
Ответили: (8) (36)
− 1 [ Vladimir87; ]
# Ответить
31. DEG156 11.09.2013 11:33
Привожу и свой пример...

Была у меня аналогичная ошибка с проведением "закрытии месяца". Конфигурация ИМПУЛЬС-ИВЦ "Подрядчик строительства" 8.2.

Перепробовал все варианты, хорошо еще было время - бухгалтерия терпела.

Пишу в поддержку 1С они отвечают - виновата фирма ИМПУЛЬС-ИВЦ. Пишу в ИМПУЛЬС-ИВЦ их ответ - виновата платформа 1С. Отфутболили...

Пришлось самостоятельно искать отладчиком в процедуре закрытия месяца "глючный" запрос и править его.
# Ответить
30. kukla11 05.09.2013 11:17
Спасибо друг) Долго я мучился с этой ошибкой, даже отчет пришлось переделать.
+ 2 [ quNas; Vladimir87; ]
# Ответить

Комментарии

1. makas 16.08.2012 00:10
Мне простому буху - полезное чтение перед сном :)
# Ответить
2. pumbaE 16.08.2012 10:07
Как может помочь 64 винда, если клиент 1С 32? 64 поможет сейчас только в linux и только на 8.3 (там клиент тоже есть 64)...

Реальное решение только одно - перенос логики расчета на сервер 1С 64.
Ответили: (4) (6)
# Ответить
3. Alex_E 16.08.2012 10:16
Мне помогала просто установка размера файла подкачки в "Определяется операционной системой"
Ответили: (5)
# Ответить
4. maxkisa 16.08.2012 12:22
(2) pumbaE,

Поговаривают, что 64 разрядный клиент есть и под Windows, но это надо ооочень хорошо попросить у 1С =)))
Ответили: (7)
# Ответить
5. Vladimir87 16.08.2012 12:51
(3) Alex_E, пытался, но к сожалению не проканало. Вот и пришлось мудрить ).
# Ответить
6. Vladimir87 16.08.2012 13:02
(2) pumbaE, в 64-битных ОС нет ограничения виртуальной памяти (2 гигабайта). Поэтому 1с может спокойно работать. Хотя, если честно, первый раз сталкиваюсь с тем, что приложение съедает более 2 гигов виртуалки. Обычно хватает не более 1 гига. А что еще более удивило, что эта проблема не только у 1С, тот же автокад тоже "грешен".
Ответили: (7)
+ 1 [ drim87; ]
# Ответить
7. pumbaE 16.08.2012 13:20
(6) Vladimir87, вот специально сейчас проверил на свой 64 битной винде и толстый клиент на 8.2.15 . Взял СКД и вывел регистр "Продажи" в отчет, без отборов, все поля, за весь период, до регистратора - результат "Недостаточно памяти".
(4) maxkisa, если это не production решение, то не нужно. Долго просить, что бы потом на ошибки 1С отвечало "продолжайте наблюдение", а у себя в журнале писало "Эксперемент № 12433, подгруппа хомячков № 342 , на 10 день пользования продуктом, хомячки взбунтовались, отделались обещание исправить. Посмотрим, через какое время опять выть начнут."
Ответили: (8) (36)
− 1 [ Vladimir87; ]
# Ответить
8. Vladimir87 16.08.2012 18:43
(7) pumbaE, что ж, значит не тот случай. У меня прошло все успешно. Опять таки статья описывает мой опыт, как мне удалось. Конечно есть вероятность, что у других не пойдет.
# Ответить
9. 7o2uYXg 17.08.2012 10:00
даже в 64-битной ОС, клиентское приложение 1С может выжрать порядка 3.5 гигабайт оперативки, после чего всё-таки выдаётся сообщение "Недостаточно памяти".
Как правильно заметили выше - уносите логику на сервер, там такой беды нет.
Ответили: (13)
# Ответить
10. Vladimir87 17.08.2012 11:13
Ладно, уговорили, подправлю статью )).
# Ответить
11. 1977 21.08.2012 18:32
У Меня при выгрузке номенклатуре в WINDows 7 64 bit с 8 гагами такая ошибка выкидывает
# Ответить
12. Alex_IT 23.08.2012 11:33
ИМХО - нужно оптимизировать код.
Иначе, через пару недель/месяцев, снова встретите эту ошибку.

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

В случае живой и растущей базой, увеличение доступной памяти до 3Гб - временное решение.
Ответили: (15)
# Ответить
13. LeaNaeD 23.08.2012 13:46
(9) 7o2uYXg,

>Как правильно заметили выше - уносите логику на сервер, там такой беды нет.

Да ничерта это не "правильно заметили". Правильно заметили - это эксперимент с отчетом, описанный вывше. С полгода назад проводил такой же эксперимент. Клиент-серверный режим, типовая УТ 11. Делаем любой типовой отчет с извратными настройками за большой период. ОК, логика перенесена на сервер, клиент простаивает. Вроде бы все хорошо, ну это пока сервер не начнет передавать клиенту все, что он там насчитал. Итого на клиенте та же самая ошибка с нехваткой памяти. Тонкий клиент, отжирающий 2Гб оперативной памяти - ну я даже и не знаю, что сказать.

Так что только 64-битный клиент спасет Отца русской демократии.
# Ответить
14. KV1s 23.08.2012 17:58
Поговаривают, что 64 разрядный клиент есть и под Windows, но это надо ооочень хорошо попросить у 1С =)))

Из тойже серии что секретный релиз платформы 7.7
# Ответить
15. Vladimir87 24.08.2012 06:29
(12) Alex_IT, в принципе вы правы, нужно контролировать размер базы, делать свертку и т.д. Тогда все будет в "шоколаде". Данный способ, который описан в этой статье, предназначен для быстрого решения проблемы, когда нет времени на оптимизацию базы, кода.
# Ответить
16. Shade 27.08.2012 10:05
Скоро опять вспухнет, вопрос времени. Свертка базы или сервер 1С, но так хочется верить что скоро будет 64-битный клиент :)
# Ответить
17. zzzz5555 21.09.2012 16:33
Для 7.7 подходит? (в случае выгрузки xml большого размера - обработки падают, ссылаясь на нехватку оперативки).
Ответили: (18)
# Ответить
18. Vladimir87 21.09.2012 16:41
(17) zzzz5555, честно, не экспериментировал над 1с 7.7. Какая именно ошибка вылетает? Можете поподробнее ее описать.
# Ответить
19. v.a.ryag 10.12.2012 13:45
а мне не помогло ничего, при формировании отчета после съедания 1,5 гб памяти падает. Хотя всего 8, и настроики уже сделал в винде чтоб выделять приложениям
# Ответить
20. stei 09.02.2013 22:15
Ребят, помогайте, не могу разобраться!....
Есть база бухгалтерии 8.2 2.0, вес в файловом 16гб., железо 1 Xeon 3430, 24гб оперативы, дискового свободно около 1Тб, файл подкачки был 24гб, поставил 50гб, винда 2008 сервер, 64-разрядный энтерпрайз, формирую отчет книгу предпринимателя выпадает в ошибку "Недостаточно памяти" после 3 870 000 кб по дспетчеру, всё перепробовал - разные релизы платформы, даже на 8.3 переводил, поставил sql2008, та же песня, вылетает именно платформа, как вариант поставить х64 платформу 8.3, но нигде не могу найти такую....
Ответили: (21) (22) (23)
# Ответить
21. Vladimir87 10.02.2013 08:31
(20) stei, 16 гигов файловая база? - ах..еть. Конечно надо на клиент-серверный вариант переносить. Ну а далее провести диагностикку базы - тестирование, исправление и прочее, свертку базы. Кстати, ты говоришь, что поставил sql2008. Он 64-разрядный? Если ось 64разр, то и желательно , чтобы все приложения были из этой серии. По поводу оперативки - она вся задействуется? Или только часть ее? Просто в виндах есть такая штука, впроде поставил столько-то, а она визически не может видеть больше. Как я понимаю мой метод вряд-ли тут подойдет, т.к. у тебя винда 64-разрядная. Хотя, если терять нечего, стоит попробовать. По поводу обращения в компанию 1С с этой проблемой, сразу говорю - бесполезно, хоть ты им по почте пришли комп с базой на борту, они никак не помогут. Есть конечно вариант открыть базу через конфигуратор и через отладчик прогнать всю эту процедуру. Может на какой-нибудь строки и "запинается". В общем подведу итоги:

1. Необходимо запустить утилиту "chdbfl.ехе". Она обычно находится в каталоге с запускаемым файлом 1С. Например: C:\Program Files\1cv82\8.2.14.537\bin. Ею можно поробовать протестировать и исправить базу.
2. Перенос базы на SQL.(тот же MSSQL 2008).
3. Если Windows Server 64-разрядный, то MSSQL 2008 тоже 64-разрядный.
4. Из конфигуратора провести тестирование и исправлнеие базы, по возможностью свертку базы.
5. Через отладчик сформировать этот отчет. Может получиться найти ошибку.
6. Провести метод изменения адресного просторанства.
7. Обратиться в службу поддержки 1С.(http://www.1c.ru/rus/support/support.htm#8).

P.S: А вообще я уже забил на эту 1С. Устал бороться с темным лесом бухгалтерии и глючности программы. Если честно - не жалею, что отошел от 1С )).
Ответили: (24)
# Ответить
22. Ta_Da 10.02.2013 14:07
(20) stei, у вас 32ух битное клиентское приложение (толстый клиент). Больше 4 гигов оперативки оно не может "съесть".
Тут либо переход на сервер 64x (с вероятным переписыванием отчета) либо просто переписывание отчета, чтобы данные обрабатывались кусками.
Ответили: (24)
# Ответить
23. jsuh 10.02.2013 14:12
(20) stei, 1) попробуй срезать базу, уж очень она огромная. На сколько я помню, таблицы регистров в файловом варианте не должны превышать 2Гб. Если хоть одна таблица переваливает за этуу отметку срочно или реж базу. или переходи на клиент-сервер.
Ответили: (24)
# Ответить
24. stei 10.02.2013 17:28
(21) Vladimir87, (22) Ta_Da, (23) jsuh, Винда 64-разрядная, скула соответственно тоже, всё дело в клиенте, именно то, что он 32-разрядный не дает ему кушать больше 4гб оперативы, как вывод - ошибка.
Обрезка не вариант, то, что можно было уже срезали, реализаций очень много просто на предприятии.
Отчет стандартный, переписать конечно можно, но это время, да и как клиенту объяснить, мол, простите, стандартные отчеты, которые пишет 1с не катят ))) Вообще странно, не думаю, что ситуация у нас прям такая уникальная...
База изначально и крутится на скуле, в файловый вариант перевел только для тестов, соответственно проверки чекдбф-ом и "тестирование и исправление" делал, не один раз.
Выход пока нашел, поставил 8.3 платформу, после танцев с бубном в файловом варианте формирование отчета прошло нормально, но всё равно это только полумера, нужно на скулу обратно. Как вариант 64-битный клиент 8.3, говорят, что есть такой в природе, если есть у кого - поделитесь ))
Ответили: (25) (26)
# Ответить
25. Ta_Da 11.02.2013 13:00
(24) stei, дык я вам и пишу про то что клиентское приложение 32 битное.
Про сервер я упоминал в плане "обрабатывать все данные на сервере, на клиент передавать только готовую таблицу". Изврат возможно, но может сработать.
# Ответить
26. Vladimir87 11.02.2013 18:36
(24) stei, по-идее релиз 1с 8.3 64-битный должен быть на официальном сайте в свободном доступе (разумеется только для тех, у кого оформлен договор ИТС). Если там нет, то можно узнать об этом в службе поддержки. На других сайтах, я думаю, лучше не искать. Если на офсайте нет, то на других - подавно.
# Ответить
27. Bukaska 11.02.2013 19:20
Не обязательно именно только договор ИТС. У меня учётка по лицензии комплект разработчика, а доступ к обновлениям платформы имею. А для обновления конфигурации из комплекта разраба по УТ11 - там да.. доступа нет, нужна подписка ИТС. НО если у вас полноценная платформа на лицензии, то доступ к платформенным обновлениям должен быть. Только у 8.3 есть (обычный клиент и тонкий клиент )х64 для DEB-based Linux-систем, для RPM-based Linux-систем)))
# Ответить
28. Vladimir87 12.02.2013 16:14
Осталось самое простое - все перенести на Linux :D
# Ответить
29. zzz_natali 28.08.2013 19:46
Может всё-таки BCDEdit, а не:
# Ответить
30. kukla11 05.09.2013 11:17
Спасибо друг) Долго я мучился с этой ошибкой, даже отчет пришлось переделать.
+ 2 [ quNas; Vladimir87; ]
# Ответить
31. DEG156 11.09.2013 11:33
Привожу и свой пример...

Была у меня аналогичная ошибка с проведением "закрытии месяца". Конфигурация ИМПУЛЬС-ИВЦ "Подрядчик строительства" 8.2.

Перепробовал все варианты, хорошо еще было время - бухгалтерия терпела.

Пишу в поддержку 1С они отвечают - виновата фирма ИМПУЛЬС-ИВЦ. Пишу в ИМПУЛЬС-ИВЦ их ответ - виновата платформа 1С. Отфутболили...

Пришлось самостоятельно искать отладчиком в процедуре закрытия месяца "глючный" запрос и править его.
# Ответить
32. myr4ik07 11.09.2013 14:27
Знаком, знаком с этой ошибки при создании образа одного из узлов.
часа 3 ждал и тут ошибка...
Надеюсь будет полезен данный выход с ситуации в дальнейшем. Спасибо.
+ 1 [ Vladimir87; ]
# Ответить
33. c00lwork 19.01.2014 13:04
все равно не достаточно , даже 8000 параметр при 8000 существующих , Спасибо
# Ответить
34. capricorn2828 25.02.2014 07:43
Очистка КЛАДРа помогла, однознначно. Никакие архивации и упаковки не сработали. конф AMD Athlon X2 240. 4Gb ОЗУ, 450 Gb на диске. 1С БП 3.0, платформа 8.3.4.365.
# Ответить
35. Popovi4 08.03.2014 17:24
При переходе с бух 2 на 3, вываливается такая ошибка. Кладр почистил, база, при сохранении пухнет с 800 мб до 3-х гб. Запускаясь на отладку, падает. Хоть пиши правила обмена и переноси все.
# Ответить
36. kulkrise 28.04.2014 22:29
(7) pumbaE, про хомячков как точно то подмечено, очень понравилось :D
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016