Имя: Пароль:
1C
1С v8
Проверка на возможность двусторонней печати
,
0 Skimes
 
27.12.11
16:25
Уважаемые знатоки, вопрос:
Можно как то посмотреть при печати, доступна ли принтеру двусторонняя печать? Читал форум, везде говориться, что надо формировать .dat файл для принтеров. Но контора большая, принтеров много, это надо сильно запариться, что бы для каждого принтера это делать.
Есть какие то методы? Буду очень признателен
1 Широкий
 
27.12.11
16:26
практически не реализуемо
2 Skimes
 
27.12.11
16:35
Ясно, спасибо!
Но все же если будут еще мнения, я с готовностью их выслушаю=)
3 aleks-id
 
27.12.11
16:37
строишь список принтеров, получаешь их свойства запросом. среди прочих свойств была и двухсторонняя печать.
4 ThreeTONE
 
27.12.11
16:37
сделай справочник принтеров, проставь ДвухсторонняяПечать = истина для нужных принтеров
при печати макета проверяй
5 andrewks
 
27.12.11
16:38
ну, если только через WMI получать драйвер, и + иметь таблицу для каждого драйвера (да/нет)

но идея попахивает бредом
6 aleks-id
 
27.12.11
16:50
как то так
Функция ЗаполнитьПринтеры()
   Принтеры = Новый СписокЗначений;
   Состояние("Составляется список принтеров. Подождите.");
   Попытка
       Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
       Сервисы = Locator.ConnectServer(".");
       Объекты = Сервисы.ExecQuery("SELECT * FROM Win32_Printer");
       Для Каждого Принтер из Объекты Цикл
           ИмяПринтера = Принтер.Name;
           Пока Найти(ИмяПринтера,"\") > 0 Цикл
               ИмяПринтера = Сред(ИмяПринтера, Найти(ИмяПринтера,"\")+1);
           КонецЦикла;
           ИмяПринтера = СокрЛП(ИмяПринтера);
           Принтеры.Добавить(Принтер.Name,ИмяПринтера);
       КонецЦикла;
   Исключение
   КонецПопытки;
   Состояние();
   Возврат Принтеры;
КонецФункции

class Win32_Printer : CIM_Printer
{
 uint32   Attributes;
 uint16   Availability;
 string   AvailableJobSheets[];
 uint32   AveragePagesPerMinute;
 uint16   Capabilities[];
 string   CapabilityDescriptions[];
 string   Caption;
 string   CharSetsSupported[];
 string   Comment;
 uint32   ConfigManagerErrorCode;
 boolean  ConfigManagerUserConfig;
 string   CreationClassName;
 uint16   CurrentCapabilities[];
 string   CurrentCharSet;
 uint16   CurrentLanguage;
 string   CurrentMimeType;
 string   CurrentNaturalLanguage;
 string   CurrentPaperType;
 boolean  Default;
 uint16   DefaultCapabilities[];
 uint32   DefaultCopies;
 uint16   DefaultLanguage;
 string   DefaultMimeType;
 uint32   DefaultNumberUp;
 string   DefaultPaperType;
 uint32   DefaultPriority;
 string   Description;
 uint16   DetectedErrorState;
 string   DeviceID;
 boolean  Direct;
 boolean  DoCompleteFirst;
 string   DriverName;
 boolean  EnableBIDI;
 boolean  EnableDevQueryPrint;
 boolean  ErrorCleared;
 string   ErrorDescription;
 string   ErrorInformation[];
 uint16   ExtendedDetectedErrorState;
 uint16   ExtendedPrinterStatus;
 boolean  Hidden;
 uint32   HorizontalResolution;
 datetime InstallDate;
 uint32   JobCountSinceLastReset;
 boolean  KeepPrintedJobs;
 uint16   LanguagesSupported[];
 uint32   LastErrorCode;
 boolean  Local;
 string   Location;
 uint16   MarkingTechnology;
 uint32   MaxCopies;
 uint32   MaxNumberUp;
 uint32   MaxSizeSupported;
 string   MimeTypesSupported[];
 string   Name;
 string   NaturalLanguagesSupported[];
 boolean  Network;
 uint16   PaperSizesSupported[];
 string   PaperTypesAvailable[];
 string   Parameters;
 string   PNPDeviceID;
 string   PortName;
 uint16   PowerManagementCapabilities[];
 boolean  PowerManagementSupported;
 string   PrinterPaperNames[];
 uint32   PrinterState;
 uint16   PrinterStatus;
 string   PrintJobDataType;
 string   PrintProcessor;
 uint32   Priority;
 boolean  Published;
 boolean  Queued;
 boolean  RawOnly;
 string   SeparatorFile;
 string   ServerName;
 boolean  Shared;
 string   ShareName;
 boolean  SpoolEnabled;
 datetime StartTime;
 string   Status;
 uint16   StatusInfo;
 string   SystemCreationClassName;
 string   SystemName;
 datetime TimeOfLastReset;
 datetime UntilTime;
 uint32   VerticalResolution;
 boolean  WorkOffline;
};
7 aleks-id
 
27.12.11
16:54
8 aleks-id
 
27.12.11
16:56
+(7) http://msdn.microsoft.com/en-us/library/windows/desktop/aa394364(v=VS.85).aspx
видимо дуплекс - то, что тебе надо
9 andrewks
 
27.12.11
16:58
(8) вообще, похоже, что да. только непонятно, как выкручиваться на сервере под линем :)
10 aleks-id
 
27.12.11
17:02
(9) (*поправляет пенсне*) чойта я про линь в (0) ни слова не увидел ;)
11 aleks-id
 
27.12.11
17:02
(9) закинь 6-8 в БЗ, пригодится.
12 andrewks
 
27.12.11
17:04
(11) готово
(10) а вдруг? "контора большая" (цы)  ;-)
13 aleks-id
 
27.12.11
17:05
(12) она ж будет на клиенте отрабатываться, и клиентские принтеры таскать.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан