Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы прямой печати из 1с77 в Windows 7
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Kutuzov
бух 1с 7.7 289 доработанная платформа 27
реализую обработку по групповой печати документов в документах печати пишу такой код
    
        Таб.ВывестиСекцию("Дно");
    Таб.Защита(Константа.ФлагЗащитыТаблиц);
    Таб.ТолькоПросмотр(1);
    Таб.Опции(0,0,,);
    Если Парам =1  Тогда
        Таб.ПараметрыСтраницы(,,,,,,,,,,,СокрЛП(ТекПринтер));
        
        Таб.Напечатать(0);
     Иначе
    Таб.Показать("ПЕЧАТЬ:"+ПрефиксТаблицы,"");
    глУстПропись(Гривня);    
КонецЕсли;


Но при печати документа он уходит в пустоту, при этом на локальный печатает. И нормально работает если использую
Таб.Напечатать(1);

Но мне надо что бы без вывода запроса шла печать.
За основу был взят код
...
сервис=СоздатьОбъект("Сервис");
сз=сервис.ПолучитьСписокПринтеров();
сз.Выгрузить(спПринтеров); //спПринтеров - выпадающий список на форме

...
ТекПринтер=спПринтеров.ПолучитьЗначение(спПринтеров.ТекущаяСтрока());
...

Таб.ПараметрыСтраницы(1,,,0,5,5,5,5,5,1,,ТекПринтер);
Таб.ТолькоПросмотр(1);
Если Показать=1 Тогда //только показать
   Таб.Показать("СЧ "+НомерДок);
   Таб.КоличествоЭкземпляров(1);
Иначе //печать без просмотра
   Таб.Показать("СЧ "+НомерДок,,0);
   Таб.Напечатать(0);
   Таб.Показать("СЧ "+НомерДок,,-1);
КонецЕсли;



кто встречался с подобной проблемой и как удалось решить???
Ardi
Имя принтера должно быть 8 букв. Что-то такое.
А вообще ПЕЧАТАЙте в PDF.
Kutuzov
Цитата(Ardi @ 16.12.11, 12:53) необходимо зарегистрироваться для просмотра ссылки
Имя принтера должно быть 8 букв. Что-то такое.
А вообще ПЕЧАТАЙте в PDF.


Хорошо, в статьях что я смотрел там говориться что надо ссылаться полностью на весь путь а не на имя которое указано в системе ну и на локальный принтер оно то печатает но там нет 8 букв, там больше....
Ardi
Цитата(Kutuzov @ 16.12.11, 13:56) необходимо зарегистрироваться для просмотра ссылки
Хорошо, в статьях что я смотрел там говориться что надо ссылаться полностью на весь путь а не на имя которое указано в системе ну и на локальный принтер оно то печатает но там нет 8 букв, там больше....

Оно с одним работает, а с другим нет.
У всех многобуквенных названий есть восьмибуквенный синоним, его можно Total Commanderom посмотреть.
Kutuzov
Цитата(Ardi @ 16.12.11, 13:04) необходимо зарегистрироваться для просмотра ссылки
Оно с одним работает, а с другим нет.
У всех многобуквенных названий есть восьмибуквенный синоним, его можно Total Commanderom посмотреть.


Как это в тотале называется???
Ardi
Конфигурация\настройка\содержимое панелей\Снять галку "Длинные имена файлов".

После этого попробовать по сети зайти в принтер.
mister-x
також працював з друком пакету документів - в мене був такий код щодо отримання списку принтерів:
Процедура ПриНачалеРаботыСистемы()
...
глспПринтеров = СоздатьОбъект("СписокЗначений");
  wshNetwork    = createObject("WScript.Network");
    oPrinters        = wshNetwork.EnumPrinterConnections();
    i                        = 0;
    
    Пока i < oPrinters.Count() - 1 Цикл
//     Сообщить ("Порт " + oPrinters.Item(i+1));
глспПринтеров.ДобавитьЗначение(oPrinters.Item(i+1),СокрЛП(oPrinters.Item(i+1)));
        i = i + 2;
    КонецЦикла;
...
друкувало одразу на ура
Kutuzov
Цитата(mister-x @ 16.12.11, 13:31) необходимо зарегистрироваться для просмотра ссылки
також працював з друком пакету документів - в мене був такий код щодо отримання списку принтерів:
Процедура ПриНачалеРаботыСистемы()
...
глспПринтеров = СоздатьОбъект("СписокЗначений");
  wshNetwork    = createObject("WScript.Network");
    oPrinters        = wshNetwork.EnumPrinterConnections();
    i                        = 0;
    
    Пока i < oPrinters.Count() - 1 Цикл
//     Сообщить ("Порт " + oPrinters.Item(i+1));
глспПринтеров.ДобавитьЗначение(oPrinters.Item(i+1),СокрЛП(oPrinters.Item(i+1)));
        i = i + 2;
    КонецЦикла;
...
друкувало одразу на ура

А ОС какая была?
Список значения получил идентичный своего варианта но ничего не пошло...
тут как я читал проблема именно в том, что Напечатать() с параметром 1 отрабатывает нормально, а вот с параметром 0 не хочет
mister-x
Цитата
А ОС какая была?
пробував ще на ХР
kalyamov
Где я встречал статейку про печать и про реестр - что 1С записывает там принтер по умолчанию и при прямой печати все туда и идет, вот только не помню ветку.

HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Информационная База #1\Config\Moxel\Default
Kutuzov
Цитата(kalyamov @ 16.12.11, 14:21) необходимо зарегистрироваться для просмотра ссылки
Где я встречал статейку про печать и про реестр - что 1С записывает там принтер по умолчанию и при прямой печати все туда и идет, вот только не помню ветку.


Да есть такое в реестре в разделе карент юзер прописан пользователь... но проблема в том что там стоит сетевой принтер а он соответственно не идет вот по этому я как вариант решил прямо в параметр страницы указывать принтер... Что собственно тоже не дало результата
Kutuzov
За основу брал необходимо зарегистрироваться для просмотра ссылки
ivisor
Попробуйте метод таблицы "Записать(<ИмяФайла>,<ТипФайла>)" а в ИмяФайла прописать путь к сетевому принтеру и какое-нибудь имя файла. Правда я такое только с объектом Текст проделывал. С таблицами не пробовал.
Kutuzov
Цитата(ivisor @ 16.12.11, 21:50) необходимо зарегистрироваться для просмотра ссылки
Попробуйте метод таблицы "Записать(<ИмяФайла>,<ТипФайла>)" а в ИмяФайла прописать путь к сетевому принтеру и какое-нибудь имя файла. Правда я такое только с объектом Текст проделывал. С таблицами не пробовал.


интересный вариант, в понедельник попробую
Kutuzov
Цитата(ivisor @ 16.12.11, 21:50) необходимо зарегистрироваться для просмотра ссылки
Попробуйте метод таблицы "Записать(<ИмяФайла>,<ТипФайла>)" а в ИмяФайла прописать путь к сетевому принтеру и какое-нибудь имя файла. Правда я такое только с объектом Текст проделывал. С таблицами не пробовал.


Не проканало выдает "Доступ к файлу закрыт \\192.168.0.7\Имя принтера\Печать.mxl"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.