Решение известных проблем и ошибок

Итак, общий подход показан на рисунке
Общий подход к решению проблем
Начните с простого, но очень важного шага

1. Определение текста (проявления) ошибки и локализация источника возникновения

Сбор информации о проявлениях ошибки, нужно научиться воспроизводить проблему!

  • Зафиксируйте ошибку (текст и/или другую информацию, которая может пригодиться для анализа проблемы). Проблему лучше фиксировать с помощью технологического журнала. Вывод: если вы не используете технологический журнал для других задач, настройте его на постоянный лог сбор событий «исключений» (EXCP) и формирование дампов случае падения платформы.
  • Зафиксируйте время возникновения ошибки. Это в дальнейшем поможет локализовать место изучения различных логов.
  • ПРОЧТИТЕ текст сообщения, попытайтесь сразу понять источник возникновения проблемы из содержимого этого текста.
  • Выполните поиск решения по тексту сообщения в интернете или в других известных вам источниках решения проблемы.
  • Те, кто до этого не занимались решением проблем с ошибками платформы, решать их не будут, ищите тех, кто этим занимался или занимается.

В качестве примеров будут разобраны:

Пример 1. Пользователь пожаловался на невозможность запуска 1С:Бухгалтерия.

Текст сообщения:

«Ошибка соединения с сервером 1с: Предприятия 8.1:
server_addr=App1С:1540=Ошибка сетевого доступа к серверу
(Windows sockets — 10061(0x0000274D)
No connection could be made because the target machine actively refused it) line =567

 

Пример 2. «Потерялся» доступ к информационной базе.

Текст сообщения:

Ошибка при выполнении операции с информационной базой

Microsoft OLE DB provider for SQL Server: Login failed for user ‘user1c’

HRESULT=80040E4D, SQLSrvr: Error state=1, Severity=E, native=18456, line=1

 

Пример 3. Странная «неизвестная» ошибка.

Текст сообщения: «Произошла неизвестная ошибка на сервере 1С предприятие (80010108)»

 

Разбор примера №1. Поиск в ниже в разделе «Где можно найти готовое решение» по приведенным на данной странице тексту «10061″ покажет сразу объяснение причины и решение:

на сервере приложений остановлена служба «Агент сервера 1с:Предприятие 8.1«.

Необходимо запустить службу сервера 1С:Предприятие, например из командной строки:

net start Агент сервера 1с:Предприятие 8.1

Если сервер приложений не стартует, в некоторых случаях сделайте копию папки C:\Program Files\1cv81\server и удалите содержимое перед попыткой старта.

 

2. Воспроизведение ошибки

Воспроизвести ошибку

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

Для локализация источника ВДУМЫВАЙТЕСЬ в текст сообщения об ошибке. Если под подозрением несколько источников, старайтесь исключать поочередно (если это возможно) каждый источник по-одному. Для локализации пользователя-виновника в коде сервера приложений можно попытаться создать временно рабочих процессов по количеству пользователей.

Технологический журнал

Используя технологический журнал можно исследовать все проблемы, возникающие «внутри» клиент-серверного варианта. Прибегайте к другим логам, то если для этого есть важные причины. Если вы не пользовались технологическим журналом или не хотите — ЭТО НЕ ВАЖНАЯ ПРИЧИНА И СНИЖЕНИЕ ВЕРОЯТНОСТИ НАЙТИ РЕШЕНИЕ. Технологический журнал создавался именно для решения этих задач.

Опрос пользователей

С опросом пользователей надо аккуратней. Этот способ диагностики лучше применять, только после того как будут использованы и проанализированы все другие источники информации. Опять таки, все время в опросе концентрироваться на главном вопросе и/или постараться понять, ради чего лгут.

Воспроизведение проблемы

Иногда воспроизведение проблемы дает интересные результаты.

Перед выполнением каких-либо «научно-исследовательских действий» обязательно сделайте бэкап.

Примечание. Пример 2. Ответим на вопрос об источнике проблемы на основании текста сообщения «provider for SQL Server». Это означает, что проблема возникла при взаимодействии сервера приложений 1С, который является клиентом для SQL Server. Уточняющее описание «Login failed for user ‘user1c’» — позволяет определить, что ошибка возникла при неудачной авторизации пользователя «user1c», который  создан на SQL Server.

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

Решение:

Запускаем Management Studio и пробуем подключиться к серверу под «user1c». Оказывается, администратор сервера сменил пароль логину «user1c». При этом в настройках информационной базы в кластере серверов остался «старый» пароль.

После обновления пароля у информационной базы в кластере серверов 1С:Предприятие проблема исчезла.

3. Поиск решений

Поиск решений

  • Поиск решения проблемы на практике часто полезно начинать с вопроса: «А может быть, у вас есть бэкап и дешевле откатиться на него?» Конечно это подходит не всегда и не всем :)
  • Для поиска воспользуйтесь сначала поисковиком.
  • Не помог поисковик – обратитесь на форумы forum.mista.ru и partners.v8.1c.ru (правда это автоматически обозначает, что вы скорее всего поленились выполнить поиск).
  • Для часто повторяющихся проблем человечество придумало всякие «базы знаний«, «книги знаний«, «доступ к материалам техподдержки«.

Примечание. Пример 3. Поисковая система Google (www.google.ru) выдала такую причину «The object invoked has disconnected from its clients». Т.е. по некой причине соединение сервера 1С:Предприятие было отключено. Попробуем определить возможные причины отключения соединения: определим, возникает ли такая ошибка одновременно у всех пользователей. Ошибка возникает по таймауту (т.е. через некоторое время после установки соединения). Уточним, всегда ли таймаут постоянный, каково время таймаута. Определим, есть ли настройки в системе, увязывающие работоспособность с неким параметром, имеющим значение близкое к нашему времени таймаута.

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

В данном примере «Схема управления питанием» имела настройку «Отключение дисков» = 20 минут, что коррелировало с 20 минутными периодами возникновения этой ошибки.

Пример №4. Описан здесь.