Имя: Пароль:
1C
 
Список принтеров в Linux
0 spiller26
 
13.02.18
10:00
Есть консольная команда, которая выводит список принтеров в системе
lpstat -p -d

НачатьЗапускПриложения
ЗапуститьПриложение

Что использовать для возврата выводимого списка в 1с?
1 Волшебник
 
модератор
13.02.18
10:01
КомандаСистемы("lpstat -p -d > output.txt")
2 spiller26
 
13.02.18
10:17
(1) Всё получилось
    ТекстДокумента = новый ТекстовыйДокумент;
    ВременныйТексДокумент = ПолучитьИмяВременногоФайла();
    КомандаСистемы("lpstat -p -d > " + ВременныйТексДокумент);
    Sleep(2);
    ТекстДокумента.Прочитать(ВременныйТексДокумент);
    ИзвлеченныйТекст = ТекстДокумента.ПолучитьТекст();

    УдалитьФайлы(ВременныйТексДокумент);

    //СтрокаКонсольнойКоманды = "lpoptions -o pagesize=EnvDL -o inputslot=MF1";
    //ЗапуститьПриложение(СтрокаКонсольнойКоманды);
    ТД = ПечатьНаСервере("DL");


//задержка
Процедура Sleep(Сек) Экспорт
    
    Нач=ТекущаяДата();
    Пока ТекущаяДата() - Нач < Сек Цикл
    КонецЦикла;    
    
КонецПроцедуры
3 arsik
 
гуру
13.02.18
10:33
(2) Зачем Sleep(Сек)
сделай сразу в команде
КомандаСистемы("lpstat -p -d > " + ВременныйТексДокумент+"; sleep 2");
4 spiller26
 
13.02.18
10:35
(3) не знал что так можно. Спасибо.
5 Волшебник
 
модератор
13.02.18
10:36
Нужно ещё добавить Попытка...Исключение. Мало ли что пойдёт не так.
6 arsik
 
гуру
13.02.18
10:38
(4) А, не. Я ошибся. Не делай так.
7 spiller26
 
13.02.18
10:40
(5) Это понятно
(3) так лучше будет "lpstat -p -d && sleep 2"
8 arsik
 
гуру
13.02.18
10:53
(7) Не. У тебя так пауза внутри КомандаСистемы будет. А она вроде как раз не ждет завершения. Тебе паузу на уровне 1С нужно все таки делать
9 spiller26
 
13.02.18
10:53
Просто печать конвертов на принтер, по крайней мере, Kyocera, через одно место. Вот такой вот изврат.
1. Сначала определяем какой по умолчанию
2. Переопределяем параметры
"lpadmin -p NamePrinter -o media=EnvDL -o inputslot=MF1"
3. После печати возвращаем стандартные параметры.
10 arsik
 
гуру
13.02.18
10:57
(8) Ошибся. КомандаСистемы - ждет завершения. Так что пауза совсем бессмыслена.
11 spiller26
 
13.02.18
10:59
(10) Пока уберу задержку, при тестировании выявиться.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс