Восстановление базы 1С, ошибка источника потока

Публикация № 976582

Администрирование - Тестирование и исправление

динамическое обновление ошибка источника потока

89
Очередной кирпичик в основу решения проблемы восстановления работоспособности базы после динамического обновления.

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

Бэкграунд ситуации: УПП (1.3.113.4), платформа 8.3.13.1644, распределенная база (центральная и 2 периферийные базы). В какой-то момент после динамического обновления и попытки входа в режиме Предприятия в центральной базе появилась ошибка на скриншоте, периферийные базы обновление не получили. Бэкапов еще делать не начинали, базу внедрили в начале года и впопыхах об этом важном моменте как-то забыли. И хорошо что случилось это в новогодние праздники, иначе пользователи меня бы растерзали...

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

Переписывание содержимого таблицы Config в ConfigSave платформа даже не почувствовала, видимо до анализа таблицы ConfigSave даже не доходило, появлялась все та же ошибка потока.

От отчаяния был даже переписано содержимое таблицы Config взятой из периферийной базы, но опять ошибка потока. Вспомнил что кто-то советовал переписать и содержимое таблиц Params и DBSchema, изменения возымели действие и при запуске уже появлялись ошибки отсутствия каких-то полей, которые я пытался восстанавливать по методике //tools.erpstat.ru/public/391766/. Максимум что мне удалось это запуск конфигуратора, но запуск в режиме Предприятия все равно заканчивался ошибкой модуля и ругательством про то, что нет возможности записать пользователя в таблицу. Накатывание конфигурации самой периферийной базы так же было в пустую, никаких изменений сравнение конфигураций не выявляло, что довольно объяснимо...

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

Пришлось искать какие-то другие варианты, была попытка даже анализировать алгоритм создания записей в таблице Config путем создания в пустой базе какое нибудь объекта. Но никакой полезной информации или каких либо закономерностей так и не получилось получить, в прочем знакомыми показались записи увиденные в таблице Params (рис.2)

в памяти всплыла методика борьбы с нарушением целостности структуры конфигурации описанная в статье //tools.erpstat.ru/public/76626/ единственное что смущало, что в далеком 2010 году такие записи создавались в таблице Config, в то время как сейчас я вижу их в таблице Params, тем не менее вариант было решено адаптировать под сегодняшние реалии и применить, за основу был взят скрипт пользователя denp2002 представленный в комментариях к статье по ссылке выше.

Собственно решение...

Применяем нижеприведенный скрипт:

use [НазваниеВашейБазы]

BEGIN TRANSACTION
delete from [dbo].[Params] where FileName in (
select c.filename from Config as c
inner join (
select * from (

SELECT max( modified ) over (partition by substring(FileName,0,37)) as mdt
,SUM(1) over (partition by substring(FileName,0,37)) as sm, substring(FileName,0,37) fs
, substring(FileName,48,37) sc
, *
FROM [dbo].[Params]
WHERE FileName Like '%_dynupdate_%')as a
where a.sm != 1 ) as b 
on b.mdt != c.modified and b.FileName = c.FileName)

delete from [dbo].[Params] where FileName in (
select filename from (
select MAX(Modified) over(partition by substring(a.filename, 0, 37) ) as mdt
, * 
from [dbo].[Params] as a
where LEN(a.FileName) = 36
or a.FileName like '%_dynupdate_%'
) as b 
where b.mdt != b.Modified
)

update [dbo].[Params] set filename = substring(filename, 0, 37)
where FileName like '%_dynupdate_%'

commit

 


 
Результат выполнения:

После этого без каких либо сообщений открываются и Конфигуратор и Предприятие, как будто ничего и не было до этого...

Бинго!

89

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. МихаилМ 09.01.19 17:50 Сейчас в теме
нет в статье расследования ,выявления проблемы.

так - случайное тыканье. Вы проблему исправили случайно.
chebser; CheBurator; the1; asdf_88; alur; caponid; +6 2 Ответить
2. idle 89 10.01.19 08:36 Сейчас в теме
(1) Если данное «тыканье», как Вы выразились, сэкономит кому то пару суток времени в безуспешных попытках реанимировать базу, значит я это написал не зря!
А для любителей покидать говно на вентилятор могу подсказать более подходящий ресурс... в личке...
chebser; igo1; berezin84; HitGroove; for_sale; user774630; Somebody1; m_aster; PowerBoy; Hazker; Дамир1; user621724_Dimav1979; korzhishe; 1818694@mail.ru; MaZaHacKa_13; maslennikov_ea; shard; torbeev; JohnyDeath; egorcheg1; marku; systemevil; frkbvfnjh; asupsam; link_l; jONES1979; master555; Tokiy; MotorBox; nporrep; +30 Ответить
14. GreenDragon 19.01.19 02:21 Сейчас в теме
(2) Вангую ссылку на Мисту в личке
user774630; +1 Ответить
6. caponid 10.01.19 10:56 Сейчас в теме
(1) Выводы на лету можно сделать... dynupdate - динамическое обновление...
Идет 2018 год... кактус как ни странно, по прежнему не съедобный...
CheBurator; the1; IgorS; +3 Ответить
16. Hadgehogs 337 08.04.19 17:42 Сейчас в теме
(1) Тоже мне ребус мебиуса.
Запускаем профайлер. смотрим трассу и где она спотыкается.
У меня было подобно на таблице depot, что это за таблица - фиг знает, решилось ее очисткой.
3. nyam-nyam 10.01.19 09:24 Сейчас в теме
Бэкапов еще делать не начинали, базу внедрили в начале года и впопыхах об этом важном моменте как-то забыли.
- куда катится этот мир? УПП, РИБ, SQL!!! И всё это без бекапа. Весь отдел ИТ вместе с руководителем на выход с вещами.
chebser; ZOMI; igo1; homer_; berezin84; Romakon92; Ali1976; for_sale; m_aster; the1; VooDOOPRo; IgorS; Дамир1; korzhishe; maslennikov_ea; asdf_88; link_l; webester; +18 Ответить
4. Artem.Po 10.01.19 09:34 Сейчас в теме
(3) ну к сожалению на данный момент времени новый отдел войдёт такой же..
for_sale; +1 Ответить
5. Artem.Po 10.01.19 09:35 Сейчас в теме
а статья кстати нужная, автору благодарность)
ivdvorkovoy; MaCCapAkIII; idle; +3 Ответить
7. idle 89 10.01.19 12:12 Сейчас в теме
8. as 10.01.19 13:50 Сейчас в теме
Добавьте версию платформы и СУБД. За статью спасибо, просто применимость сильно зависит от версии платформы и режима совместимости вашей базы.
9. idle 89 10.01.19 14:30 Сейчас в теме
(8) Платформа 8.3.13.1644, включил в статью...
10. kauksi 205 11.01.19 09:10 Сейчас в теме
Здравствуйте, меня зовут Сергей и я делаю динамическое обновление.
Раньше, я делал динамическое обновление по три или даже целых пять раз в день.
Я мог не спросить пользователей, не сделать бекап средствами СУБД и динамически обновить базу ради изменения макета печатной формы счета на оплату.
Но потом случилось горе и в одно прекрасное обновление база просто не запустилась.
Это был ч0рный день в моей жизни.
Я потерял друзей, коллеги отвернулись от меня.
Жена меня бросила и дети не хотят со мной разговаривать.
Попа болела после долгого и многозначительного разговора с начальством.
И я решил изменить свою жизнь.
Я теперь занимаюсь спортом
Стал посещать бассейн.
Питаюсь правильно и соблюдаю правила дорожного движения.
Сегодня у меня праздник.
Я уже 30 дней не делаю динамического обновления без ахивации базы данных средствами СУБД.
Я практически готов полностью отказаться от динамического обновления.
Вообще не обновлять динамически.


Преодолеть зависимость от динамического обновления мне помогли 12 простых шагов:

12 ШАГОВ , РАЗРАБОТАННЫЕ САМИМИ ДИНАМИЧЕСКИМИ ОБНОВЛЯЛЬЩИКАМИ
1. Признать свое бессилие перед поведением платформы 1с при динамическом обновлении.
2. Согласиться с утверждением, что без посторонней помощи не обойтись.
3. Мысленно перепоручить себя некой Высшей силе, которая поможет.
4. Проанализировать свои поступки.
5. Признать перед собой и кем-то еще свои ошибки.
6. Не сомневаться, что бекап перед динамическим обновлением сработает.
7. Просить высшие силы избавить от недостатков.
8. Составить список всех людей, кому причинили зло, и захотеть загладить свою вину перед ними.
9. Лично возместить этим людям ущерб, нанесенный вами и вашим динамическим обновлением.
10. Продолжать самоанализ и, при малейших ошибках, сразу признавать, что вы их таки совершили.
11. Не переставать размышлять и благодарить помощника из пункта 3.
12. Достигнув пробуждения, благодаря пунктам 1-11, помогать другим динамическообновлялщикам.
user774630; chebser; ZOMI; krollzlat; berezin84; Romakon92; NightAngel; bykov.vsl; AlexCherdakov; for_sale; Somebody1; Vlan; rpgshnik; pavlov_dv; the1; Waanneek; churlena; GreenDragon; igee12; script; anreko; GoodZone; user659124_s.kostina; laeg; korzhishe; Alex_E; ivdvorkovoy; palsergeich; feva; asdf_88; +30 1 Ответить
12. feva 147 11.01.19 16:55 Сейчас в теме
(10)
Здравствуйте, меня зовут Сергей и я делаю динамическое обновление.
Раньше, я делал динамическое обновление по три или даже целых пять раз в день.
Я мог не спросить пользователей, не сделать бекап средствами СУБД и динамически обновить базу ради изменения макета печатной формы счета на оплату.
Но потом случилось горе и в одно прекрасное обновление база просто не запустилась.
Это был ч0рный день в моей жизни.
Я потерял друзей, коллеги отвернулись от меня.
Жена меня бросила и дети не хотят со мной разговаривать.
Попа болела после долгого и многозначительного разговора с начальством.
И я решил изменить свою жизнь.
Я теперь занимаюсь спортом
Стал посещать бассейн.
Питаюсь правильно и соблюдаю правила дорожного движения.
Сегодня у меня праздник.
Я уже 30 дней не делаю динамического обновления без ахивации базы данных средствами СУБД.
Я практически готов полностью отказаться от динамического обновления.
Вообще не обновлять динамически.


