Исправляем косяки 1С

Preview:

DESCRIPTION

Три истории с примерами решения ошибок 1С

Citation preview

Гилёв Вячеслав

возникающих в 1C:Предприятие 8

ПОИСК РЕШЕНИЙ ВОПРОСОВ

Из личного опыта

3 ИСТОРИИ

Гилёв Вячеслав

ИСТОРИЯ ПЕРВАЯ

про то как вырубили свет, как всегда нет бэкапа, зато есть техн.-й журнал

История №1

СУТЬ ВОПРОСА: выключился

«свет», потерялись данные, стало медленно работать!

КТО (ГДЕ): компания ООО

«Информационные технологии»,

г. Геленжик партнер-фрачайзи фирмы 1С

Не одна проблема, а совокупность

Несколько проблем сложились вместе:

файловая база УПП на 15 пользователейне выполнялись регламентные процедуры отсутствовал механизм резервирования данныхнеуникальные записи в уникальном индексенарушена ссылочная целостность данных«разрушенные» индексы замедляли работу

Гилёв Вячеслав

РЕШЕНИЕ:использовать клиент-серверный режимнастроить по расписанию

резервное копированиетестирование и исправление средствами конфигуратора

выполнить «реструкторизацию» базы (ТиИ) вручнуюзапросом выбрать неуникальные записи, исправить проблемную записьс помощью технологического журнала логировать проблемные запросы в момент работы ТиИ

КАК НАЙТИ НЕУНИКАЛЬНЫЕ ЗАПИСИ

Запрос типа: ВЫБРАТЬ Справочник.Ссылка

ИЗ Справочник.Справочник КАК СправочникСГРУППИРОВАТЬ ПО Справочник.СсылкаИМЕЮЩИЕ КОЛИЧЕСТВО(*) > 1

СМЫСЛ: ВЫБИРАЕМ НЕОБХОДИМЫЕ ПОЛЯ ТАБЛИЦЫ (Справочник.Ссылка) ПО ПОЛЮ (ЯМ), ОПРЕДЕЛЯЮЩИМ УНИКАЛЬНЫЙ ИНДЕКС, КОТОРЫЕ НЕУНИКАЛЬНЫ

Исследовать проблемы по логу ТЖ

ЧАСТЬ ПРОБЛЕМ при ТиИ выглядела примерно так:Ошибка SDBL: Попытка быстрой вставки значения недопустимого типа (pos = 578)Ошибка SDBL: Поле ID имеет тип REF SELF или RowVersion (pos=49).Ошибка SDBL: Поле Splitter таблицы AccumReg Totals 127 не может принимать значение NULL (pos=58) Ошибка SDBL: Поле Fld1485 таблицы Document159 не может принимать значение NULL (pos=63)

РЕШЕНИЕ В ЛОГЕ ТЕХНОЛОГИЧЕСКОГО ЖУРНАЛАСмотрим на «суть» таблицы или индекса (только в субд), сопоставляем с метаданными 1СПытаемся восстановить данные с помощью ТиИ (опция создавать ссылки, создавать объекты)Пытаемся вручную внести отстутсвующие значения (реквизиты, измерения и т.д.)Переносим данные из копии (если есть).

ПРОБЛЕМА УСТРАНЕНА!

РЕЗУЛЬТАТ

1) Спасибо Рарусу!2) Появилась

мотивация делать бэкапы

3) Научили решать подобные проблемы

Гилёв Вячеслав

ИСТОРИЯ ВТОРАЯ

«народная» ошибка 10054,

не верь пользователю, дампы, падают сервераи снова техн.-й журнал

Это история носит массовый характер. И чаще всего проблема в «кажущейся сложности» узнать ПРИЧИНУ(Ы) этого явления.

Дампы вызывают 10054 ошибку

Смотрите на наличие дампов

