gifts2017

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

Опубликовал Vladimir87 Vladimir87 (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
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Подписаться Добавить вознаграждение

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

Пришлось самостоятельно искать отладчиком в процедуре закрытия месяца "глючный" запрос и править его.
vdolynsky; quNas; Bukaska; Vladimir87; +4 Ответить
32. Ярослав Володимирович (myr4ik07) 11.09.13 14:27
Знаком, знаком с этой ошибки при создании образа одного из узлов.
часа 3 ждал и тут ошибка...
Надеюсь будет полезен данный выход с ситуации в дальнейшем. Спасибо.
Vladimir87; +1 Ответить
33. c00lwork c00lwork (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. Aleksandr Nevazhno (Popovi4) 08.03.14 17:24
При переходе с бух 2 на 3, вываливается такая ошибка. Кладр почистил, база, при сохранении пухнет с 800 мб до 3-х гб. Запускаясь на отладку, падает. Хоть пиши правила обмена и переноси все.
36. Кристина Кулакова (kulkrise) 28.04.14 22:29
(7) pumbaE, про хомячков как точно то подмечено, очень понравилось :D