1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Проблема с печатью из 1С

Тема в разделе "Базы данных и администрирование", создана пользователем Vladimir Malyk, 22 июл 2006.

Статус темы:
Закрыта.
  1. Vladimir Malyk

    Vladimir Malyk Гость

    Репутация:
    0
    Принтер HP-LaserJet_2200 расшарен при помощи CUPS на машине под управлением Debian.

    Этот принтер установлен на машине под управлением Windows 2003 как сетевой. Доступ к принтеру осуществляется по IPP.

    Пробные страницы из-под CUPS и Windows 2003 печатаются нормально.

    Возникает проблема с печатью расходных накладных в программе "1:С Предприятие 7.7 для SQL, Оперативный учет" (7.70.020) , которая установлена на машине с Windows2003.
    Особенность печати расходных накладных - они отправляются на печать сразу, без отображения на экране эскиза сформированного документа и диалогового окна параметров печати документа.

    Документы, в которых эскиз формируется и доступно окно параметров печати документа (пункт меню Файл-Печать), распечатываются нормально.

    Подскажите, как решить проблему с печатью расходных накладных.
     
  2. VasilyKushnir

    VasilyKushnir Гость

    Репутация:
    0
    Это проблема быстрой печати на хьюлеты. У меня подобная мерзость также и с НР1200. Пока толкового лечения не нашел. Юзаю следующее: перед печатью сношу ветку реестра Moxel по пути:
    HKEY_СURRENT_USER - Software - 1C - 1Cv7 - 7.7 - V7 - [Пользователь] - Moxel. Вернее дал юзерам возможность самим сносить эту ветку (в принципе можно похырить всю ветку [Пользователь] - результат тот же). Пробовал и дрова обновлять и с установками игрался - не хочет эта сволочь быстро печатать... Хотя НР1160 пашет как часики.
     
  3. Vladimir Malyk

    Vladimir Malyk Гость

    Репутация:
    0
    Спасибо за совет! Решение радикальное, но действительно помогает. Если найду достойную альтернативу - дам знать :).
     
  4. Vladimir Malyk

    Vladimir Malyk Гость

    Репутация:
    0
    Вопрос по поводу ветки реестра, которую надо сносить.

    Было предложено сносить ветку:
    HKEY_СURRENT_USER - Software - 1C - 1Cv7 - 7.7 - V7 - [Пользователь] - Moxel
    У меня ветка имеет вид HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\НазваниеБазы\V7\ИмяПользователя\Moxel

    То есть присутствует не только имя пользователя но и название базы (то, которое прописано в окне запуска 1С).
    Хочу дописать в конфигурацию автоматическое удаление этого ключа. Средставми 1С могу получить ИмяПользователя(). Не могу получить Название Базы.

    Как организовать автоматическое удаление ветки перед печатью?

    Еще. Если верить http://technet2.microsoft.com/WindowsServe...3.mspx?mfr=true, то проблему можно решить, если установить клиентские опции Internet Explorer на "ниже среднего" или "низкий". Тогда Windows будет выполнять "RPC Printer Connection Through Web Browser" (RPC "true-connect" printer connection) вместо "HTTP Printer Connection Through Web Browser".
    У меня на резервном Windows 2003 сработало, на основном (рабочем) - нет.
     
  5. VasilyKushnir

    VasilyKushnir Гость

    Репутация:
    0
    Это я ошибся у меня тоже присутствует имя базы. И где-то у меня завалялось решение, как определить имена подключеных баз. На вскидку уже не помню, но ежели найду - скину на мыло (надеюсь адрес у тебя открыт).

    А вот это иентересно. Буду пробовать.
     
  6. Vladimir Malyk

    Vladimir Malyk Гость

    Репутация:
    0
    Спасибо за беспокойство :).
    E-mail, как оказалось, у меня был закрыт. Открыл.
    На всякий случай e-mail: vladimir.malyk@gmail.com, ICQ 190147637.
     
  7. VasilyKushnir

    VasilyKushnir Гость

    Репутация:
    0
    Вот ссылочка
    http://www.sinor.ru/~my1c/knowhow/getbases.html
    Два варианта получения списка баз.
     
  8. Vladimir Malyk

    Vladimir Malyk Гость

    Репутация:
    0
    Спасибо :). Выглядит обнадеживающе.
    Буду пробовать!
     
  9. VasilyKushnir

    VasilyKushnir Гость

    Репутация:
    0
    Если что получится - черкни на мыло.
     
  10. VasilyKushnir

    VasilyKushnir Гость

    Репутация:
    0
    Владимир, ёханый бабай, только сейчас сообразил прочитать твои данные - оказывается Земляки! Только мои Черкассы чуть севернее. Во, блин мы даем! А пишу собственно вот зачем: проблему печати ты решил. Это хорошо. А для других участников, как думаешь интересно будет как? Чего уж там, не жмись, давай выкладывай решение на общак, тем более, что за него стыдно не будет (по крайней мере, на многих форумах я пока ничего путного по этой теме не находил).
    ДЛЯ ДРУГИХ УЧАСТНИКОВ ФОРУМА: ребята, Владимир действительно сделал нечно стоящее - можно применять. Но если кто предложит более изящное решение, или обяснит мне, тупому, почему слетает реестр - милости просим. А пока, за неимением других вариантов (поверьте на слово - на очень многих форумах я подымал этот вопросс) этот вариант имеет одно неоспоримое преимущество - он таки РАБОТАЕТ!
     
  11. Vladimir Malyk

    Vladimir Malyk Гость

    Репутация:
    0
    Да, земляки ;). На общак выложить действительно стоит.
    Вот решение проблемы:

    //Сохранение названий баз
    Ключ="HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles";
    ИмяКаталога=СокрЛП(КаталогПользователя());
    ИмяБазы=СокрЛП(каталогИБ());
    Если прав(ИмяКаталога,1)<>"\" Тогда ИмяКаталога=ИмяКаталога+"\" КонецЕсли;
    Если прав(ИмяБазы,1)<>"\" Тогда ИмяБазы=ИмяБазы+"\" КонецЕсли;
    ИмяБазыСтр=Симв(34)+СтрЗаменить(ИмяБазы,"\","\\")+Симв(34);
    ИмяФ=ИмяПользователя()+".reg";
    КомандаСистемы("Regedit /ea "+Симв(34)+ИмяКаталога+ИмяФ+Симв(34)+" "+Симв(34)+Ключ+Симв(34));
    Текст=СоздатьОбъект("Текст");
    Текст.КодоваяСтраница(0);
    Текст.Открыть(ИмяКаталога+ИмяФ);

    //Поиск названия текущей базы в созданном файле с названиями баз
    Стр="";
    Для сч=1 по Текст.КоличествоСтрок() Цикл
    Стр=СокрЛП(Текст.ПолучитьСтроку(сч));
    Если Найти(Стр,ИмяБазыСтр)<>0 Тогда
    прервать;
    КонецЕсли;
    КонецЦикла;

    //Выборка названия базы
    Стр = СтрЗаменить(Сред(Стр,Найти(Стр,"=")+2,СтрДлина(Стр)-Найти(Стр,"=")-2),"\","");

    //Удаление ключа реестра
    РеестрКлюч = СоздатьОбъект("Текст");
    РеестрКлюч.ДобавитьСтроку("REGEDIT4");
    РеестрКлюч.ДобавитьСтроку("[HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\"+Стр+"\V7\"+ИмяПользователя()+"\Moxel\Default]");
    РеестрКлюч.ДобавитьСтроку(Симв("34")+"DefaultPrinter"+Симв("34")+" =-");
    РеестрКлюч.Записать(ИмяКаталога+ИмяПользователя()+".reg");
    РеестрКлюч = "";
    КомандаСистемы("regedit.exe -s "+ИмяКаталога+ИмяПользователя()+".reg");
    КомандаСистемы("del "+ИмяКаталога+ИмяПользователя()+".reg");

    Для определения имени базы Использовались материалы с http://www.sinor.ru/~my1c/knowhow/getbases.html.

    Предложеное решение реализует следующее: удаляет в реестре упоминание о текущем принтере, сделанное 1С. В момент вызова Напечатать(0) 1С обращается в реестр за названием принтера, естественно его там не находит и иницирует запрос к Windows, которая в ответ выполняет "HTTP Printer Connection Through Web Browser".
    Принтеры, доступ к которым осуществляется по IPP создаются Windows по запросу на время печати, после чего удаляются.
    Вероятно, 1С рассчитана на работу с "RPC Printer Connection" и не учитывает всех особенностей работы "HTTP Printer Connection Through Web Browser".

    Возможная альтернатива - использование Напечатать(1). В этом режиме 1С выдаст оконо параметров печати и, естественно, выполнит нужный запрос.

    Вот, в общем то и все ;).
     
  12. Romas

    Romas Гость

    Репутация:
    0
    У меня эта проблема (зависания 1Ски при массовой печати из под винды 2000 или XP, иногда и вообще не отправлялось ничего на печать...) с принтером HP5100tn решилась бональным скачиванием нового драйвера с сайта hp. Оказалось, что у меня стоит не самая последняя версия этого драйвера. После обновления в свойствах поставил "начинать печать после помещения в очередь всего задания", и поставил крыжик "первыми печатать документы из очереди". А то доки шли на печать в разноброс... и еще запретил двусторонний обмен данными (правда не знаю надо это или нет, но на всяк случай отключил...) Хоть драйвер был 2004 года, но он все равно помог!
    Над этой проблемой бился уже очень долго.... а оказалось все так просто!
     
  13. VasilyKushnir

    VasilyKushnir Гость

    Репутация:
    0
    В том-то и дело, что обновление драйверов ничего не дало. Кстати, по адресу http://infostart.ru/projects/index.php?id=397&ref=440 еще один вариант чистки реестра, если не жалко - перед скачиванием (или после) - проголосуйте рейтингом. Именно этот вариант отработал у меня уже неделю и никаких фокусов.
     
  14. Vladimir Malyk

    Vladimir Malyk Гость

    Репутация:
    0
    Нашлось замечательное решение проблемы.
    Ветку реестра удалять не нужно. Вообще делать ничего не нужно.
    Достаточно, чтобы имя принтера не было больше 13-ти символов.
    То есть, на принтере с именем \\http://172.16.48.113:631\HP-LaserJet_2200 проблемы с быстрой печатью обязательно будут.
    Если этому же принтеру дать имя \\http://172.16.48.113:631\Prn, то быстрая печать работает без сучка и задоринки.

    Кроме того замечено следующее:
    1) Принтер с длинным именем откликается на Напечатать(1) в несколько раз дольше, чем принтер с коротким.
    3) У принтера с длинным именем висят отпечатанные задания, у принтера с коротким нет.
    В обоих случаях был один и тот-же принтер, но расшаренный при помощи CUPS по IPP под разными именами.

    Вот такие странности при печати из 1С (запущенной в терминале windows 2003) на принтеры, доступ к которым осуществляется по IPP.
    Лично я в шоке :).
    По материалам http://www.abelov.com/forum/f.php?nk=3002.

    Еще, как варимант, перед каждой печатью можно делать:
    ПараметрыСтраницы(...,1); - То есть вместо принтера указываем 1.
    В этом случае длина имени принтера роли не играет. Быстрая печать тоже начинает нормально работать.
     
  15. VasilyKushnir

    VasilyKushnir Гость

    Репутация:
    0
    Ну ни фига себе! Вот это номера 1С откалывает! Спасибо, попробую поигратся с именами.
     
Загрузка...
Похожие Темы - Проблема печатью из
  1. bb-8
    Ответов:
    0
    Просмотров:
    0
  2. Apton
    Ответов:
    0
    Просмотров:
    38
  3. Anonimyc
    Ответов:
    0
    Просмотров:
    26
  4. VikTor1990
    Ответов:
    3
    Просмотров:
    81
  5. erlan1749
    Ответов:
    0
    Просмотров:
    39
Статус темы:
Закрыта.

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