Имя: Пароль:
1C
1С v8
Лицензирование от КАТРАН не работает с сервером 1С версии x64 ☑
0 dimetra2008
 
07.10.11
✎
04:56
Всем привет.
Наша контора использует отраслевое решение "Управление ремонтами", конфа которой защищена ключом от КАТРАНА.
Эта конфигурация работает на платформе 1С 8.2 в клиент серверном варианте, по следующей схеме:
Сервер1 (терминальный сервер с клиентом 1С 8.2 на котором пользователи живут)
Сервер2 (Сервер 1С Предприятие 8 х32)
Сервер3 (MS SQL Server 2008 R2)
Сервер4 (Здесь стоит сервер СЛК 2.0.2.9 и в него же воткнут КАТРАНовский ключ)
Сервер1-Сервер3 это виртуальные машины от MS HyperV
Сервер4 - физическая машина
Так вот, все это замечательно работает, но только если Сервер3 на котором стоит сервер 1С Предприятие 8 является х32, если вместо х32 сервера 1с начать использовать х64 то катрановский ключ конфа уже не может увидеть. Хотя настройки в конфигурационном файле на сервере 1С прописаны верно (IP адрес сервера СЛК, порт и т.д.)
В чем затык, кто знает?
Очень хочется на сервер 1с х64 перейти.
1 Матвеев Максим
 
07.10.11
✎
06:54
Нужен ключ 64бит! LOL
2 Amiralnar
 
07.10.11
✎
07:01
(0) В техподдержку пробовали обращаться? Особенности работы катрана - это очень специфичная тема.

(1) Пробовали читать тему перед тем, как оставить комментарий? Говорят, помогает.
3 Матвеев Максим
 
07.10.11
✎
07:03
> Пробовали читать тему перед тем, как оставить комментарий? Говорят, помогает.

8-) откуда же вы беретесь такие зануды
4 PLUT
 
гуру
07.10.11
✎
07:06
(0) нужен ключ одноэс-сервера ЗЕЛЕНОГО цвета
5 dimetra2008
 
07.10.11
✎
07:21
Обращался напрямую к разработчику конфы... они нифига не смогли сделать, даже удаленный доступ им предоставлял!
А ключик у меня х64
6 Мимохожий Однако
 
07.10.11
✎
07:44
МОжет ключ сломан? Пробовал на какой-нибудь локальной машине?
7 Amiralnar
 
07.10.11
✎
08:13
Так, подожди. Ты битность сменил с сервера 1с или у сервера виндовс?

Потому, что если у виндовс, то катрановский драйвер не подписан, и на 64 битном виндовсе он отключается. Для запуска нужно использовать режим разработчика, или перед загрузкой отключить проверку подписи драйверов.
8 Jofa
 
07.10.11
✎
08:37
(5) Сервер 1С Предприятие 8 х32
9 Jofa
 
07.10.11
✎
08:37
(5)Сервер2 (Сервер 1С Предприятие 8 х32)
10 dimetra2008
 
07.10.11
✎
08:42
У меня есть два виртуальных сервера 2008, один х32, другой х64
на первом стоит сервер 1с х32 на втором сервер х64. с ними я эксперементирую.
физический сервер на котором стоит ключ КАТРАНа является х64 и на нем винда 2008 х64
11 dimetra2008
 
07.10.11
✎
08:45
ключ катрана на физ. машине х64 замечательно работает.
Если я использую для конфы сервер 1с х32 то все работает,
но стоит только для конфы использовать сервер 1с х64 то сразу конфа отказывается видеть этот самый долбаный ключ
12 braslavets
 
07.10.11
✎
08:50
(0) Года четыре назад столкнулся с аналогичной проблемой. Обращался к разработчикам ключей Катран. Ответили - "мы над этим работаем" :) Видимо, плохо получается.
Тогда проблему решили путем отката на 32-бит ось. В дальнейшем удалось "отучить" конфу от ключа.
13 Amiralnar
 
07.10.11
✎
09:15
(11) А кто именно не видит? Конфа или система защиты?
14 Amiralnar
 
07.10.11
✎
09:17
К стати, после (5) > Обращался напрямую к разработчику конфы... они нифига не смогли сделать, даже удаленный доступ им предоставлял! - на этом форуме то чего искать?
15 dimetra2008
 
07.10.11
✎
09:17
Конфа не видит
16 dimetra2008
 
07.10.11
✎
09:20
Эти балбесы-разработчики даже не знали что все эта система для х32 сервера 1с работает т.к. изначально у меня стоял х64 сервер 1с и они не могли ничего сделать, то что эта хрень для сервера 1с х32 работает самостоятельно экспериментальным путем вычислил
17 Amiralnar
 
07.10.11
✎
09:23
Пробовал трассировть подключение к ключу? Может, если проблема в 1С, можно будет подправить?
18 Amiralnar
 
07.10.11
✎
09:30
Конфа должна обращаться к системе защиты через ВК.
Возможны два варианта: 1 - ВК не возвращает ничего. Это плохо.  2 - ВК возвращает не так, как ждет конфа. Это поправимо.
19 dimetra2008
 
