7.7 Поменял принтер, и не работает метод Напечатать(0)

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Samouchka, 28 май 2014.

  1. TopicStarter Overlay
    Samouchka
    Offline

    Samouchka Опытный в 1С

    Регистрация:
    20 мар 2013
    Сообщения:
    214
    Симпатии:
    1
    Баллы:
    29
    Здравствуйте все! Я уже писал в другой теме процедуру для того чтобы сразу распечатать документ (без предварительного просмотра). Можно это сделать с запросом: Напечатать(1), а можно без запроса Напечатать(0). Сначала печать без запроса работала. Потом я подключил новый принтер, использую его по умолчанию, убедился что в 1с он выбирается по умолчанию при распечатывании документов. И на этом принтере (HP LaserJet Professional M1214nfh MFP, если марка интересует) метод Напечатать(0) не работает, никакой реакции в 1с не происходит вообще. В то же время печать с запросом Напечатать(1) проходит на ура. В принципе войны нет, я могу и старый принтер подключить, или печатать с запросами, но всё же интересно, в чём тут дело-то? Ну и код по традиции, если нужен:
    Код:
    Процедура ПечатьСразу() экспорт
        Если СтарДог=0 Тогда
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Таблица");
        Таб.ВывестиСекцию("Печатать");
        Таб.Напечатать(0);   
        КонецЕсли;
        Если СтарДог=1 Тогда
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Старый договор");
        Таб.ВывестиСекцию("Печатать");
        Таб.Напечатать(0);
        КонецЕсли;
    КонецПроцедуры
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    Samouchka нравится это.
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Я для определения принтера, на который нужно печатать, применяю функцию

    Функция ПринтерПоУмолчанию()
    Если Константа.ПечОснПринтер=0 Тогда
    Возврат "";
    КонецЕсли;
    Сообщить("Попытка определить принтер по умолчанию....");
    Скрипт=createobject("MSScriptControl.ScriptControl");
    Скрипт.language="javascript";
    Скрипт.TimeOut=-1;
    Локатор=СоздатьОбъект("wbemscripting.swbemlocator");
    Сервис=Локатор.ConnectServer();
    Скрипт.AddObject("Принтеры",Сервис.ExecQuery("Select * from Win32_Printer"));
    Перечисленные=Скрипт.Eval("new Enumerator(Принтеры)");
    Пока Перечисленные.atEnd(0)=0 Цикл
    Если Перечисленные.item(0).Attributes % 8 / 4 = 1 Тогда
    Сообщить("Принтер по умолчанию успешно определен. "+Перечисленные.item(0).DriverName);
    Возврат Перечисленные.item(0).DriverName;
    Иначе
    Сообщить("Обнаружен принтер "+Перечисленные.item(0).Name);
    КонецЕсли;
    Перечисленные.moveNext(0);
    КонецЦикла;

    КонецФункции
  4. TopicStarter Overlay
    Samouchka
    Offline

    Samouchka Опытный в 1С

    Регистрация:
    20 мар 2013
    Сообщения:
    214
    Симпатии:
    1
    Баллы:
    29
    Ну а куда лепить-то надо эту функцию? Вначале моей процедуры, вот так:
    Код:
    Процедура ПечатьСразу()
    ПринтерПоУмолчанию();
        Если СтарДог=0 Тогда
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Таблица");
        Таб.ВывестиСекцию("Печатать");
        Таб.Напечатать(0);  
        КонецЕсли;
        Если СтарДог=1 Тогда
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Старый договор");
        Таб.ВывестиСекцию("Печатать");
        Таб.Напечатать(0);
        КонецЕсли;
    КонецПроцедуры
    или же надо куда-то передать параметр Перечисленные.item(0).DriverName
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    У объекта ТАБЛИЦА есть метод ПараметрыСтраницы. Один из параметров метода - имя принтера на который нужно осуществлять печать.

Поделиться этой страницей