Помилка «Недостатньо пам'яті» в 1С 8.3 та 8.2 є не такою вже й рідкісною. Її можна зустріти і в конфігураторі (наприклад, при порівнянні конфігурацій), а також у режимі «1С:Підприємство» при виконанні трудомістких обробок: наприклад, при записі великого файлу формату base64.

Ця помилка може траплятися у програмі 1С, а й у інших програмах операційної системи Windows.

Справа в тому, що в 32-х розрядних операційних системах за замовчуванням 2 ГігаБайти на різні програми і стільки ж для операційної системи. У 64-х розрядних ОС об'єм пам'яті, що виділяється на додатки, становить вже 4 ГігаБайта.

Виходячи з вищесказаного, вам необхідно збільшити розмір виділеної адресної пам'яті на додатки, яким є програма 1С. Зробити це можна двома способами: здійснити перехід з 32-х розрядної системи на 64-х розрядну, або збільшити виділену кількість адресної пам'яті.

Звичайно ж, перший спосіб кращий і кращий, але якщо в даний момент, або взагалі ви не можете ним скористатися, то можете скористатися другим.
Дня початку перейдіть до командного рядка операційної системи. Для цього перейдіть в меню «Пуск» та ввірте у рядку пошуку «cmd».

Перед вами з'явиться пошук програм. Виберіть ту, що називається cmd.

Також командний рядок можна відкрити за допомогою комбінації гарячих клавіш Windows + R.

У вікні наберіть наступну команду і так само натисніть «Enter»:

bcdedit /set increaseuserva 3200

У цьому випадку ви збільшите обсяг адресної пам'яті до 3200 мегабайт.

Після того, як у вас все вийшло, рекомендується відновити колишній обсяг адресної пам'яті. Дана міра тимчасова, так як при виділенні пам'яті на додатки, операційна система стає меншою. За рахунок цього можливе порушення стабільності Windows.

Для відновлення адресної пам'яті значення за замовчуванням можна скористатися наступною командною, яка так само вводиться в командному рядку:

bcdedit /deletevalue increaseuserva

Зверніть увагу, що при помилці «Нестача пам'яті» в 1С, що часто зустрічається, так само може допомогти видалення помічених об'єктів. Можливо, у програмі їх накопичилося дуже багато, і програмі складно обробляти такі обсяги даних. Якщо цей спосіб не допоміг, вам слід збільшити розрядність операційної системи Windows.

Така ж ситуація може відбуватися під час формування об'ємного звіту, виконання при виконанні завантаження великої інформаційної бази і т.п. Зауважимо, це відбувається під час виконання якихось об'ємних операцій, які потребують певної кількості ресурсу комп'ютера. Причому у звичайному режимі програма 1С працює відносно нормально.

Такі поради як очистити диск, на якому встановлена ​​програма, виконати в програмі, скористатись , вибравши пункт Стиснення таблиць інформаційної бази швидше за все не дадуть потрібного результату, хоча їх теж варто спробувати.

Для роботи програми 1С, до параметрів комп'ютера пред'являються певні вимоги і якщо їх характеристика не відповідає встановленій програмі, можуть виникнути проблеми у вигляді гальмування роботи, появі такого роду помилок.

Додавши оперативну пам'ять нашому комп'ютеру, помилка з'являється знову. У такому разі причина криється в обмеженому виділенні адресної пам'яті операційною системою під програмне забезпечення:

  • у 32-х розрядних операційних системах за замовчуванням виділено 2 Гб на різні програми та стільки ж для операційної системи,
  • у 64-х розрядних операційних системах – обсяг пам'яті становить уже 4 Гб.

При роботі 1С та виконання операції, можна через Диспетчер завданьстежити за процесом завантаження процесора та за вільною кількістю пам'яті. У нашому випадку при оновленні ця цифра наближалася до нуля і в цей момент виникала помилка «Недостатньо пам'яті». Запустити Диспетчер завданьможна натисканням клавіш Ctrl+Alt+Delта відкривши вкладку Швидкодія, стежити за цими показниками

Таким чином, нам необхідно збільшити розмір адресної пам'яті, що виділяється для додатків (у тому числі і 1С). Це можна зробити двома способами: перейти з 32-х розрядної системи на 64-х розрядну або збільшити кількість адресної пам'яті, що виділяється за замовчуванням. Перший варіант є більш правильним, але через деякі причини він буває неможливий, тому розглянемо другий варіант вирішення проблеми.

