Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Печать без открытия формы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
bereznoy
Необходимо что б документы из списка распечатывались сразу на принтер
Процедура ПечатьРН(ПечатьВФайл=0)                      
    ПечКопий=1;

    ГлПринтер="";
    Если СпПринтеры .РазмерСписка()>0 Тогда
        ГлПринтер=СпПринтеры.ПолучитьЗначение(СпПринтеры.ТекущаяСтрока());    
    КонецЕсли;
    
    СпДок=СоздатьОбъект("СписокЗначений");
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
        Док=СоздатьОбъект("Документ");
        Если Док.НайтиДокумент(Докум)=0 Тогда
            Продолжить;
        КонецЕсли;
        СпДок.ДобавитьЗначение(Док.ТекущийДокумент(),""+Док.ДатаДок+" от "+Док.НомерДок+" = "+Формат(Док.Итог("СуммаСНДС"),"Ч19.2")+" "+Док.Контрагент);
        СпДок.Пометка(СпДок.РазмерСписка(),1)
    КонецЦикла;
    Зн = ПолучитьПустоеЗначение();
    Если СпДок.ОтметитьЗначения(Зн, "Выберите документы для печати") = 0 Тогда
        Возврат;                                
    КонецЕсли;    
    ГлТаблицаПечати.Очистить();
    Для Сч = 1 По СпДок.РазмерСписка() Цикл
        Если СпДок.Пометка(Сч) = 0 Тогда
            Продолжить;
        КонецЕсли;  
        ТекДок=СпДок.ПолучитьЗначение(Сч);
        ОткрытьФормуМодально(ТекДок,"Печать"); //Тут каждый доку открывается, но как на принтер сразу   без открытия его отправлять
        
КонецПроцедуры
sava1
При открытии формы передаем список документов.
В форме документа - список будет в Форма.Параметр.
Далее Если Форма.параметр НеПустой - печатаем и СтатусВозврата(0); Возврат.
Недостаток - нужно переписывать модуль формы.
Можно через Формекс - ВыполнитьПроцедуру контекста
bereznoy
Что не понял, необходимо дописать в документе который необходимо печатать? Я думал просто есть команда которая при открытии посылает на принтер и все
Ardi
Цитата(bereznoy @ 03.07.12, 12:56) необходимо зарегистрироваться для просмотра ссылки
Что не понял, необходимо дописать в документе который необходимо печатать? Я думал просто есть команда которая при открытии посылает на принтер и все

Переходите на российские конфигурации. Там комманда есть.
bereznoy
Цитата(Ardi @ 03.07.12, 13:10) необходимо зарегистрироваться для просмотра ссылки
Переходите на российские конфигурации. Там комманда есть.

В открывающемся расходние есть кнопка ПЕЧАТЬ И ЗАКРЫТЬ, быть может можно будет выполнить процедуру при открытии
документа, процедура в документе называется "Печать1()" у кнопки идентификатор "кнПечать1"
как то так
ОткрытьФорму(ТекДок, ????);

с параметром запускавшим сразу процедурку "Печать1()"
sava1
Чтобы запустить сразу процедурку Печать, надо ее вызвать в процедурке ПриОткрытии и после сего действа вызвать Возврат,установив перед этим СтатусВозврата в 0.

А та фигня,обозначенная кучей ???? - и есть параметр, который в ПРиОткрытии будет доступно как Форма.Параметр
g789
Цитата(sava1 @ 03.07.12, 8:09) необходимо зарегистрироваться для просмотра ссылки
Можно через Формекс - ВыполнитьПроцедуру контекста

скорее через turbobl.dll (ну или 1с++)
когда-то давно выкладывал свою обработку на конкурирующем форуме crazy.gif
alex1c
В комплексной конфигурации у расходной (товары) это реализовано. посмотрите как там в проц. ПриОткрытии.
sava1
Цитата(g789 @ 03.07.12, 14:51) необходимо зарегистрироваться для просмотра ссылки
скорее через turbobl.dll (ну или 1с++)

Почему СКОРЕЕ ? Чем формекс не угодил - отрабатывает без проблем
g789
Цитата(sava1 @ 03.07.12, 15:44) необходимо зарегистрироваться для просмотра ссылки
Чем формекс не угодил

Если уже используется в конфигурации - то ради бога.

turbobl - на мой взгля просто легче и для клиентского компа и для использования программистом (если бы человек знал о функционале 1с++, formex в том числе, он бы наверное не спрашивал как сделать)

bereznoy
Господа, всем спасибо за подсказки, сделал так, в процедуре ПриОткрытии в документе который надо распечатать
добавил такой код
Если Форма.Параметр="Печать" тогда
    Печать1(1);
    СтатусВозврата(0);
  КонецЕсли;

MATEVI
Цитата(bereznoy @ 03.07.12, 22:25) необходимо зарегистрироваться для просмотра ссылки
Господа, всем спасибо за подсказки

"Так жеш не жмитесь" smile.gif нажмите на кнопки, тому кто помог.
Ardi
А где же
Возврат;
bereznoy
Палец понажимал, извиняюсь туплю, а то температура 38, приболел немного 47046430.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.