1C:V7 starter program (multi-user)
Очень сильно задолбала проблема ?, возникающая откуда не возмись : при выходе из 1С 7.7 на сервере Windows Server 2008 R2.
Прекращена программа 1C:V7 starter program (multi-user)
И в окончательном варианте на экране повисает :
1C:V7 starter program (multi-user) не работает
Когда заходим от Администратора такая ошибка не возникает. Значит что-то связано с правами пользователей!
У нас используются разные компоненты.
Пробуем выключить ИХ из загрузки ,т.е тупо делаем примерно так :
Процедура ПриНачалеРаботыСистемы() Экспорт
Возврат;
И чудо свершилось, ошибка ушла.
Теперь изучаем чего мы там нагородили , какая из компонент лажает
Ну например в этом точно причина была :
ИмяDLL = "ndeclin.dll";
Если ЗагрузитьВнешнююКомпоненту(ИмяDLL)=0 Тогда
Сообщить("Ошибка загрузки внешней компоненты: "+ИмяDLL);
КонецЕсли;
Это компонента для склонения имен , очень удобно склонять в документах ФИО физ.лиц.
При этом при загрузке она не ругается, а все ругань происходит при закрытии 1С. Почему?
Ечли открывать 1С под пользователем Windows , у которого есть права Администратора , то сбоя не происходит. В противном случае получаем ошибку и как следствие необходимость переиндексации базы данных.
Теперь внимание
И вот теперь внимание , если закоментировать ЗагрузитьВнешнююКомпоненту, то ошибка уходит.
Вспоминаем зачем нужна команда ЗагрузитьВнешнююКомпоненту, похоже только один раз от админа зарегистрировать компоненту в Windows?
Рабочими лошадками , которые грузят компоненту в память при загрузке программы являются команды СоздатьОбъект , типа
глPDS = СоздатьОбъект( "Padeg.Declension" );
глNDS = СоздатьОбъект( "AddIn.NameDeclination" );
Выводы
Можно убрать команду ЗагрузитьВнешнююКомпоненту из сценария загруки (из глобального модуля). И все будут работать , во всяком случае какое-то время.
Но причина не найдена на самом деле.
Dependency walker х64 для ndeclin.dll показывает некие ошибки.
Dependency walker х32 не ругается , но ошибки тоже есть :
Программа Просмотр событий фиксирует 3 ошибки Приложения
Кто такой cpsspap?
И последним появляется отчет Windows Error Reporting :
-
-
1001
4
0
0x80000000000000
56890
Application
WinServ-2008-64
-
939464771
392888938
APPCRASH
Отсутствует
0
1cv7.exe
7.70.0.27
4573fcb7
StackHash_fd00
0.0.0.0
00000000
0eedfade
00000000
C:\Users\ba\AppData\Local\Temp\WERAA89.tmp.version.txt
C:\Users\ba\AppData\Local\Microsoft\Windows\WER\ReportArchive\Report0d39aeec
C:\Users\ba\AppData\Local\Microsoft\Windows\WER\ReportArchive\Report0d39aeec
Здесь лежит следующая инфа :
Version=1
EventType=APPCRASH
EventTime=132275473313587790
ReportType=2
Consent=1
UploadTime=132275473344177790
Response.BucketId=939464771
Response.BucketTable=392888938
Response.type=4
Sig[0].Name=Имя приложения
Sig[0].Value=1cv7.exe
Sig[1].Name=Версия приложения
Sig[1].Value=7.70.0.27
Sig[2].Name=Штамп времени приложения
Sig[2].Value=4573fcb7
Sig[3].Name=Имя модуля с ошибкой
Sig[3].Value=StackHash_fd00
Sig[4].Name=Версия модуля с ошибкой
Sig[4].Value=0.0.0.0
Sig[5].Name=Штамп времени модуля с ошибкой
Sig[5].Value=00000000
Sig[6].Name=Код исключения
Sig[6].Value=0eedfade
Sig[7].Name=Смещение исключения
Sig[7].Value=00000000
DynamicSig[1].Name=Версия ОС
DynamicSig[1].Value=6.0.6003.2.2.0.16.7
DynamicSig[2].Name=Код языка
DynamicSig[2].Value=1049
DynamicSig[22].Name=Дополнительные сведения 1
DynamicSig[22].Value=fd00
DynamicSig[23].Name=Дополнительные сведения 2
DynamicSig[23].Value=ea6f5fe8924aaa756324d57f87834160
DynamicSig[24].Name=Дополнительные сведения 3
DynamicSig[24].Value=fd00
DynamicSig[25].Name=Дополнительные сведения 4
DynamicSig[25].Value=ea6f5fe8924aaa756324d57f87834160
UI[2]=C:\Program Files (x86)\1Cv77\BIN\1cv7.exe
UI[3]=Прекращена работа 1C:V7 starter program (multi-user)
UI[4]=Windows может провести поиск способа устранения этой ошибки в Интернете.
UI[5]=Искать решение проблемы в Интернете и закрыть программу
UI[6]=Проверить наличие способа исправления ошибки в Интернете позднее и закрыть программу
UI[7]=Закрыть программу
State[0].Key=Transport.DoneStage1
State[0].Value=1
State[1].Key=DataRequest
State[1].Value=Bucket=939464771/nBucketTable=392888938/nResponse=1/n
FriendlyEventName=Остановка работы
ConsentKey=APPCRASH
AppName=1C:V7 starter program (multi-user)
AppPath=C:\Program Files (x86)\1Cv77\BIN\1cv7.exe
Надо признать , что не смотря на объемный лог причину-то не понять пока.
Марк Русинович в помощь нам
На просторах интернета есть отличная прога ProcessMonitor , смотрите ,что показывает она по фильтру 1cv7.exe
И вот наступает момент истины - обычным пользователям не хватает прав на создание/запись в данную ветку реестра
HKLM\SoftWare\WoW6432\Node\Padeg
Открываем через regedit нужную нам ветку реестра и вручную указываем, кому добавить права.
Ошибка уходит. Всех поздравляю!