Почему зависает 1С?

Хорошо знакомая ИТ-специалистам жалоба пользователей «висит 1С» имеет множество причин. Для постановки правильного «диагноза» – выявления и анализа проблемы, требуется ее воспроизведение, ведь проблему, которую невозможно воспроизвести, как правило, практически невозможно решить. Разобравшись в симптомах зависания 1С, мы сделаем первый шаг на пути к эффективно работающей системе.

Очень долгий запуск системы

Долгий запуск тяжелой конфигурации под одним пользователем первый раз после добавления ИБ в список баз на компьютере – явление нормальное. В процессе первого запуска происходит кэширование конфигурации. Второй и последующие запуски должны выполняться быстрее.

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

Рис.1 1С на MAC ОС

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

Есть вероятность, что конфигурация при запуске пытается прочитать данные из сети Интернет. Это также увеличивает время запуска системы.

Очень долгое открытие форм

Долгое открытие форм может быть обусловлено:

  1. Большим количеством элементов управления на форме – время тратится на создание формы и взаимоувязку расположения элементов формы;
  2. Выполнением алгоритмов при инициализации формы. Возможно, при создании формы проверяются какие-либо условия и/или происходит чтение связанных объектов из базы данных.

Первая проблема «лечится» упрощением формы. Например, часть элементов управления можно вынести в отдельные формы, что может быть даже удобнее для пользователя. Например, если на форме есть поле адреса «Город», «Улица», «Дом» и т.д., то редактирование адреса лучше вынести в отдельную форму.

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

Очень долгая реакция на интерактивные действия пользователя

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

  1. Алгоритмы, выполняющиеся при данном действии, проверяют или вычисляют связанные с ними данные, влияющие на режим выбора значения;
  2. Форма выбора, которая открывается для выбора этого значения, при инициализации считывает все объекты из базы данных.

Для решения первой проблемы следует воспользоваться «Замером производительности», найти ресурсоемкие алгоритмы и оптимизировать их.

Рис.2 Очень долгая реакция на интерактивные действия пользователя

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

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

Очень долгая реакция на обновления

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

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

Долгая запись объектов/проведение документов

В этом случае «лечение по фотографии» практически исключено, поскольку причины могут быть самые разнообразные, начиная с большого объема данных в объекте, заканчивая ожиданием на блокировках.

Но даже в ЭТОМ случае, можно наметить направление для анализа.

Отсутствие значительных изменений времени записи, обусловленных временем суток или количеством пользователей (по примерной, субъективной оценке), свидетельствует о проблеме в коде или в объеме данных объекта. Для анализа при этом имеет смысл воспользоваться инструментом «Замер производительности».

Кардинальное изменение времени записи при неясных зависимостях, требует выполнения статистического анализа появления проблемы, т.е. анализа производительности. Самый простой способ – анализ использования журнала регистрации. Дополнительным преимуществом здесь является поддержка платформой «1С:Предприятие 8» сохранения данных журнала регистрации в файл формата SQLite. Это позволит использовать SQL-запросы для анализа данных журнала. Время записи объектов вполне можно получить из данных журнала, если учесть тот факт, что каждая запись объекта выполняется в транзакции, а у каждой транзакции есть свой идентификационный номер.

Рис.3 SQL

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

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

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

Распространенными проблемами являются:

  • снижение производительности в процессе выполнения определенных задач;
  • замедление работы или долгое ожидание отклика;
  • полное зависание при закрытии и так далее.

Программисты и администраторы компании «Одна Система» будут рады помочь в решении проблем. Позвоните нам в Москве по телефону +7(495)240-8668!

Длительный отклик программы и другие неприятности.

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

Согласно рекомендациям специалистов, в таких ситуациях запрещается делать:

  • выдергивать вилку компьютера из розетки или просто отключать питание;
  • нажимать «reset» или иным грубым методом перезапускать систему;
  • кликать множество раз на панели зависшей программы или пытаться открыть лишние окна;
  • паниковать и делать лишние движения.

Необходимо предпринимать только грамотные и эффективные действия. Ситуация обостряется тем, что программа 1С содержит важные данные и документы, о безопасности которых необходимо побеспокоиться заранее. Для многих пользователей это становится еще одним поводом для беспокойства.

Эффективные меры для восстановления работоспособности.

Первым делом следует успокоиться и не паниковать, так как из-за этого можно наделать ошибок. Лучше всего рекомендуется немного подождать. Если система слабая, то можно дать компьютеру 5-10 минут на проработку. Как правило, более длительное ожидание практически бесполезно. В этот момент не нужно проводить манипуляции с системным блоком, монитором или клавиатурой, а также не надо пытаться открыть какие-то программы параллельно.

