Download - Исправляем косяки 1С
Гилёв Вячеслав
возникающих в 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. Смотрите уже известные решения в интернете.
КОНТАКТЫ
[email protected]@gmail.com www.gilev.ru