07.10.11
✎
09:35
>Пробовал трассировть подключение к ключу? Может, если проблема в 1С, можно будет подправить?

Не пробывал, не знаю как это делается
20 Goggy
 
07.10.11
✎
09:42
(1) моск купи дядя.
(0) Всё работает на х64 прекрасно. Там 2 компоненты в папке бин должны лежать с одинаквым название и одна с дописаным "х64". При запуске конфы протрассируй модуль приложения, там ф-ция отвечающая за подключение компоненты.
(19)Ну тогда один вариант, обратиться к специалисту.
21 dimetra2008
 
07.10.11
✎
09:49
Точно
в папке: C:\Program Files (x86)\1C\Licence 2.0\Bin
лежит два файла
LicenceAddIn64.dll
LicenceAddIn.dll
В конфе создается объект: МенеджерЛицензий = Новый("AddIn.Licence.LicenceExtension20");
22 dimetra2008
 
07.10.11
✎
09:50
я так полагаю нуно написать типа:
МенеджерЛицензий = Новый("AddIn64.Licence.LicenceExtension20");
?
23 DmitrO
 
07.10.11
✎
10:00
(22)нет. так писать вообще нельзя.
Проблема вероятно в следующем.
Вероятно загрузка компоненты (и работа с ней) идет на сервере, в серверном модуле.
Дело в том, что 32разрядные dll ни при каких условиях не могут быть загружены в 64разрядный процесс. И наоборот тоже. Это ограничения ОС, и это логично.
Надо просто загружать соответствующий разрядности вариант компоненты.
Показывай код загрузки.
24 Goggy
 
07.10.11
✎
10:05
Мне кажется просто разработчик мог не учесть варианта выбора компоненты для х64, либо просто путь по дефолту стоит "програм файлс", а верный указать надо через "програм файлз(х64)".
25 DmitrO
 
07.10.11
✎
10:06
вероятно при загрузке вариант компоненты который грузить определяется. но определяется он по разрядности ОС, а надо проверять по разрядности сервера 1С.
26 Goggy
 
07.10.11
✎
10:08
(24) неправильно написал "програм файлх(х86)" :)
27 Goggy
 
07.10.11
✎
10:09
(23) прекрасно подгружает обе ДЛЛки сам пробовал на разных ОС.
28 Goggy
 
07.10.11
✎
10:10
(22) кинь всю ф-цию в которой подключаются компоненты.
29 dimetra2008
 
07.10.11
✎
10:14
Функция ЗапускМенеджераЛицензий() Экспорт

       ВнешняяКомпонентаПодключена = ПодключитьВнешнююКомпоненту("ОбщийМакет.торо_КомпонентаСЛК_2_0",
           "Licence", ТипВнешнейКомпоненты.Native);
       
       Если Не ВнешняяКомпонентаПодключена Тогда
           
           Попытка
               
               УстановитьВнешнююКомпоненту("ОбщийМакет.торо_КомпонентаСЛК_2_0");
               ВнешняяКомпонентаПодключена = ПодключитьВнешнююКомпоненту("ОбщийМакет.торо_КомпонентаСЛК_2_0",
                   "Licence", ТипВнешнейКомпоненты.Native);
                           
           Исключение
               
               Сообщить("Ошибка подключения компоненты СЛК!" + ОписаниеОшибки());
               Возврат Ложь;
               
           КонецПопытки;
       
       КонецЕсли;
       
       Если ВнешняяКомпонентаПодключена Тогда
           
           Попытка
               МенеджерЛицензий = Новый("AddIn.Licence.LicenceExtension20");
           Исключение
               Сообщить(ОписаниеОшибки());
               Возврат Ложь;
           КонецПопытки;
           
           // Запуск по серии ключей
           Возврат МенеджерЛицензий.Запуск("B0A2");
           
       Иначе
           
           Возврат Ложь;
           
       КонецЕсли;
       
   КонецФункции
30 DmitrO
 
07.10.11
✎
10:15
(25)+ вероятно потому, что в объекте Системная информация есть только ВерсияОС и нет ничего чтобы как-то узнать разрядность текущего процесса. В результате определяется что версия ОС у нас Windows_x86_64 , и идет попытка загрузить компоненту для x64, а процсесс сервера 32разрядный. В результате компонента не загрузится
31 Goggy
 
07.10.11
✎
10:16
(30) не путай, всё гуд подгружается при такой проверке и на 32 разрядный процесс.
32 Goggy
 
07.10.11
✎
10:18
(29) короче находиш "ОбщийМакет.торо_КомпонентаСЛК_2_0" в дереве конфы, открываеш и загружаеш туда файл "LicenceAddIn64.dll" и пробуй запускать.

З.Ы. на всякий случай выгрузи с этого макета копию файла загруженного.
33 Goggy
 
07.10.11
✎
10:21
Какая фирма разработчик то этой г0Bноконфы(тм)? :)
34 dimetra2008
 
07.10.11
✎
10:21
>короче находиш "ОбщийМакет.торо_КомпонентаСЛК_2_0" в дереве конфы, открываеш и загружаеш туда файл "LicenceAddIn64.dll" и пробуй запускать.

З.Ы. на всякий случай выгрузи с этого макета копию файла загруженного.
Сенкс, попробую, отпишусь
35 dimetra2008
 
07.10.11
✎
10:22
>Какая фирма разработчик то этой г0Bноконфы(тм)? :)
Деснол-софт, они нам ее внедряли
36 Goggy
 
07.10.11
✎
10:26
(35) А, ну тогда сойдёт. у них вакансия старшего программиста 1С 22т.р. На эту сумму и написана конфа...
37 dimetra2008
 
07.10.11
✎
10:32
>А, ну тогда сойдёт. у них вакансия старшего программиста 1С 22т.р. На эту сумму и написана конфа...
Га-га-га
я думал таких зп уже нет
38 DmitrO
 
07.10.11
✎
10:34
(29)при такой загрузке (ПодключитьВнешнююКомпоненту из макета) можно в макете разместить zip-архив с разными вариантами компонент и манифестом, тогда будет универсально и работать на сервере любой разрядности.
39 Goggy
 
07.10.11
✎
10:53
(38) Во, а вот это интересно можешь подробней расписать или тыкнуть де почитать можно? В документации по СЛК такого нету.
Выбор компоненты идёт с помощью манифеста? Что должен содержать файлег?
40 Goggy
 
07.10.11
✎
11:25
о, H A D G E H O G s, приди и выдай мудрость СЛКшную по поводу (39) плз :)
41 H A D G E H O G s
 
07.10.11
✎
11:39
Какую мудрость?
Открыть макет этот в конфигураторе, сохранить с расширением zip и посмотреть архив.
Он должен содержать нечто подобное
   
LicenceAddIn64_2_0_3_46.dll
LicenceAddIn_2_0_3_46.dll
Licence_FFWindows_x86.xpi
Licence_IEWindows_x86.cab
MANIFEST.XML

Если это так - правьте hands.dll, иначе - правьте макет.
42 Goggy
 
07.10.11
✎
11:47
(41) Как СЛК определяет какую компоненту пользовать из этого архива? Есть документация по этому поводу?
43 H A D G E H O G s
 
07.10.11
✎
11:50
(42) Как бы вот так

   СисИнфо = Новый СистемнаяИнформация;
   Если СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
       Компонента = "LicenceAddIn.dll";
   ИначеЕсли СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
       Компонента = "LicenceAddIn64.dll";
   Иначе
       Возврат Ложь; // Пока только Windows
   КонецЕсли;
   
   Возврат ПодключитьВнешнююКомпоненту(КаталогКомпоненты + Компонента, "Licence", ТипВнешнейКомпоненты.Native);
44 H A D G E H O G s
 
07.10.11
✎
11:50
А, не погодь, это если по имени файла.
45 Goggy
 
07.10.11
✎
11:50
(43) я имел в виду из макета :)
46 H A D G E H O G s
 
07.10.11
✎
11:51
Возврат ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаСЛК", "Licence");
47 H A D G E H O G s
 
07.10.11
✎
11:51
(45) 1С ка должна определить, что подключить. Сама. Исходя от того, где код выполняется.
48 Goggy
 
07.10.11
✎
11:52
(46) и как она тут определит какую компоненту надо подключить?
49 Goggy
 
07.10.11
✎
11:53
(47) прикольно, незнал. А зачем там дополнительные файлы ?

Licence_FFWindows_x86.xpi
Licence_IEWindows_x86.cab
MANIFEST.XML
50 H A D G E H O G s
 
07.10.11
✎
11:55
(49) Плагины для огнелиса и IE
51 H A D G E H O G s
 
07.10.11
✎
11:55
И описание того, куда что подключается в манифесте.
52 Goggy
 
07.10.11
✎
11:57
Ну супер. На след неделе поковыряюсь с таким вариантом, на УФ удобно так будет.
53 Goggy
 
07.10.11
✎
12:00
Пасиб
54 Begin
 
07.10.11
✎
12:17
(0) а какой релиз конфы используете?
55 dimetra2008
 
10.10.11
✎
09:50
Коллеги, извините что ввел вас заблуждение, на самом деле ситуация несколько иная, а именно:
Конфа находит ключ в любом случае и при использовании х32 сервера 1с и при использовании х64 сервера 1с, но когда используешь х64 1с сервер то перестает работать защищенный функционал конфы, вываливатся с ошибкой:
server_addr=tcp://DV1C03:1561=Ошибка сетевого доступа к серверу (Windows sockets - 10054(0x00002746). Удаленный хост принудительно разорвал существующее подключение.) line=1078 file=Src\DataExchangeTcpClientlmpl.cpp
Когда используешь х32 1с сервер то все работает без сбоев.
56 Amiralnar
 
10.10.11
✎
16:23
Падает сервер 1С. Включайте ТЖ на исключения, и посмотрите, может там что будет понятно.
57 dimetra2008
 
11.10.11
✎
02:21
Что такое ТЖ и как оно включается?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой