|
Проблема с dll на сервере 1С | ☑ | ||
---|---|---|---|---|
0
kievgorez
18.11.13
✎
12:59
|
Доброго времени суток уважаемым экспертам! Столкнулся с такой проблемой.
Было организовано автоматическое программирование весов в фоновом режиме по расписанию в файловом варианте 1С (УТ для Украины) через библиотеку drvLP.dll. Работало все на ура. Перешли на клиент-серверный вариант 1С и теперь фоновые задания выполняются на сервере. И тут появилась проблема. Библиотека drvLP.dll не подгружается на сервере. Когда запускаем программирование под клиентом вручную - все работает. Сервер: Windows Server 2008 R2 Standart 64x 1С 8.2 , платформа 8.2.19.68, сервер 1С запускается под USR1CV82, у которого полные права на папку Файлы DrvLP.dll и DrvLP.lic лежат в bin, зарегистрированы (когда запускаем вручную - все подхватывает). Код 1С: Если ПодключитьВнешнююКомпоненту("DrvLP.dll")=Ложь Тогда Сообщить("Внешняя компонента драйвера весов 'Штрих-Принт' - DrvLP.dll не найдена!",MessageStatus.Attention); Возврат; КонецЕсли; Весы = Новый ("AddIn.DrvLP"); //сюда не доходим ПодключитьВнешнююКомпоненту всегда дает Ложь, те компонента не подлючается. Ошибок не выдает. Пробовал указывать в ПодключитьВнешнююКомпоненту расположение длл-ки в разных вариантах- и на диске С, и в сети.. (с полными правами на эти папки) Результат тот же. Вопрос: Как нужно реализовывать подключение библиотеки в серверном режиме? Как ее заставить работать? |
|||
1
mzelensky
18.11.13
✎
13:08
|
(0) для начало проверить есть ли эта библиотека на сервере
|
|||
2
mzelensky
18.11.13
✎
13:10
|
(1) чтобы это проверить укажите (для теста) не краткое имя, а полный путь к библиотеки:
ПодключитьВнешнююКомпоненту("C:\Papka1\Papka2\DrvLP.dll") |
|||
3
kievgorez
18.11.13
✎
13:15
|
Тестирую как раз на сервере. Пытался указывать полный путь к библиотеке с разным местоположением.
Результат=ПодключитьВнешнююКомпоненту("C:\Program Files (x86)\1cv82\8.2.19.68\bin\DrvLP.dll"); и Результат=ПодключитьВнешнююКомпоненту("C:\Test\DrvLP.dll"); и даже сетевую папку с полными правами на нее.. Результат=ПодключитьВнешнююКомпоненту("\\test\DrvLP.dll"); |
|||
4
mzelensky
18.11.13
✎
13:20
|
(3) Стоп! Если у тебя Сервер и Клиент это РАЗЫНЕ МАШИНЫ, а ты хочешь загружать библиотеку под сервером, то библиотека должна быть зарегана (и физически должна находиться) на машине СЕРВЕРА!. Никаких сетевых путей.
|
|||
5
Новиков
18.11.13
✎
13:22
|
Клиент какой - толстый или тонкий?
|
|||
6
kievgorez
18.11.13
✎
13:26
|
Библиотека находится на машине сервера, и зарегистрирована на ней.
Сетевой путь пробовался только как вариант. В смысле какой клиент? Фоновое задание выполняется на сервере... Когда запускаю вручную под толстым клиентом- вопросов нет. |
|||
7
Новиков
18.11.13
✎
13:28
|
(7) а конфа - ут эта - это управляемое приложение? Или обычное?
|
|||
8
kievgorez
18.11.13
✎
13:28
|
Обычное приложение
|
|||
9
decdmb
18.11.13
✎
13:30
|
Подпишусь, такой же косяк есть, пока не победил
|
|||
10
Новиков
18.11.13
✎
13:30
|
запусти клиентское приложение 1С на сервере под USR1CV82 и запусти вручную - работает?
|
|||
11
mzelensky
18.11.13
✎
13:32
|
(10) + а еще лучше запусти (тестово) службу сервера под Админом (т.е. полные права)
|
|||
12
Новиков
18.11.13
✎
13:33
|
Скорее всего дело в правах пользователя, под которым запущен сервер 1С. По-крайне мере, все симптомы на это указывают. В случае толстого клиента, особо больше и копать то не куда, если под другим пользователем все работает.
|
|||
13
kievgorez
18.11.13
✎
13:38
|
10, 11- попробую. Но это только вечером. Все крутится на сервере большой компании и их админы не позволят проводить эксперименты днем. Как только попробую - отпишусь. Пока спасибо)
|
|||
14
Новиков
18.11.13
✎
13:53
|
(13) так правой кнопкой по ярлыку 1С, запустить от имени -> USR1CV82, пасс -> Ок. И запусти в ручную. И никаких остановок сервера 1С не нужно - сразу увидишь в этом ли дело, или нет.
|
|||
15
Rebelx
18.11.13
✎
14:00
|
(0) случаем сервер 1С не х64?
|
|||
16
kievgorez
18.11.13
✎
14:06
|
14 - пароля не знаю, админы "злые")
15 - ага, и сервер и винда - 64х |
|||
17
zakidonoff
18.11.13
✎
14:24
|
1С для регламентных заданий должен запускаться под админским профилем. Можно вставить нечто следующее:
Результат = ПодключитьВнешнююКомпоненту("C:\Program Files (x86)\1cv82\8.2.19.68\bin\DrvLP.dll"); Если НЕ Результат Тогда ЗапуститьПриложение("cmd.exe /c ""RegSvr32 /s """C:\Program Files (x86)\1cv82\8.2.19.68\bin\DrvLP.dll""""""); ПодключитьВнешнююКомпоненту("C:\Program Files (x86)\1cv82\8.2.19.68\bin\DrvLP.dll"); КонецЕсли; Не знаю, взлетит - нет, по-хорошему нужно батник генерировать. |
|||
18
Serginio1
18.11.13
✎
14:42
|
(16) Есть два варианта получить 64 разрядную drvLP.dll
либо прописать как COM+ http://www.steeltrace.ru/details/articleid/22/регистрация-1с-com-компонента-для-работы-с-64-битными-приложениями.aspx |
|||
19
Mafoni
18.11.13
✎
15:47
|
Сервер 1с - 64х или 32х ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |