1С зависает при обновлении
Продукт 1С пользуется заслуженной популярностью сегодня у многих предприятий. Он позволяет решать огромный спектр задач, в том числе связанный с финансово-экономической деятельностью организации. Но для продуктивного его использования, в связи с регулярным изменением законодательно правовой основы государства, требуется использовать актуальные данные. Поддерживать актуальность данных позволяет установка последних релизов, но очень часто при обновлении 1С зависает, вследствие чего требуется привлечение опытных специалистов.
Зависает 1С при обновлении? Звоните +7 (495) 240-8668!
Типовые причины зависания 1С при обновлении
Установка последнего релиза всегда начинается с создания резервной копии базы и конфигурации. Это необходимо, чтобы в случае необходимости можно было всегда вернуться к работоспособной версии продукта.
После создания резервной копии пользователи в большинстве случаев осуществляют установку последнего пакета обновлений через интернет. Именно на этой стадии возникает в большинстве случаев зависание, если продукт давно не обновлялся. Зависает 1С 8. 3 при обновлении, потому что начинается банальное накатывание одной версии на другую.
Также если установка последних релизов давно не осуществлялась, то при обновлении встроенным функционалом, программа может не найти обновления. Для решения проблемы необходимо создать каталог со старыми обновлениями. В окне «Обновление конфигурации» в разделе «Поиска обновлений в каталоге» добавить путь к созданному вами каталогу и поставить напротив него галочку и продолжить обновление в стандартном режиме.
Также зависание 1С может быть вызвано нехваткой оперативной памяти, вследствие чего необходимо увеличить параметры оборудования и продолжить установку релиза.
Ошибки, возникающие при обновлении 1С
К основным и типичным ошибкам, которые могут возникнуть и привести к зависанию обновления можно выделить следующие:
Решить проблему зависания 1С сложно. Обратитесь лучше к специалистам.
Если вы не знаете, как решить проблему не стоит делать этого самостоятельно, обратитесь к специалистам. Они решат проблему в кратчайшие сроки.
Наиболее распространенные виды проблем, возникающих при эксплуатации
Причины замедления запуска 1С могут быть различны. Распространенные факторы, мешающие программе правильно запуститься:
При сложной конфигурации, первый запуск программы действительно может занять некоторое время. Замедление, является результатом обязательного стандартного кэширования. Этот процесс проводится один раз, при первом запуске и в дальнейшем старт будет проходить более оперативно.
Причиной медленного запуска 1С может быть массовое обращение к различным модулям, большое количество обработок.
В процессе отсылки к тексту какого-нибудь модуля может замедлиться компиляция. Значительное количество модулей вызывает заметное торможение.
На заметку! Эта проблема может быть разрешена проведением своевременной модификации—оптимизации. В итоге отключится исполнение многих второстепенных задач подключенных к старту системы, тем самым «облегчив» сам запуск.
Возможно, программа при запуске автоматически обращается в интернет для считывания необходимой информации. Это тоже весомый повод для зависания.
Очень долгое открытие форм
Причиной очень долгого открывания форм может быть:
Большое количество элементов управления требует значительного времени на создание форм, и их взаимной увязки с компонентами. Для решения этой проблемы желательно упростить сами формы. Оставить только необходимые компоненты, а второстепенным элементам создать новую форму.
Количество алгоритмов при инициализации влияет на скорость автоматической проверки условий или считыванию необходимой информации из базы. Облегчить процесс можно оптимизировав создание и открытие формы. Отключить неактуальные алгоритмы и упростить инициализацию.
Очень долгая реакция на интерактивные действия пользователя
Если программа медленно реагирует на действия пользователя при попытке выбрать значение в элементе формы, то «виновников» возникновения проблемы необходимо искать:
Каждый раз при выполнении данного действия, алгоритмами производится проверка или просчитывание сведений, влияющих на режим выбора значения. Применив «Замер производительности» можно отыскать проблемные алгоритмы, изучить затруднения, созданные ими и оптимизировать процесс.
Формы выбора настроены на погрузку всего ассортимента элементов из базы. Устранить это недоразумение можно, тоже тщательным изучением реализации формы выбора. Проверить установленные свойства, настройки и отключить «тяжелые» алгоритмы.
Очень долгая реакция на обновления
Еще одна существенная проблема при использовании 1С Бухгалтерия — это зависание программы во время стандартного обновления. Как правило, сбои возникают во время запуска резервного копирования. В основном, такое случается в момент обновления программы через интернет. Поводом для возникновения внештатной ситуации бывает:
Несвоевременные обновления, в результате чего релизы вынужденно устанавливаются друг на друга в хаотичном порядке, создадут в итоге ошибку. Для предупреждения таких обстоятельств, желательно вовремя проводить обновления или установить автоматическое обновление программы.
Кстати! Фоновое обновление программного обеспечения тоже может стать причиной для замедления некоторых процессов во время работы. Этот фактор нужно обязательно учитывать, при выяснении причин зависаний 1С.
Возможно, программе попросту не хватает оперативной памяти компьютера, и добавление объема может положительно отразиться в динамике работы.
Долгая запись объектов/проведение документов
Для выявления точной причины долгой записи или блокировки, желательно провести статистический анализ. Опция «Замер производительности» поможет проанализировать журнал регистрации, где зафиксированы и идентифицированы все транзакции. Итоги анализа могут указать на закономерные причины зависаний 1С:
Если по результатам анализа на зависание влияет не количество пользователей, а определенное время суток, вполне вероятно, что в момент произведения записи сервер в фоновом режиме проводит процедуры, установленные регламентом.
Причина монопольных блокировок интуитивно понятна — количество пользователей. Кто-то из сослуживцев занял что-то для проведения какой-то операции. Оставшимся специалистам остается только ждать, когда получится продолжить свой рабочий процесс. Причем блокировка будет длиться до конца транзакции. Например, чтобы не создавать подобных «пробок», лучше выбирать запрос — для чтения и объектную модель — при записи.
Одна из возможных причин может крыться в состоянии оборудования, которое имеет низкую пропускную способность.
Длительное обновление в 1С
Как только процесс проверки закончится – объем ПП заметно сократится.
Доказано опытом, что на торможение обновления и работы 1С в целом, влияют антивирусы и брандмауэр Windows, вот почему необходимо включать объекты 1С в исключения этих программ (папка, в которую у вас установлена 1С, 1Cv8*. 1C?, 1Cv8. log, 1Cv8. pfl, *. dt, *. cf, *. cfu, *. epf).
Аппаратные методы
Остановимся и на аппаратных способах, с помощью которых можно повысить скорость работы 1С. Если названые методы не привели к желаемому результату, и 1С 8. 3 так и запускается медленно, то есть большая вероятность того, что придется увеличить мощность сервера.
Эффективно и не дорого. Для увеличения производительности 1С можно просто докупить дополнительную оперативную память. Нехватка памяти зачастую и тормозит работу конфигураций. Причина тому вполне объяснима — при дефиците ОЗУ, основная нагрузка идет на жесткий диск, и чтобы получить данные сеть и процессор применяются не в полном объеме. В то время, когда система принимает запрашиваемые сведения с диска в ОЗУ, либо отсылает не востребованные сведения на диск – происходит простаивание.
При решении стандартных, прописанных в регламенте задач, и многих других операций система практически постоянно обращается к диску. Есть вариант решить эту проблему и ускорить производительность 1С – купить и разместить базы на SSD. Но резкое убыстрение работы вряд ли произойдет.
Если в локальной сети работает большое количество пользователей, то большое значение имеет то, как настроена скорость соединения. На это стоит обратить внимание, так как система перемещает значительные объемы информации по сети (в первую очередь при «холодном» старте). Если скорость невысокая, то передача информационного массива будет притормаживать, в том числе и когда потребуется обновить систему.
Вполне возможно, что перечисленные способы не принесут желаемого эффекта, а может быть просто в базе работает слишком много пользователей. В таком случае необходимо перейти на клиент-серверный вариант работы (SQL). При этом способе то же должно быть обслуживание базы.
Подведем коротко некоторые итоги:
Ч тобы системы 1С работала качественно без «зависания», рекомендуем обязательное обслуживание базы данных. Кроме этого необходимо понимать, что с каждым обновлением конфигурация становится все сложнее, растут технические и ресурсные запросы. Другим словами на 5-7 летнем компьютере система «летать» не сможет.
Зависание клиентской программы после обновления
Добрый день. Программа 1с8 Бухгалтерия корп. версия 3. 24 платформа 8. 1063 клиент-сервер, компьютер главбуха.
После обновления на 8. 34 клиентская программа зависает напрочь, причем только на одной рабочей станции под любым доменным пользователем и под любым пользователем 1С. Дальнейшее обновление платформы до 8. 1549 и базы до 3. 25 не помогло. при обновлени с помощью cf назад до релиза 8. 24 зависание пропадает. На других раб. станциях под любыми пользователями этого не происходит. Единственное, чем отличается данный компьютер от других, это подключенная интернет отчетность (провайдер «калуга астрал»). Удаление антивируса, отключение от интернета, переустановка платформы с нуля, чистка кэша и т. не помогает. Посоветуйте, что делать, на носу квартальная отчетность?
Не факт что поможет, но попробуй. С Таким же обращались win 2008, локальный ключ. Астрал. Касперский. зависание в районе расшифровок работы с отчетностью.
У меня на релизе 3. 25, патч был доступен к установке. (дополнительная лабуда в виде мини расширения).
Это описание патча:
И выражаю благодарность тебе и кому то с мисты. у которого такие же проблемы наблюдаются.
Благодаря вашим экспериментам по Платформам кэшам, антивирусам, релизам и кучей танцев с бубнами и их описанию. мне из этого ничего не пришлось делать.
— И в теории если это все дело в библиотеке и новый патч в твоем случае не спасет. Можно посмотреть в патче, что за макет и себе сделать расширение из старого стабильного релиза с макетом от туда. (вдруг спасет пока нормальную версию не выпустят)
Долго выполняются дополнительные процедуры обновления 1С
После обновления программы 1С запускается обработка для дополнительной обработки данных. Иногда она зависает и может висеть очень долга. При этом пользователи не могут работать в 1С, не могут провести документы. При этом если запустить базу, что выходит окно «Результаты обновления программы»
Как принудительно обновить 1С
Если столкнулись с такой проблемой, то можно ускорить процесс обновления 1С. Для этого переходим в меню НСИ и Администрирование — Обслуживание — Регламентные операции — Регламентные и фоновые задания»:
На закладке «Регламентные задания» находим строку с названием «Отложенное обновление ИБ», устанавливаем на нее курсор и нажимаем кнопку «Выполнить сейчас»
Через несколько минут в окне, где ранее было зависшее обновление 1С начнется процесс обновления и вскоре увидите окно с сообщением «Дополнительные процедуры обработки данных завершены». Закрываете его и можно начинать работу.
Как правильно обрабатывать ошибки
У меня никогда не было какого-то особого мнения относительно обработки ошибок. Если я начинала работать с существующим кодом, я продолжала выполнять задачу, над которой трудился автор исходника; если писала код с нуля — делала то, что казалось мне правильным.
Но недавно я столкнулась с проблемой, багом, который проявлялся из-за «тихой» ошибки в коде. Я поняла, что здесь есть над чем поразмыслить. Возможно, я не могу изменить способ обработки ошибок во всей базе кода, над которой работаю, но что-то определенно можно оптимизировать.
Напоминаем:для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».
Skillbox рекомендует: Образовательный онлайн-курс «Профессия Java-разработчик».
Не всегда стоит рубить с плеча
Первым шагом в вопросе обработки ошибок должно быть понимание того, когда «ошибка» не является «ошибкой!». Конечно, все это зависит от бизнес-логики вашего приложения, но в целом некоторые баги явные и их можно исправить без проблем.
- У вас есть диапазон дат, где «до» находится перед «от»? Измените порядок.
- У вас есть номер телефона, который начинается с + или содержит тире, где вы не ожидаете появления специальных символов? Удалите их.
- Null collection — проблема? Убедитесь, что вы инициализируете это перед доступом (используя ленивую инициализацию или конструктор).
Не прерывайте выполнение кода из-за ошибок, которые вы можете исправить, и, конечно, не мешайте своими действиями пользователям своего сервиса или приложения. Если вы в состоянии понять проблему и решить ее на лету — просто сделайте это.
Возврат Null или других магических чисел
Нулевые значения, –1 там, где ожидается положительное число, и другие магические возвращаемые значения — все это порождение дьявола, которое переносит ответственность за проверку ошибок на вызывающую функцию.
С ними ваш код будет полон вот таких блоков, которые сделают неясной логику приложения:
return_value = possibly_return_a_magic_value()
if return_value < 0:
handle_error()
else:
do_something()
other_return_value = possibly_nullable_value()
if other_return_value is None:
handle_null_value()
else:
do_some_other_thing()
Ну или попроще, но тоже скверно:
Передача null в методы также является проблемой, хотя в коде некоторых разработчиков вы можете встретить места, где методы начинаются с нескольких строк проверки правильности ввода. Но на самом деле все это не нужно. Большинство современных языков предоставляют не один, а сразу несколько инструментов, позволяющих четко указывать, чего вы ожидаете. Они же пропускают бесполезные проверки, например, определение параметров как ненулевых или обладающих соответствующим decorator.
Коды ошибок
Здесь та же проблема, что с null и другими подобными значениями, когда добавляется ненужное усложнение кода.
К примеру, можно использовать вот такую конструкцию для возврата кода ошибки:
Результат можно выводить следующим образом:
Это действительно не самый удачный код. Получается, что Item по-прежнему может быть пустым. Фактически, нет никакой гарантии (кроме соглашения), что, когда результат не содержит ошибки, вы можете безопасно получить доступ к Item.
После того как вы закончите со всей этой обработкой, вам все равно придется преобразовать код бага в сообщение об ошибке и что-то с ним сделать. Иногда случается так, что из-за излишнего усложнения кода уже само это сообщение выводится не так, как нужно.
Есть еще более серьезная проблема: если вы или кто-то другой измените внутреннюю реализацию для обработки нового недопустимого состояния с новым кодом ошибки, то вся конструкция вообще перестанет работать.
Если не получилось с первого раза, пробуйте еще
Прежде чем продолжить, стоит подчеркнуть, что «тихий» отказ программы — это плохо. Неожиданная проблема может возникнуть в самый неподходящий момент — например, на выходных, когда вы не можете быстро все исправить.
Если вы читали Clean Code, то, скорее всего, удивляетесь, почему просто не «бросить» исключение? Если нет, то скорее всего, вы считаете, что исключения — корень зла. Мне раньше тоже так казалось, но теперь я думаю немного иначе.
Интересный, по крайней мере для меня, нюанс состоит в том, что реализация по умолчанию для нового метода в C# заключается в создании исключения NotImplementedException, тогда как для нового метода в Python умолчанием является «pass».
В результате чаще всего мы вводим настройку «тихой ошибки» для Python. Интересно, сколько разработчиков потратили кучу времени для того, чтобы понять, что происходит и почему программа не работает. А в итоге через много часов обнаружили, что забыли реализовать метод заполнителя.
Но взгляните вот на это:
Конечно, исключения сами по себе не защитят вас от создания нечитаемого и неуправляемого кода. Вы должны применять исключения как хорошо продуманную и выверенную стратегию. В противном случае, если масштаб проекта слишком велик, ваше приложение может оказаться в несогласованном состоянии. И наоборот, если проект слишком мал, вы получите хаос.
Для того чтобы этого не случилось, я советую иметь в виду вот что:
Консистентность превыше всего. Вам необходимо всегда убеждаться в том, что приложение согласовано. Если это будет означать, что придется каждую пару строк оборачивать блоком try/catch, — просто спрячьте все это в другой функции.
def my_function():
try:
do_this()
do_that()
except:
something_bad_happened()
finally:
cleanup_resource()
Консолидация ошибок необходима. Хорошо, если вы предусматриваете различные типы обработки разных видов ошибок. Тем не менее это нужно вам, а не пользователям. Для них выводите единственное исключение, чтобы пользователи просто знали, что что-то пошло не так. Детали — ваша зона ответственности.
Стоит ловить исключения сразу. Их лучше перехватывать на самом низком уровне. Сохранять согласованность и скрывать детали стоит так, как это было описано выше. Обработку ошибок стоит оставить для верхнего уровня приложения. Если все сделать правильно, вы сможете отделить поток логики самого приложения от потока обработки ошибок. Это позволит написать ясный читаемый код.
def my_api():
try:
item = get_something_from_the_db()
new_version = do_something_to_item(item)
return new_version
except Exception as ex:
handle_high_level_exception(ex)
Пока это все, а если вы хотите обсудить тему ошибок и их обработки — велкам.
Выбор решающей программы
Следующие факторы могут помочь с выбором соответствующей решающей программы:
В зависимости от типа исследования применяются следующие рекомендации.
Статус решающей программы
- Данные об исследовании, такие как степени свободы, число узлов, число элементов
- Данные о решающей программе, например, тип решающей программы
- Максимальное допустимое число итераций (P1)
- Порог остановки (P2)
Solver
Программа предлагает следующие возможности:
После запуска анализа можно просматривать сообщения решающей программы, щелкнув правой кнопкой мыши папку Результаты и выбрав Сообщения решающей программы. Типы сообщений: количество узлов, время решения, ошибки, предупреждения и т. Заметим, что это те же самые сообщения, что появляются в окне во время анализа.
Дополнительную информацию СЃРј. РІ разделе В«Рсследования конструкции».
Типичный сценарий автоматизации
Исходное положение: у заказчика учет ведется на бумаге и в Excel. Все происходит медленно, неудобно, данные теряются, невозможно составить полную и четкую картину по элементарным вопросам: «Кто нам сколько должен?», «Сколько товара есть в наличии?» – в общем, полный бардак. Заказчик принимает решение перейти на ведение всего учета в 1С – ведь это наиболее известная и популярная программа.
- Все руководство процессом перехода «на 1С» переводится на старшего менеджера, бухгалтера или любого другого свободного сотрудника, потому что у руководителя и так дел навалом.
- Выбирается и приобретается программа по следующим принципам:
по названию: «мы торгуем – значит, Управление торговлей»;«как у коллег в соседнем офисе»;«как бухгалтер скажет» – учетные решения от 1С в первую очередь ассоциируются с «1С: Бухгалтерией».В лучшем случае заказчик самостоятельно почитает информацию в Интернете на тему автоматизации, с полчасика. - по названию: «мы торгуем – значит, Управление торговлей»;
- «как у коллег в соседнем офисе»;
- «как бухгалтер скажет» – учетные решения от 1С в первую очередь ассоциируются с «1С: Бухгалтерией».
- Программа куплена и установлена. Заказчик пытается начать работу. Ничего не понятно, ничего не работает.
- Заказчик обращается в первую попавшуюся фирму к «специалистам по 1С». Там, послушав его в течение 10 минут, сходу предлагают купить другую программу. Она идеально подойдет, а их опытные специалисты все настроят под ключ.
- Приезжает мальчик, устанавливает новую программу, в течение пары часов под запись показывает, на какие кнопки и в каком порядке следует нажимать. На все вопросы: «Мы хотели бы еще то» и «Нам неудобно это» следует ответ: «Это невозможно, работайте, как все». На прощание мальчик предлагает почитать книжки, или далее оплачивать дополнительные работы по почасовой ставке с неопределенной продолжительностью.
Достигнутый результат: После нескольких попыток почитать книжку и поработать «методом тыка» заказчик возвращается к Excel и бумаге. Впустую потрачено много денег и времени. Коробки от 1С отправляются пылиться в шкаф, программы используются в лучшем случае для печати документов. Заказчик рассказывает всем, какая 1С плохая и бестолковая.
Участие заказчика в процессе автоматизации так же важно, как и исполнителя
Руководить процессом со стороны заказчика должен руководитель или кто-то достаточно компетентный для того, чтобы разбираться во всех внутренних процессах компании. Другими словами, это должен быть именно тот, кто в полной мере осознает все задачи, для решения которых и затевается переход на 1С. Этот человек должен иметь полномочия принимать любые необходимые решения. Естественно, представитель заказчика должен иметь достаточно свободного времени и быть заинтересованным в успешном результате перехода.
Подход к задаче в стиле «сделайте нам все, как считаете нужным, а там посмотрим» априори обречен на провал.
Правильный выбор программы – критически важная вещь
Неправильно выбранное решение неизбежно приведет к проблемам – вплоть до полной невозможности решить поставленные задачи. Выбор программы нельзя сделать по названию. Нельзя ориентироваться на знакомых, коллег или конкурентов – у них могут быть (а на самом деле – наверняка и есть) другая специфика и приоритеты, и совершенно не факт, что они сами не совершили описанные выше ошибки. Нельзя делегировать эту задачу бухгалтеру – у бухгалтерии свой учет и свои задачи. Немного лучшее решение – внимательное изучение большого объема информации: какие существуют конфигурации, что они могут, где используются. Однако и это совершенно ничего не гарантирует. Не будучи специалистом и не имея соответствующего опыта невозможно отличить рекламный мусор от действительно важных сведений, определить достаточность заявленных возможностей для решения конкретных задач, отделить реальные отзывы от жалоб жертв «типичного сценария автоматизации».
К сожалению, не имеющий соответствующего опыта заказчик, самостоятельно выбрать правильное решение скорее всего не сможет в любом случае, разве что угадать. Эту задачу следует решать совместно с квалифицированным специалистом. И, да, это также значит, что обращаться к специалистам нужно в самом начале, строго до покупки каких-либо программ. Как найти квалифицированного специалиста (далее будем называть его «внедренцем») я расскажу немного позже.
Как найти хорошего внедренца
Разумеется, дать каких-то точных и четких инструкций тут нельзя. Не будучи специалистом самому, невозможно определить чужую квалификацию. Очевидно, не получится заранее определить деловые и личные качества человека, представляющегося специалистом. Нельзя так же однозначно ориентироваться по прайс-листу и размеру вывески. Но одну полезную рекомендацию дать все-таки можно. Так как задачи ставятся уникальные, подход к их решению должен быть индивидуальным. Это значит, что любой проект начинается с серьезных, очень желательно – личных, переговоров. В ходе переговоров внедренец должен детально вникнуть в поставленные задачи, изучить подлежащие автоматизации бизнес-процессы, составить для себя картину реальных потребностей заказчика и только после этого предложить какое-то решение.
Если после 5 минут разговора вам предлагают что-то купить, обещая, что это идеально решит все проблемы, а уже после покупки, когда поработаете, детально разбирать вопросы – от таких «специалистов» следует держаться подальше.