Отправляет email-рассылки с помощью сервиса Sendsay

Школа 1С

  Все выпуски  

Школа 1С - Практика программирования


Тема внешних форм оказалась интересна многим, мы получили больше десятка писем.

Сегодня Александр продолжит раскрывать эту тему.

Внешняя печатная форма и групповая обработка печати.


Часто, для печати большого количества документов, удобно пользоваться Групповой обработкой справочников и документов. Например для печати Актов сверки взаиморасчетов в конце месяца.

Однако при выводе на печать с помощью групповой обработки внешних печатных форм, вас может подстерегать один неприятный момент.

А выражается он в том, что при попытке вывести все документы на печать сразу на принтер, молча, без предварительного просмотра, вы получаете вал открытых в программе печатных форм документа. А в это время на принтере абсолютная тишина.

В своей статье Как создать внешнюю печатную форму из встроенной я говорил о том, что необходимо обязательно функцию Печать заканчивать возвратом внешней печатной формы, а не встроенной процедурой вывода печатной формы, как в случае тестирования.

Не правильно
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ДокументОбъект));

Правильно
Возврат ТабДокумент;

Внешняя печатная форма

На днях имел удовольствие убедиться в пагубном влиянии этой ошибки.

Как обычно начал копать сразу код Групповой обработки справочников и документов, чтобы выяснить “откуда ноги растут”.

В групповой обработке в цикле для каждого документа вызывается функция Печать() из модуля документа, а результат передается в процедуру НапечататьДокумент() групповой обработки.

Внешняя печатная форма

Так вот функция Печать из модуля документа возвращала в Групповую обработку значение Неопределено вместо сформированного экземпляра печатного документа. Полез в код внешней печатной формы и увидел там картину, описанную выше

Вместо строки возврата экземпляра печатного документа, которая у меня была закомментирована работала стандартная процедура вывода экземпляра документа на печать УниверсальныеМеханизмы.НапечататьДокумент()

Естественно в процедуре печати Групповой обработки справочников и документов стоит проверка входящего параметра на Неопределено и, не получив печатной формы документа, возвращает из процедуры без исполнения.

Не делайте таких ошибок, а если вдруг такая ошибка у вас возникла, то проверьте в первую очередь Функцию печати внешней печатной формы.

P.S.

Специально для тех кто серьезно интересуется созданием внешних печатных форм, я записал видео-курс "Как создать внешнюю печатную форму из встроенной за 5 минут".

Да, это НЕ опечатка! Именно за 5 минут.

Кроме того, из этого видео-курса вы узнаете:

- Какие бывают варианты формирования выходной формы и как от этого зависит набор переносимых процедур;

- Как правильно скорректировать процедуры и функции после переноса во внешнюю форму;

- Как найти правильные процедуры для создания внешней печатной формы;

- Почему процедура Печать() из документа не работает во внешней форме;

- Как создать универсальную заготовку для создания внешней формы;

- Как создать внешнюю печатную форму из встроенной за 5 минут;

- Как не перепутать макеты при формировании внешней печатной формы;

- Как подключть внешнюю форму в три клика;

- Как сделать из одной печатной формы несколько с помощью дополнительных параметров;

- Как для различных организаций использовать уникальные печатные формы под одной кнопкой

Посмотрите видеоролик об этом курсе "Как создать внешнюю печатную форму из встроенной за 5 минут".

В избранное