3778 vi3d (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
Добрый день, прошу прощения за длительный перерыв между сообщениями. Был на обучении.
Протестировали, не помогло. Ошибка, увы, та же.
А какие были изменения, если не секрет?
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
Такое ощущение, что поведение порта меняется в зависимости от того к какой системе он примаплен....
Хотя может я и не прав.
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
[quote author=Олег link=topic/6/1759/1/#9014 date=16.10.2014 17:23]Не все так просто. Я пока не представляю всей картины. Я так понимаю, пользователи работают в удаленной сессии (терминальный доступ), а команда net use подключает локальный порт. Если Вы локально запустите 1С, я уверен все будет работать.[/quote]

Да, пользователи работают в удалённой сессии. Эта схема для них успешно работает при печати через принт-сервер с windows 2003(старый сервер).
Если же мы пытаемся печатать через принт-сервер с windows 2008 R2(новый сервер), то возникает описанная проблема.
Кроме того, по Вашему совету протестировал с консоли(локально) терминального сервера: ничего не изменилось.
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
Простите, наверно я немного путано объяснил. Давайте попробую объяснить подробнее.
[quote author=Олег link=topic/6/1759/1/#9017 date=17.10.2014 11:07][quote author=vi3d link=topic/6/1759/1/#9015 date=16.10.2014 18:47]
Да, пользователи работают в удалённой сессии.[/quote]
Ну значит LPT порт нужно подключать на сервере, а не на рабочих станциях. Причем, я подозреваю, что конкретно в сессии, а не локально на сервере. Хотя может и пройдет.[/quote]
Разумеется! Так и делаем, подключаем lpt-порт в каждой терминальной сессии.

[quote author=Олег link=topic/6/1759/1/#9017 date=17.10.2014 11:07][quote author=vi3d link=topic/6/1759/1/#9015 date=16.10.2014 18:47]
Эта схема для них успешно работает при печати через принт-сервер с windows 2003(старый сервер).
Если же мы пытаемся печатать через принт-сервер с windows 2008 R2(новый сервер), то возникает описанная проблема.
[/quote]
Какая проблема? Я ничего не понял. EZPL.dll не имеет отношения к Принт-серверу. Она печатает напрямую в порт, минуя механизмы Windows.
[/quote]
Ещё раз в кратце суть проблемы:
1. Если на 2008 R2 терминальном сервере мы мапим LPT порт в принтер на 2008 R2 принт-сервере EZPL в порт печатать не может(получаем ошибку, описанную в первом посте), но запись в порт другими способами возможна.
2. Если на 2008 R2 терминальном сервере мы мапим LPT порт в принтер на 2003 R2 принт-сервере EZPL печатает нормально.
3. Если на тестовом ПК с XP мы мапим LPT порт в принтер на 2008 R2 принт-сервере EZPL печатает нормально.
Проблема в том что первая конфигурация не работает. Почему, с учётом, что 2 и 3 работают - пытаюсь понять.

[quote author=Олег link=topic/6/1759/1/#9017 date=17.10.2014 11:07][quote author=vi3d link=topic/6/1759/1/#9015 date=16.10.2014 18:47]
Кроме того, по Вашему совету протестировал с консоли(локально) терминального сервера: ничего не изменилось.[/quote]
Опять не понял. Тестировали на сервере или на рабочей станции?[/quote]
Вы советовали протестировать на сервере, но не в терминальном сеансе, если я правильно понял.
[quote author=Олег link=topic/6/1759/1/#9014 date=16.10.2014 17:23]Если Вы локально запустите 1С, я уверен все будет работать.[/quote]
Я протестировал на физической консоли сервера. Результат тот же.
Рабочие станции тут ни при чём. В нашей конфигурации 1С 7.7 запускается только в терминальных сеансах.
Есть одна рабочая станция разработчиков. О ней сказано в п.3 выше. На ней всё работает и она вне обсуждения.
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
[quote author=Олег link=topic/6/1759/1/#9005 date=16.10.2014 09:43]А версия dll какая?
Ошибка - не существует указанный файл. Укажите код, как подключаете.[/quote]


Наши программисты 1С предоставили вот такой код:

[code]// Проверка наличия компоненты и подключение её
Подключили = ПодключитьDLL("GodexEZPL.dll", "AddIn.GodexEZPL");
[/code]
Вот тело функции:

[code]Функция ПодключитьDLL(ИмяDLL, ИмяAddIn, КаталогDLL = "", ВыдаватьДиагностику = 0) Экспорт

Если ПустоеЗначение(КаталогDLL) = 1 Тогда
КаталогDLL = СокрЛП(Константа.КаталогВнешнихКомпонент);
КонецЕсли;
ПолноеИмяDLL = КаталогDLL + ИмяDLL;

Подключили = 0;

Загрузили = 0;

Если Найти(ИмяDLL, "dll") > 0 Тогда
Попытка
Подключили = ПодключитьВнешнююКомпоненту(ИмяAddIn); // вначале просто подключаем
Если Подключили = 0 Тогда // попробуем загрузить
Подключили = ЗагрузитьВнешнююКомпоненту(ПолноеИмяDLL);
Загрузили = 1;
КонецЕсли;
Исключение
Подключили = 0;
КонецПопытки;
Иначе
Попытка
СоздатьОбъект(ИмяAddIn);
Подключили = 1;
Исключение
КомандаСистемы("regsvr32 " + ПолноеИмяDLL);
Загрузили = 1;
Попытка
СоздатьОбъект(ИмяAddIn);
Подключили = 1;
Исключение
КонецПопытки;
КонецПопытки;
КонецЕсли;

Если ВыдаватьДиагностику = 1 Тогда
Если Подключили = 1 Тогда
Если Загрузили = 1 Тогда
Предупреждение("Компонента " + ИмяDLL + " успешно установлена", 30);
Иначе
Предупреждение("Компонента " + ИмяDLL + " уже была установлена на этом компьютере", 30);
КонецЕсли;
Иначе
Предупреждение("Компоненту " + ИмяDLL + " подключить не удалось", 30);
КонецЕсли;
Иначе
Если Подключили = 0 Тогда
Сообщить("Не удалось загрузить внешнюю компоненту " + ПолноеИмяDLL + " на компьютере " + ИмяКомпьютера() + ". "
+ "Обратитесь, пожалуйста, в техотдел.", "!");
КонецЕсли;
КонецЕсли;


Возврат Подключили;

КонецФункции[/code]
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
Спасибо. Попробовал, ничего из предложенного, к сожалению, не помогло. Ошибка всё та же.
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
Версия библиотеки GodexEZPL 1.0.11.3, последняя, насколько я понимаю.
А о каком файле идёт речь?
Код, по техническим причинам, приведу несколько позже.
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
[quote author=Олег link=topic/6/1759/1/#9012 date=16.10.2014 15:17]порты в Windows открываются той-же функцией, как и файлы - CreateFile(...), поэтому и ошибки одни. Т.е. данная ошибка говорит, что указанного порта нет в системе.
Последняя 1.0.11.5. Правда там от 11.3 версии изменений мало и к открытию они не относились.
Заодно наберите в сессии cmd и change port. Интересно посмотреть маппинг.[/quote]

При этом в этот порт можно писать... Странно.

Буду благодарен, если дадите ссылку на последнюю версию и change list.

Вот вывод net use и change port. Имя пользователя и имя сервера заменены на %user% и %server%.
[code]C:\Users\$user>net use
Новые подключения будут запомнены.

Состояние Локальный Удаленный Сеть

-------------------------------------------------------------------------------

OK LPT3 \\%server%\Godex Microsoft Windows Network
Команда выполнена успешно.


C:\Users\%user%>change port
AUX = \DosDevices\COM1
COM1 = \Device\Serial0[/code]
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
Конфигурация:
Принтер Godex EZ-1100Plus подключён к принт-серверу под управлением Win 2008 R2 по Ethernet. Установлен драйвер Seagull 7.3.6 M-0.
Пользователи работают в 1C7.7 на терминальных серверах под управлением win 2008 R2. Принтер подключается для них командой [code]net use LPT3 \\printserver\Godex[/code]. На серверах установлена та же версия драйвера принтера. Физического порта LPT3 - нет.

Проблема:
При печати через GodexEZPL.dll возникает ошибка: "Невозможно открыть порт. Код ошибки: 2". При этом команда [code]type C:\some_text_file.txt > LPT3[/code] выполняется успешно и приводит к появлению задания в очереди печати принтера.
Если 1С запускать на компьютере под управлением Windows XP с тем же мэппингом порта и той же версией драйвера - печать проходит успешно.
Если в качестве принт-сервера выступает любой сервер под управлением windows 2003 - печать проходит успешно как с серверов под управлением Windows 2008 R2, так и из под Windows XP.
Печать средствами Windows успешно функционирует на любой платформе.

Вопрос:
Исходя из того, что печать из Windows корректно работает, задания пишутся в порт и ставятся в очередь, возникает вопрос: почему задания из GodexEZPL.dll не пишутся в порт (даже из под учётной записи Админситратора) и как этого можно избежать?
Страницы: 1