Имя: Пароль:
1C
1C 7.7
v7: Не создается класс в одной из периферийных баз
0 Rom_Kat
 
21.10.11
10:00
Есть распределенная база 1с 7.7 центральная и 3 периферийные. Класс создается в глобальном модуле ПриНачалеРаботыСистемы. И только в одной периферийной базе выдает ошибку
ПерехватГМ = СоздатьОбъект("ПерехватчикСобытийГМ");
{Глобальный модуль(747)}: Неудачная попытка создания объекта (ПерехватчикСобытийГМ)

В остальных все отрабатывается без проблем.

В чем может быть проблема?
1 filh
 
21.10.11
10:03
версия 1с++
2 iamnub
 
21.10.11
10:05
Класс у него не создается, ну-ну...
3 Rom_Kat
 
21.10.11
10:05
3,2,3,12
везде одинаковая
4 Rom_Kat
 
21.10.11
10:06
(2)не создается конечно же объект класса. Ну так не суть... Чего делать то? Где еще посмотреть?
5 filh
 
21.10.11
10:13
показывай полностью код, а не 1 строчку
6 filh
 
21.10.11
10:14
только не надо ГМ выкладывать...
7 Rom_Kat
 
21.10.11
10:17
Если ЗагрузитьКомпоненту("1CPP.dll", 1) = 0 Тогда
       СтатусВозврата(0); Возврат;
   ИначеЕсли ЗагрузитьКомпоненту("v7plus.dll") = 0 Тогда
       СтатусВозврата(0); Возврат;
   //ИначеЕсли ЗагрузитьКомпоненту("rainbow.dll") = 0 Тогда
   //    СтатусВозврата(0); Возврат;
   КонецЕсли;

   Если ЗагрузитьКомпоненту("formex.dll") = 0 Тогда
       СтатусВозврата(0); Возврат;
   ИначеЕсли ЗагрузитьКомпоненту("vk_Hook1C.dll") = 0 Тогда
       СтатусВозврата(0); Возврат;
   КонецЕсли;

   RainbowMetaData = СоздатьОбъект("MetaDataWork");
   RecordSet    = СоздатьОбъект("ODBCRecordSet");
   RecordSet.УстБД1С();
   
   ПерехватГМ = СоздатьОбъект("ПерехватчикСобытийГМ");
   ПерехватГМ.ВключитьПерехват();


ну та чего код. он во всех базах одинаковый.
8 Rom_Kat
 
21.10.11
10:23
Перем Перехватчик;

//+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
Функция GetThis(Конт)
   Возврат Конт
КонецФункции

//+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
Процедура Конструктор()
   Перехватчик = СоздатьОбъект("Перехватчик");
КонецПроцедуры

//+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
Процедура Деструктор()
КонецПроцедуры

//+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
Процедура ВключитьПерехват() Экспорт
   Настройки = СоздатьОбъект("УправлениеНастройками");
   Настройки.Включить("ПерехватитьСобытияГК");    
   
   Перехватчик.ПерехватитьСобытияГлобальногоМодуля(GetThis(Контекст));
       
КонецПроцедуры

//+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
Процедура СобытиеГМ_СозданиеКонтекста(Конт) Экспорт
   
   ПерехватчикСобытийФормы = СоздатьОбъект("ПерехватчикСобытийГК");
   ПерехватчикСобытийФормы.ВключитьПерехватГК(Конт);
   Перехватчик.ВыполнитьОригинальноеСобытиеГлобальногоМодуля("СозданиеКонтекста");
   
КонецПроцедуры

это класс ПерехватчикСобытийГМ


класс ПерехватчикСобытийГМ=ПерехватчикСобытийГМ@MD
{
   void Конструктор();
   void Деструктор();
   void ВключитьПерехват();
   
};

вот его описание
9 Rom_Kat
 
21.10.11
10:30
как из кода версию 1с++ проверить?
10 Rom_Kat
 
21.10.11
10:43
подскажите метод
11 Kondarat
 
21.10.11
10:46
12 Rom_Kat
 
21.10.11
11:12
(11)остается загадкой почему этот класс не существует только в одной периферийной базе
13 Rom_Kat
 
21.10.11
17:59
Короче в режиме конфигуратора не запускалась конфа этой злополучной периферийки.
Глюк поборол копирование файлов конфы в другую папку и переименованием ее именем старой. Старой соответственно имя заменено на другое.
Собственно класс тоже скомпилился и заработал.

И вот господа, есть вопрос о том чем вызван такой глюк?
14 Cthulhu
 
21.10.11
18:04
симлинки?
15 Rom_Kat
 
24.10.11
09:04
(14) чего, чего?
16 Rom_Kat
 
24.10.11
09:24
в общем не симлинки ))
Слетели права на md. Стояло только чтение.