Виникають помилки. Ми розглянемо одну з них, присвячену темі "Недостатньо вільної пам'яті на сервері 1С:Підприємства".

Методика усунення помилки "Недостатньо вільної пам'яті на сервері 1С:Підприємства".

Обсяг пам'яті робочих процесів під час роботи на агент-сервері 1С перестав бути нескінченним. При його максимальному завантаженні користувач бачить перед собою повідомлення, що тішить своєю новизною - «Недостатньо вільної пам'яті на сервері 1С:Підприємства».


Спочатку про причини виникнення подібних повідомлень - чому пам'яті не вистачає. Їх може бути кілька:

Недостатня потужність заліза

Якщо в системі працює до п'яти осіб - тоді буде достатньо одного восьмигігабайтного комп'ютера з двома гвинтами (на одному - SERVER, на другому - SQL) та додатково встановлених фішок. Але інша справа – людина тридцять користувачів, тисячі документів первинки. Тут і SQL потрібно виносити в окремий сервер, і одним сервером терміналів не впоратися.

Брак пам'яті для зайвої інформації

Типові конфігурації намагаються описувати буквально всі процеси, які міг собі уявити розробник, намагаючись створити універсальний бухгалтерський засіб під назвою 1С:Підприємство. Тому конкретний користувач отримує додатковий багаж у вигляді прірви об'єктів метаданих , додаткових таблиць SQL, реквізитів, що не використовуються. Постійна прописка та переіндексація всього цього непотрібного в регістрах програми займає тривалий час та багато місця.

Помилки кодування

Перевантаження сервера виникає і при нерозумінні (іноді) програмістами деяких процесів та впровадженні ними своїх «милиць», що збільшують термін виконання поставлених завдань (і кількість робочих процесів також).

Помилки програми

Крім усього іншого, і це часто є чи не основною причиною - програма 1С має неймовірну кількість внутрішніх помилок. Деякі їх виправляються у наступних релізах. Цим помилкам присвячена велика кількість форумів, на яких адміни, обговорюючи чергові підступи, жартома кажуть, що в один ес працюють, напевно, одні таджики (Джамшут та Равшан).

Так що робити з сервером 1С

Оскільки причини виникнення проблеми можуть бути різними, то й способи виходу із ситуації також є різні:

Перезапуск служби сервера

Найшвидшим і найпростішим способом рішення є перезапуск служби сервера. З командного рядка Microsoft Windows (cmd): для зупинки виконується команда - net stop "1C: Enterprise 8.3 (або ваша версія) Server Agent", а для запуску - net start "1C: Enterprise 8.3 (відповідно до вашої версії) Server Agent". Таке рішення не знімає питання повністю – найчастіше помилка повторюється. Частота її повторів залежить від кількості клієнтів та кількості робочих процесів.

ВАЖЛИВО. Для можливості перезапуску потрібно мати відповідні права.

Автоперезапуск та налаштування кластера

Іноді навіть один робочий процес, що виконується, може зайняти чи не всю оперативку. Таке завдання вирішують шляхом збільшення їх кількості у налаштуваннях кластера. Додають приблизно по одному процесу для кожних п'ятнадцяти-тридцяти користувачів.

Інтервал перезапуску. Незадовго до завершення попереднього розпочинається новий процес rphost.exe. – На нього переходять з'єднання від старого. Допустимий обсяг пам'яті - при перевищенні цієї величини буде запущено секундний таймер відліку.

Інтервал з перевищення граничного обсягу - при перевищенні таймером відліку цього значення буде запущено новий процес. І на нього підв'яжуться з'єднання від старого. А старий, своєю чергою, позначається неактивним. Вимк. процеси зупиняти через - після значення цього параметра після позначки робочого процесу неактивним, відбудеться його завершення операційною системою. Якщо такий параметр вказатиме рівним «0» - тоді всі неактивні процеси не будуть автоматично завершуватися.

ВАЖЛИВО. Ця настройка характерна тим, що відключає від бази тільки того клієнта, який запустив некоректний звіт. А решта - буде плавно переміщена до нових сполук (без переривання від своєї бази).

Кількість робочих процесів

При перевантаженні rphost.exe з фоновими завданнями та відсутності створення нових процесів потрібно перевірити налаштування:

Макс. обсяг пам'яті робочих процесів - це сумарний обсяг пам'яті всім процесів разом. Вимірюється у байтах. При встановленні неправильного значення (неадекватного нормальної роботі) усі отримають помилку "Недостатньо вільної пам'яті на сервері 1с".