По умолчанию примерно так C:\Documents and Settings\<Имя пользователя>\Local Settings\Application Data\1C\1Cv81\dumps, можно переопределить в logcfg.xml

MS SQL Server 1С:Предприятие 8

По умолчанию вместе с логами MS SQL Server

Настройка дампов

MS SQL Server 1С:Предприятие 8

Не надо воспринимать слова пользователей на веру!Расследуйте проблему по логам технологического журнала (он врать не умеет)

Логи технологического журнала

Настройка фильтров технологического журнала

Так выглядит лог ТЖ

СОВЕТЫ ПО РАЗБОРУ ЛОГА

ЧТО ИСКАТЬ В ЛОГЕ

Поиск падений Смотреть непустое содержимое свойство DumpFile события EXCP Также потребуется событие EXCPCNTX, свойства Func, tableName,  уровень =2 и 3, SrcName=SDBL

Поиск события сброса пользователя администраторомИскать событие ADMIN, ищем свойство Func =killClient

Анализ потенциального рестарта сервераСначало ищем событие EXCP со свойством process=ragent и Exception=NetDataExchangeException затем ищем событие PROC,  process=rmngr, уровня 3, свойство Txt ='Process terminated

 

Гилёв Вячеслав

ИСТОРИЯ ТРЕТЬЯ

сломался веб-доступ в Рарусе,

«блуждающий каратыш», Process monitor как секретное оружие

Гилёв Вячеслав

Эта история произошла в Рарусе…Первое ощущение от этого текста – «А что делать то?».

Гилёв Вячеслав

Используем секретное оружие – утилиты Sysinternals (regmon, filemon или procmon)

Инструмент: Process Monitor http://download.sysinternals.com/Files/ProcessMonitor.zip

наложить фильтр на исследуемые процессыизучение собранных логов

Действия, решившие проблему

Отследили сервис w3wp.exe (IIS) в момент попытки соединится с хранилищемНа отсеживаем ключипроцесса

HKLM\SYSTEM\Services\Winsock\Parameters HKLM\SYSTEM\Services\TCPIP\ParametersHKLM\SYSTEM\Services\NetBIOS\ParametersHKLM\SYSTEM\Services\Gpc\Parameters

этом случаи потребовалось дать права IUSR_SRVNAME на чтение.

Действия, решившие проблему

Проверили права доступа к файламВыяснили, что после обращения к файлу "repository.1ccr" сервис w3wp.exe от имени IUSR_SRVNAME пытается обратиться к DLL "DRWEBSP.DLL" - "Dr.Web Winsock Provider Hook" (Это от DrWeb - a)  ACCESS DENIED . Дали права на чтение и выполнение IUSR_SRVNAME. При следующей попытке соединиться к хранилищем получаем обращение к DLL "wshtcpip.dll" - "Windows Sockets Helper DLL"  ACCESS DENIED.Добавили права на чтение и выполнение IUSR_SRVNAME.

СОВЕТЫ ГИЛЁВА ВЯЧЕСЛАВА

СОВЕТ №1Без паники!

Внимательно читайте текст ошибки.

СОВЕТЫ ГИЛЁВА ВЯЧЕСЛАВА

СОВЕТ №2Как устранить ошибку?Наймите грамотного спеца.Если спец не может решить проблему, то наймите другого.

СОВЕТЫ ГИЛЁВА ВЯЧЕСЛАВА

СОВЕТ №3

Как устранить ошибку быстро?Четко сформулируйте суть проблемы в 3-7 слов.Если формулирование проблемы занимает несколько листов, смысл «ускальзывает», то формулируйте заново.

СОВЕТЫ ГИЛЁВА ВЯЧЕСЛАВА

СОВЕТ №4

Как устранить ошибку, если денег на спеца нет?Начните с совета №2. Смотрите уже известные решения в интернете.

КОНТАКТЫ

gilv@rarus.rugilev.ru@gmail.com www.gilev.ru

Recommended