Преодолеть зависимость от динамического обновления мне помогли 12 простых шагов:

12 ШАГОВ , РАЗРАБОТАННЫЕ САМИМИ ДИНАМИЧЕСКИМИ ОБНОВЛЯЛЬЩИКАМИ
1. Признать свое бессилие перед поведением платформы 1с при динамическом обновлении.
2. Согласиться с утверждением, что без посторонней помощи не обойтись.
3. Мысленно перепоручить себя некой Высшей силе, которая поможет.
4. Проанализировать свои поступки.
5. Признать перед собой и кем-то еще свои ошибки.
6. Не сомневаться, что бекап перед динамическим обновлением сработает.
7. Просить высшие силы избавить от недостатков.
8. Составить список всех людей, кому причинили зло, и захотеть загладить свою вину перед ними.
9. Лично возместить этим людям ущерб, нанесенный вами и вашим динамическим обновлением.
10. Продолжать самоанализ и, при малейших ошибках, сразу признавать, что вы их таки совершили.
11. Не переставать размышлять и благодарить помощника из пункта 3.
12. Достигнув пробуждения, благодаря пунктам 1-11, помогать другим динамическообновлялщикам.
Показать


на принтер и в рамку
Waanneek; +1 Ответить
11. Glebis 11 11.01.19 11:07 Сейчас в теме
Добавь, пожалуйста, к статьи тег с текстом ошибки и тег "динамическое обновление", чтобы проще было найти.
for_sale; ivdvorkovoy; +2 Ответить
13. ivdvorkovoy 13.01.19 10:30 Сейчас в теме
15. user1169191 06.03.19 19:35 Сейчас в теме
17. CheBurator 3386 09.04.19 03:44 Сейчас в теме
по прежнему - все способы суть шаманский бубен
22. vadim1011985 65 11.04.19 18:51 Сейчас в теме
(17) А какие еще могут быть способы , кроме шаманских ?

Нет универсального решения в таких вопросах и инструментов для решения практически нет .

Я конечно больше по восстановлению файловых баз, и если SQL позволяет такие штуки как описал Автор , то все не так плохо по сравнению с файловыми базами.

Конечно для файловых баз, есть утилиты Tools 1CD и 1CD_ Lib, только не работают они с форматом 8.3.8 , и если сконвертнуть в старый формат не удается , остается только сидеть в HeX - редакторе крыжить.

Так что и файловыми и SQL базами одно шаманство , где-то в большей степени , где-то в меньшей.
18. baracuda 3 09.04.19 12:04 Сейчас в теме
Ребят, очень часто обновляю расширение динамически? платформа 8.3.11.3034.
причем при обновлении никаких вопросов платформа не задает, просто обновляет и все, я что то делаю не так?
19. tricolor 19 10.04.19 17:24 Сейчас в теме
(18)ты обновляешь расширение, а не саму конфу.
23. baracuda 3 12.04.19 09:35 Сейчас в теме
(19) Спасибо, теперь понятно.
20. rinat_alp2 48 11.04.19 10:25 Сейчас в теме
Напишите, пожалуйста, сколько рабочих серверов 1С?
У нас ошибки падения после динамического обновления пропали, после того как убрали дублирующееся требование назначения функциональности на один сервер.
Уже точно не помню какая функциональность была.
21. idle 89 11.04.19 17:44 Сейчас в теме
Оставьте свое сообщение