Безпечна витрата пам'яті на 1 дзвінок - контролює витрачання пам'яті при виклику сервером (в байтах). При використанні викликом більшої кількості, ніж зазначено, він буде завершений усередині кластера. Перезапуск його не буде проведено. А втрата сеансу не вплине на інших клієнтів.

Обсяг пам'яті для процесів, до якого сервер вважається системою продуктивним - при досягненні цього значення сервер кластера перестає приймати з'єднання. Кількість інформаційних баз на процес – ізолює ІБ за процесами. Після ізоляції інформаційних баз (при введенні значення – «1») проблеми зазвичай вирішуються.

Кількість з'єднань на один процес – за замовчуванням встановлено значення «128». Якщо поточна база відрізняється дуже великим навантаженням від фонових завдань, можна зменшити цю кількість, наприклад, до «25». При таких налаштуваннях трохи зміниться і налаштування кластера:

Рівень стійкості до відмови - показує ту кількість серверів, при виході з ладу якого не відбудеться аварійного завершення роботи клієнтів. При цьому автоматично буде запущено в потрібній кількості резервні сервіси.

Режим розподілу навантаження має два можливі варіанти. Якщо встановити "Пріоритет продуктивності" - то пам'ять сервера буде витрачатися більше для збільшення продуктивності. При виборі "Пріоритет пам'яті" - кластером 1С пам'ять буде економитися.

Інструмент для роботи з базою

Для оперування з базою даних потрібно скористатися засобами СУБД MS SQL.

Перевірка конфігурації

Можливо, причина помилка криється в некоректній інформації, яка міститься в Конфігурації. Для перевірки потрібно виконати команду «Перевірка конфігурації». (Не плутати із тестуванням!). Перед виконанням потрібно перевірити встановлення чекбоксу (прапорець) – «логічна цілісність». У разі виявлення некоректності це буде відображено у повідомленні. А помилки буде видалено.

Ми розглянули причини відсутності вільної пам'яті на сервері 1С та можливі шляхи усунення цього. Один із способів напевно дозволить вирішити проблему.

Перелічити всі ситуації, коли виникає помилка 1С "Недостатньо пам'яті" (Рис.1) неможливо. Спробуємо визначити основні:

  • При оновленні конфігурації;
  • При запуску програми;
  • Під час формування звіту;
  • За виконання великих розрахунків (проведення документа «Розрахунок собівартості», «Закриття місяця» тощо).

Причина завжди одна – брак фізичної пам'яті комп'ютера. При цьому додавання до пристрою додаткових планок оперативної пам'яті проблему вирішує не завжди.

Що визначає розмір доступної пам'яті

32-розрядні операційні системи мають одну істотну особливість: незалежно від обсягу оперативної пам'яті та розміру файлу підкачки, під роботу конкретної програми операційна система виділяє лише 4 Гб.

Враховуючи, що половина адресного простору віртуальної пам'яті виділяються під потреби самої системи, роботу програми залишається лише 2Гб. Під час роботи програми адресний простір віртуальної пам'яті має резервуватися одним безперервним блоком. Коли такої можливості, вискакує вікно (Рис.1).

Як збільшити доступну пам'ять

Без перевстановлення операційної системи існують два варіанти виправлення ситуації:


Цими способами можна зменшити адресний простір, що виділяється під операційну систему до 1Гб, збільшивши пам'ять під додаток до 3Гб.

Увага! Вручну розподіливши пам'ять, можна зіткнутися з проблемами в роботі персонального комп'ютера аж до повної зупинки системи.

Видалення рядка з файлу boot.ini або запуск команди із заміною параметра 2900 на 2000 повертає систему у вихідний стан.

Важливо розуміти, що ці способи – лише тимчасове вирішення проблеми, для остаточного її усунення необхідно перенести базу на 64-розрядну платформу.

Нестача пам'яті під час формування звіту

Не дуже часто, але ця помилка виникає у разі виникнення звітів. У цьому випадку виконання обробки формування табличного документа затягується і закінчується вікном, як на першому малюнку.

Перш ніж лізти в налаштування операційної системи та змінювати параметри розподілу оперативної пам'яті, у цьому випадку краще спробувати змінити налаштування звіту. Змініть дату, змініть угруповання, додайте відбір. Найчастіше це допомагає.

Якщо помилка виникає не в стандартному звіті (типу картки рахунку або оборотно-сальдової відомості) і є доступ до вихідного коду обробки, перевірте, чи не формуються в запиті тимчасові таблиці. Записані в оперативну пам'ять і до виконання запиту вони здатні значно під'їдати ресурси слабкого комп'ютера.