Рекомендуется сделать следующее:

  • попытаться закрыть программу, нажав крестик или комбинацию Alt+F4;
  • вызывать диспетчер задач через контекстное меню (правая кнопка на рабочем столе) или комбинацией Ctrl+Shift+Esc;
  • найти зависший процесс и завершить его принудительно.

Если Ваша система зависает и работает очень медленно, тогда звоните программистам компании «Одна Система» в Москве по телефону +7(495)240-8668!

1) посмотрите на количество памяти выделяемой rphost на сервере 1С. Если у вас x32 версия сервера то процесс сможет использовать максимум 1, 75 Гб ОЗУ
Если памяти не хватает, то сервер не может принять новые соединения или зависает когда текущему сеансу требуется дополнительная память

2) Посмотрите настройки «Параметры рабочего сервера» возможно установлены неверные настройки. У меня была такая проблема и сервер постоянно зависал. Мои настройки во вложение. Серверу выделено 11 Гб.
3) Возможны проблемы в настройке Postgressql.
Предоставьте характеристики вашего сервера, размеры баз, конфиги Postgressql. Без информации сказать сложно.
Мой конфиг PostgreSQL: https://drive.google.com/file/d/0B2qGCc-vzEVDMERVW…
данный конфиг подобран под имеющееся количество ОЗУ.
PostgreSQL установлен на Linux, 3 Гб ОЗУ, 3 ядра ЦП.
Сервер 1С8: 11 Гб ОЗУ, 5 ядра ЦП
4 базы размером примерно 1 Гб каждая (выгруженная в dt)
Приведите все характеристики вашего сервера: сервер 1С8 и БД физический или виртуальный, операционка, количество ОЗУ на каждом сервере, ЦП какой, сколько занимают ОЗУ процессы rphost, сколько их? Используете ли вы RAID массив?
Ранее сам использовал PostgreSQL но, в процессе работы столкнулись с некоторыми проблемами при работе базы на PostgreSQL и недавно перешли на MS SQL.
Сервер у вас не плохой для данных баз. Для того чтобы использовать PostgreSQL нужно очень хорошо разбираться в его настройке. Когда базы маленькие многие ошибки настройки «прощаются». Когда мы только начинали внедрять 1С + PostgreSQL у нас тоже были очень частые проблемы с работой БД (были частые зависания, медленно работала). PostgreSQL лучше использовать на Linux, а не на windows. Я сам не спец по БД, для настройки сервера БД мы нанималь специалиста из 1СБит и он нам его настроил и проблем в работе после этого не возникало.
Совет:
Базы у вас большие не поскупитесь наймите спеца по БД который вам сможет её настроить. Один человек не может быть специалистм во всём.
1) давно ли вы делали проверку самой БД и реиндексацию? VACUUM и REINDEX
2) давно ли делали тестирование и исправление базы средствами 1С?
3) файл лога БД вынесен на отдельный HDD?
4) сильно ли нагружен HDD?
Задумайтесь о переходе на MS Sql зачастую он не требует «практически» никакой настройки и его проще использовать. В отличие от PostgreSQL MS Sql готов уже из коробки работать, а PostgreSQL нужно настраивать.
Будут вопросы пишите может смогу чемнибудь помочь в Skype: tisartisar
Наимите спеца по настроке БД
Почему мы перешли на MS SQL:
мы используем конфигурацию УТ и при закрытие месяца иногда возникали ошибки которые никак не удавалось решить. Если перенести базу на файловый режим и запустить закрытие месяца, то всё закрывалось нормально, этуже базу заружали на сервер PostgreSQL при рассчёте себестоимость возникали ошибки. На тот момнет мы на пол года отставали по закрытию месяцев из-за возникновения плавующих ошибок. Создали тестовую базу на MS SQL и месяц который немогли закрыть на PostgreSQL на MS Sql закрылся. Также на PostgreSQL не работает корректно округление цен в прайс листе. По факту работа 1С на PostgreSQL поддерживается, но рекомендуется всётаки использовать MS SQl.
Из-за этого было принято решение перейти на MS SQL т.к. стабильность работы 1С дороже.
Рад что смог помочь, обращайтесь ещё, если будут вопросы и проблемы.
1) сколько памяти выделено MS SQL серверу? это настраивается в самом MS SQL сервере.
2) Тестирование базы средствами 1С делайте регулярно
3) статья как настроить резервное копирование и обслуживание. Это важно и нужно делать регулярно. Я делаю каждый день. Ознакомьтесь со всеми 3 частями руководства. interface31.ru/tech_it/2012/02/obsluzhivanie-baz-1…