Система: AltLinux Desktop 4.1 branch WINE@Etersoft 1.0 Network 1.0.11-eter7/3 (на предыдущих релизах тоже воспроизводилось) Запускаем windows-приложение (в частности 1С 7.7). Во время работы в нем в локальной сети появляется новый cups-принтер (включили компьютер с принтером). В списке принтеров в диалоге печати у windows-приложения этот принтер не появляется, соответственно невозможно напечатать (в линуксе в списке cups-принтеров принтер появляется и печать на него идет). Необходимо закрыть приложение и запустить заново, чтобы принтер увиделся и можно было на него печатать. PS. В терминальном режиме (административная установка wine) данная ситуация действует на каждого пользователя независимо. Т.е. если User1 запустил 1С раньше, чем появился принтер, а User2 - позже, то у User2 этот принтер будет доступен для печати из 1С, а для User1 - только после закрыть/открыть_заново 1С.
Обнаружилась еще дополнительная подробность необнаружения принтера. Подробности: Административная установка wine на терминал-сервере (freenx-server). 1С 7.7 Сервер работает круглосуточно. Рабочая машина с cups-принтером, на который идет печать с терминал-сервера, включается утром. Ночью на терминал-сервере запускается скрипт от пользователя, входящего в wineadmin (если это важно), который производит тестирование-исправление базы и архивирование настройки (сценарий 1С-конфигуратора). Принтер в этот момент недоступен. В скрипте вначале убиваются все процессы wine: ====== sudo killall 1cv7.exe sleep 2 sudo killall winedevice.exe sleep 2 sudo killall services.exe sleep 2 sudo killall wineserver sleep 2 ====== потом запускается 1С-конфигуратор,.... и в конце (на всякий случай, для чистоты экперимента) еще раз убиваются все wine-процессы. Утром первым включают компьютер с принтером (специально дал указания для пользователей), а только потом запускают 1С. При этом возникает следущая ситуация: принтер в списке принтеров для печати в 1С присутствует, но нельзя ни напечатать на него, ни вызвать его свойства (при нажатии мышкой на кнопку никакой видимой реакции не происходит) - ситуация аналогичная багу #3894. Но! Если параллельно запустить 1С от имени пользователя, входящего в wineadmin, то принтер становится доступным и для этого пользователя (первое действие в 1С - проверить свойства принтера), и для остальных, уже работающих в данный момент в 1С (т.е. завершать процесс и запускать заново не требуется). В сети есть еще один принтер, подключенный к круглосуточно работающему компьютеру (находится в другом помещении) - он нормально доступен всегда для любого пользователя 1С. Пробовал отключать ночной скрипт. Ситуация принципиально не менялась - но иногда с утра все принтера в 1С нормально работали... Вобщем, ситуация сложная... Сделать отдельный стенд для экперимента из двух машин пока не позволяют ресурсы и время... :(
В догонку... Перевел на терминал-сервере wine из административной установки в отдельные для каждого пользователя (простым копированием общего "диска C" каждому пользователю с соответствующими изменениями прав доступа). Вторые сутки - полет нормальный. Видимо проблема в том, что при административной установке обычному пользователю (не в группе wineadmin) не хватает прав изменить список доступных принтеров.
*** This bug has been marked as a duplicate of bug 3894 ***
Да, проблема была вызвана невозможностью записи в win.ini пользователями.