Взагалі, щоб уникнути подібних ситуацій, вкрай рекомендується знищувати тимчасові таблиці в запиті, відразу після того, як у них відпадає необхідність.

Витоку пам'яті на сервері

У деяких випадках у користувачів з'являється повідомлення на рис.3

Мал. 3.

Про причини такої поведінки сервера хотілося б сказати окремо.

Взагалі фраза «витік пам'яті» дещо неточна, краще сказати, що йде складування пам'яті, її нашарування. Програми, які запускають процеси, забувають їх своєчасно завершити. В результаті вони накопичуються в оперативній пам'яті.

Друга причина – фрагментація пам'яті. Якщо в процесі роботи сервера відбувається інтенсивне резервування та вивільнення оперативної пам'яті, в один з моментів може виникнути ситуація, коли обсяг вільної пам'яті достатній, але захопити безперервний блок адрес пам'яті, достатнього розміру неможливо.

Вирішити другу проблему можна за допомогою системних утиліт.

Внаслідок цього можуть:

  1. Виникати проблеми зі з'єднанням, його розриви, падіння програми; (рис.4)

Рис.4

  1. З'являтися помилки та зависання при розвантаженні інформаційної бази;
  2. Спостерігатися стрибки пам'яті, яку займають процеси 1С.

Помилки оновлення

Цей варіант нестачі пам'яті виникає при спробі оновлення конфігурації до актуального релізу. Він може бути пов'язаний як з великою кількістю запущених програм, так і з помилками в базі.

Перші дії при виникненні цієї проблеми – запуск оновлюваної бази в режимі конфігуратора та проведення її реструктуризації (пункт меню Адміністрування->Тестування та виправлення), хоча краще провести повний спектр робіт з виправлення помилок та переіндексацію таблиць.

Розглянемо докладніше варіанти виправлення помилки "Недостатньо пам'яті" в 1С 8.3.

Спосіб 1. Збільшити розмір адресної пам'яті

Існує обмеження у виділенні адресної пам'яті для програмного забезпечення операційною системою: для 32-х розрядної системи – 2 Гб; для 64-х розрядної системи – 4 Гб.

Крок 1

Для збільшення розміру адресної пам'яті потрібно зробити таке: запускаємо командний рядок із правами Адміністратора:

  • Пуск - Виконати - в командному рядку вводимо CMD і тиснемо Enter:
  • Або клацніть правою кнопкою миші по кнопці Пуск і виберіть командний рядок (Адміністратор).

Крок 2

Далі потрапляємо в діалогове командне вікно, де і повинні набрати команду на збільшення адресної пам'яті. Введемо в командному рядку BCDEdit /set increaseuserva xxxx, де замість хххх вказуємо обсяг віртуального адресного простору в мегабайтах. Наприклад, у 32-х розрядних системах рекомендується 3072 Мб:

Крок 3

Перезавантажуємо комп'ютер. Зробимо дії у програмі 1С 8.3, які не виходили раніше.

Крок 4

Після виконання операцій краще повернути адресну пам'ять значення за замовчуванням. Для цього введемо в командному рядку BCDEdit /deletevalue increaseuserva:

Перезавантажуємо комп'ютер.

Спосіб 2. Видалити помічені видалення документи і довідники

У платформі 1С 8.3 з'явилася можливість за допомогою регламентного завдання.

Видалення помічених об'єктів дозволяє:

  1. Збільшити продуктивність системи;
  2. Зменшити розмір бази даних.

Крок 1. Створюємо копію бази

Відкриваємо пункт : розділ Адміністрування – Налаштування програми – Підтримка та обслуговування – Резервне копіювання та відновлення:

Налаштовуємо розклад автоматичного копіювання бази та натискаємо Готово:

Детальніше як зробити резервну копію 1С 8.3 дивіться у нашому відео уроці:

Крок 2. Видаляємо помічені об'єкти

Відкриваємо пункт Автоматично видаляти помічені об'єкти за розкладом: розділ Адміністрування – Налаштування програми – Підтримка та обслуговування – Регламентні операції:

Налаштовуємо розклад автоматичного видалення помічених об'єктів у 1С 8.3 на зручний час. Наприклад, на час обідньої перерви і натискаємо Готово:

В результаті вироблених дій розмір бази зменшиться, покращиться продуктивність системи та помилки 1С "Недостатньо пам'яті" не повинно виникнути.


Поставте вашу оцінку цій статті: