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

Публикация № 147631

Администрирование - Администрирование данных 1С

Конфигурация переполнение

Если вы проводите операцию в 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

Специальные предложения

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. makas 44 16.08.12 00:10 Сейчас в теме
Мне простому буху - полезное чтение перед сном :)
2. pumbaE 640 16.08.12 10:07 Сейчас в теме
Как может помочь 64 винда, если клиент 1С 32? 64 поможет сейчас только в linux и только на 8.3 (там клиент тоже есть 64)...

Реальное решение только одно - перенос логики расчета на сервер 1С 64.
4. maxkisa 16.08.12 12:22 Сейчас в теме
(2) pumbaE,

Поговаривают, что 64 разрядный клиент есть и под Windows, но это надо ооочень хорошо попросить у 1С =)))
6. Vladimir87 225 16.08.12 13:02 Сейчас в теме
(2) pumbaE, в 64-битных ОС нет ограничения виртуальной памяти (2 гигабайта). Поэтому 1с может спокойно работать. Хотя, если честно, первый раз сталкиваюсь с тем, что приложение съедает более 2 гигов виртуалки. Обычно хватает не более 1 гига. А что еще более удивило, что эта проблема не только у 1С, тот же автокад тоже "грешен".
7. pumbaE 640 16.08.12 13:20 Сейчас в теме
(6) вот специально сейчас проверил на свой 64 битной винде и толстый клиент на 8.2.15 . Взял СКД и вывел регистр "Продажи" в отчет, без отборов, все поля, за весь период, до регистратора - результат "Недостаточно памяти".
(4) maxkisa, если это не production решение, то не нужно. Долго просить, что бы потом на ошибки 1С отвечало "продолжайте наблюдение", а у себя в журнале писало "Эксперемент № 12433, подгруппа хомячков № 342 , на 10 день пользования продуктом, хомячки взбунтовались, отделались обещание исправить. Посмотрим, через какое время опять выть начнут."
Dmitri93; Gotcha; quNas; frost_a; kulkrise; bulpi; +6 1 Ответить
8. Vladimir87 225 16.08.12 18:43 Сейчас в теме
(7) pumbaE, что ж, значит не тот случай. У меня прошло все успешно. Опять таки статья описывает мой опыт, как мне удалось. Конечно есть вероятность, что у других не пойдет.
36. kulkrise 3 28.04.14 22:29 Сейчас в теме
(7) pumbaE, про хомячков как точно то подмечено, очень понравилось :D
3. Alex_E 2174 16.08.12 10:16 Сейчас в теме
Мне помогала просто установка размера файла подкачки в "Определяется операционной системой"
agentesecreto; +1 Ответить
5. Vladimir87 225 16.08.12 12:51 Сейчас в теме
(3) Alex_E, пытался, но к сожалению не проканало. Вот и пришлось мудрить ).
agentesecreto; +1 Ответить
9. 7o2uYXg 44 17.08.12 10:00 Сейчас в теме
даже в 64-битной ОС, клиентское приложение 1С может выжрать порядка 3.5 гигабайт оперативки, после чего всё-таки выдаётся сообщение "Недостаточно памяти".
Как правильно заметили выше - уносите логику на сервер, там такой беды нет.
13. LeaNaeD 11 23.08.12 13:46 Сейчас в теме
(9) 7o2uYXg,

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

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

Так что только 64-битный клиент спасет Отца русской демократии.
10. Vladimir87 225 17.08.12 11:13 Сейчас в теме
Ладно, уговорили, подправлю статью )).
11. 1977 2 21.08.12 18:32 Сейчас в теме
У Меня при выгрузке номенклатуре в WINDows 7 64 bit с 8 гагами такая ошибка выкидывает
12. Alex_IT 140 23.08.12 11:33 Сейчас в теме
ИМХО - нужно оптимизировать код.
Иначе, через пару недель/месяцев, снова встретите эту ошибку.

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

В случае живой и растущей базой, увеличение доступной памяти до 3Гб - временное решение.
NoPlayer; +1 Ответить
15. Vladimir87 225 24.08.12 06:29 Сейчас в теме
(12) Alex_IT, в принципе вы правы, нужно контролировать размер базы, делать свертку и т.д. Тогда все будет в "шоколаде". Данный способ, который описан в этой статье, предназначен для быстрого решения проблемы, когда нет времени на оптимизацию базы, кода.
14. KroVladS 23.08.12 17:58 Сейчас в теме
Поговаривают, что 64 разрядный клиент есть и под Windows, но это надо ооочень хорошо попросить у 1С =)))

Из тойже серии что секретный релиз платформы 7.7
16. Shade 2 27.08.12 10:05 Сейчас в теме
Скоро опять вспухнет, вопрос времени. Свертка базы или сервер 1С, но так хочется верить что скоро будет 64-битный клиент :)
17. zzzz5555 21.09.12 16:33 Сейчас в теме
Для 7.7 подходит? (в случае выгрузки xml большого размера - обработки падают, ссылаясь на нехватку оперативки).
18. Vladimir87 225 21.09.12 16:41 Сейчас в теме
(17) zzzz5555, честно, не экспериментировал над 1с 7.7. Какая именно ошибка вылетает? Можете поподробнее ее описать.
19. v.a.ryag 37 10.12.12 13:45 Сейчас в теме
а мне не помогло ничего, при формировании отчета после съедания 1,5 гб памяти падает. Хотя всего 8, и настроики уже сделал в винде чтоб выделять приложениям
20. stei 09.02.13 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. Vladimir87 225 10.02.13 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. stei 10.02.13 17:28 Сейчас в теме
(21) (22) Ta_Da, (23) jsuh, Винда 64-разрядная, скула соответственно тоже, всё дело в клиенте, именно то, что он 32-разрядный не дает ему кушать больше 4гб оперативы, как вывод - ошибка.
Обрезка не вариант, то, что можно было уже срезали, реализаций очень много просто на предприятии.
Отчет стандартный, переписать конечно можно, но это время, да и как клиенту объяснить, мол, простите, стандартные отчеты, которые пишет 1с не катят ))) Вообще странно, не думаю, что ситуация у нас прям такая уникальная...
База изначально и крутится на скуле, в файловый вариант перевел только для тестов, соответственно проверки чекдбф-ом и "тестирование и исправление" делал, не один раз.
Выход пока нашел, поставил 8.3 платформу, после танцев с бубном в файловом варианте формирование отчета прошло нормально, но всё равно это только полумера, нужно на скулу обратно. Как вариант 64-битный клиент 8.3, говорят, что есть такой в природе, если есть у кого - поделитесь ))
25. Ta_Da 11.02.13 13:00 Сейчас в теме
(24) stei, дык я вам и пишу про то что клиентское приложение 32 битное.
Про сервер я упоминал в плане "обрабатывать все данные на сервере, на клиент передавать только готовую таблицу". Изврат возможно, но может сработать.
26. Vladimir87 225 11.02.13 18:36 Сейчас в теме
(24) stei, по-идее релиз 1с 8.3 64-битный должен быть на официальном сайте в свободном доступе (разумеется только для тех, у кого оформлен договор ИТС). Если там нет, то можно узнать об этом в службе поддержки. На других сайтах, я думаю, лучше не искать. Если на офсайте нет, то на других - подавно.
22. Ta_Da 10.02.13 14:07 Сейчас в теме
(20) stei, у вас 32ух битное клиентское приложение (толстый клиент). Больше 4 гигов оперативки оно не может "съесть".
Тут либо переход на сервер 64x (с вероятным переписыванием отчета) либо просто переписывание отчета, чтобы данные обрабатывались кусками.
23. jsuh 25 10.02.13 14:12 Сейчас в теме
(20) stei, 1) попробуй срезать базу, уж очень она огромная. На сколько я помню, таблицы регистров в файловом варианте не должны превышать 2Гб. Если хоть одна таблица переваливает за этуу отметку срочно или реж базу. или переходи на клиент-сервер.
27. Bukaska 134 11.02.13 19:20 Сейчас в теме
Не обязательно именно только договор ИТС. У меня учётка по лицензии комплект разработчика, а доступ к обновлениям платформы имею. А для обновления конфигурации из комплекта разраба по УТ11 - там да.. доступа нет, нужна подписка ИТС. НО если у вас полноценная платформа на лицензии, то доступ к платформенным обновлениям должен быть. Только у 8.3 есть (обычный клиент и тонкий клиент )х64 для DEB-based Linux-систем, для RPM-based Linux-систем)))
28. Vladimir87 225 12.02.13 16:14 Сейчас в теме
Осталось самое простое - все перенести на Linux :D
29. zzz_natali 59 28.08.13 19:46 Сейчас в теме
Может всё-таки BCDEdit, а не:
30. kukla11 41 05.09.13 11:17 Сейчас в теме
Спасибо друг) Долго я мучился с этой ошибкой, даже отчет пришлось переделать.
quNas; Vladimir87; +2 Ответить
31. DEG156 28 11.09.13 11:33 Сейчас в теме
Привожу и свой пример...

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

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

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

Пришлось самостоятельно искать отладчиком в процедуре закрытия месяца "глючный" запрос и править его.
vdolynsky; quNas; Bukaska; Vladimir87; +4 Ответить
32. jaroslav.h 11.09.13 14:27 Сейчас в теме
Знаком, знаком с этой ошибки при создании образа одного из узлов.
часа 3 ждал и тут ошибка...
Надеюсь будет полезен данный выход с ситуации в дальнейшем. Спасибо.
Vladimir87; +1 Ответить
33. c00lwork 19.01.14 13:04 Сейчас в теме
все равно не достаточно , даже 8000 параметр при 8000 существующих , Спасибо
34. capricorn2828 25.02.14 07:43 Сейчас в теме
Очистка КЛАДРа помогла, однознначно. Никакие архивации и упаковки не сработали. конф AMD Athlon X2 240. 4Gb ОЗУ, 450 Gb на диске. 1С БП 3.0, платформа 8.3.4.365.
35. Popovi4 08.03.14 17:24 Сейчас в теме
При переходе с бух 2 на 3, вываливается такая ошибка. Кладр почистил, база, при сохранении пухнет с 800 мб до 3-х гб. Запускаясь на отладку, падает. Хоть пиши правила обмена и переноси все.
Оставьте свое сообщение