Имя: Пароль:
1C
 
Печать из журнала документов
Ø
0 Иппонец
 
19.12.06
11:53
Есть журнал документов,у него кнопка печать.
Задача-Вывести на печать документ.У документа есть Процедура Печать()
Помогите плиз.
Вот начало кода в модуле журнала
Процедура ВыводНаПечать()
  ТекДок = ТекущийДокумент.ТекущийДокумент();
        //Как здесь обратиться к процедуре Печать() дока?
 
КонецПроцедуры // ВыводНаПечать
1 Макс 1С
 
19.12.06
11:56
а что поиск отменили?
2 Uho
 
19.12.06
11:57
Процедура ВыводНаПечать()
  ОткрытьФорму(ТекущийДокумент(),"Печать");
КонецПроцедуры // ВыводНаПечать
  
В ПриОткрытии() документа:
Если Форма.Параметр="Печать" Тогда
  Печать();
  СтатусВозврата(0);
  Возврат;
КонецЕсли;
3 Иппонец
 
19.12.06
12:06
(2) Большой пасиб))
4 Ученый
 
19.12.06
12:19
Рекомендации от Uho не являются достаточно професииональными и нуждаются в дополнениях и уточнениях.
Применительно к посту 2 желательно также добавить следующий код.
В процедуре Печать() для каждого документа журнала:
Если Форма.Параметр="Печать" Тогда
Таб.Напечатать(0);
Иначе
Таб.Показать();
КонецЕсли;
Указанный код избавит пользователя от излишних телодвижений.
Кроме того, если документ имеет несколько печатных форм, требуется сначала выдать список печатных форм для выбора, а затем установить переменную НомерТекущейФормы. Иногда также требуется выбрать процедуру печати, поскольку их может быть несколько.
С учетом изложенного, в качестве параметра при открытии формы правильнее передавать список значений (команду печати и номер текущей формы).
5 Uho
 
19.12.06
12:24
(4) "Рекомендации от Uho не являются достаточно професииональными и нуждаются в дополнениях и уточнениях." - это с чего это такая уверенность???
6 Uho
 
19.12.06
12:27
+5
"Таб.Напечатать(0);"
почему ты уверен, что пользователь не захочет посмотреть документ перед печатью?
"а затем установить переменную НомерТекущейФормы"
с чего ты взял, что у автора есть такая переменная?
7 Макс 1С
 
19.12.06
12:34
(4) НомерТекущейФормы - определяется в ПРиОоткрытии()
8 Ученый
 
19.12.06
12:37
7.С учетом результата выбора формы пользователем это выбор значение может нуждаться в переопределении.
(6) Речь идет о типовых конфигурациях. Для самописных могут быть другие механизмы выбора печатных форм, которые тоже нужно учесть при печати из журнала с передачей параметров.
5.Сужу по глубине ответов на форуме и другим признакам.
9 Uho
 
19.12.06
12:42
(8) "Речь идет о типовых конфигурациях" ты видимо сам с собой разговариваешь? Автор ни слова про типовую не сказал.
"Сужу по глубине ответов на форуме и другим признакам" - ок, судите дальше
10 Макс 1С
 
19.12.06
13:02
(8) ну так и где же твой ответ на (0)??
11 smaharbA
 
19.12.06
13:10
Напечатаю без изменения модуля формы, без ВК
12 Ученый
 
19.12.06
13:17
10. А разве (4) не ответ???
Но можно сделать круче. Я рекомендую универсальную вещь, не требующую изменения модулей журналов и документов. Будет работать в любых журналах и печатать любые документы, а также и сама по себе(не из журналов).
Вместо кнопки на форме журнала- горячая клавиша, нажатие которой перехватывает FormEx.
Вместо копания в модулях- внешняя обработка, в которую передается парамером текущий документ журнала.
Из этой же обработки без открытия формы организуется печать документа (при необходимости- с выдачей диалога выбора печатной формы, если их обнаружено несколько).
В качестве обработки можно использовать следующую http://strastin.narod.ru/prod61.htm
13 Ученый
 
19.12.06
13:19
11.Можно, путем эмуляции нажатий кнопок клавиатуры.
14 Макс 1С
 
19.12.06
13:32
(12) по мне нет... а если у дока нет переменой " НомерТекущейФормы" ??
15 Uho
 
19.12.06
13:33
(12)
(4) - ответ, только не на вопрос (0)
на вопрос (0) ответ в (2)
16 smaharbA
 
19.12.06
13:56
(13) Нет, абсолютно штатно...
(12) не умничай...
17 smaharbA
 
19.12.06
13:58
Кстати в (12) полный абзац, а не метода...
18 Одинэсник
 
19.12.06
14:01
(17) насколько мне известно, мысль изложенная в 11, изречена не из-за денежного эквивалента, а для затравки зрителей и спортивного интереса, ....короче хочется ужо код посмотреть и положить себе в запасник :)
19 Бит
 
19.12.06
14:04
(18)интерактивно
20 smaharbA
 
19.12.06
14:19
(18) метода не моя, а Рупора...(не всегда и не везде проканает, хотя если покумекать можно и сразу печать устроить (это реально) )
...
Перем Конт;
Процедура Задержка()
  Форма.ОбработкаОжидания("",0);
  конт.Форма.ОбработкаОжидания("",0);
  конт.Форма.Закрыть(0);
КонецПроцедуры // Задержка
//*******************************************
Процедура Сформировать()
  Док=СоздатьОбъект("Документ.СчетФактура");
  Док.ВыбратьДокументы('07.11.2006','07.11.2006');
  Если (Док.ПолучитьДокумент() = 1) Тогда
    Форма.ОбработкаОжидания("Задержка",2);
    ОткрытьФорму(Док.ТекущийДокумент(),конт,1);
    конт.Форма.ОбработкаОжидания("Печать",1);
  КонецЕсли;
КонецПроцедуры
21 Uho
 
19.12.06
14:27
(20) прикольно :)
22 Uho
 
19.12.06
14:28
+21 т.е вызов ЛЮБОЙ процедуры через обработку ожидания
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.