Как распечатать документ

Хочу немного прояснить ситуацию по последним нововведениям в системе печати документов конфигурации Простой учет. Надеюсь это как-то разъяснит, что и для чего нужно. Итак, пример: документ Подбор по прайс-листу, он находится в журнале Калькуляции, заставим его делать вывод печатной формы. Этот документ я выбрал как один из тех, который не имеет встроенной в конфигурацию поддержки печати и при нажатии на кнопку печать мы получим вот такое сообщение:

Объясню, что происходит при нажатии на кнопку “Печать”. Процедура в глобальном модуле проверяет справочник Параметры печати на наличие для данного вида документов настроенной формы печати. В исходной ситуации такой формы нет и выдается сообщение об ошибке. Теперь сделаем простую вещь – в конфигураторе создаем внешнюю обработку, сохраняем ее в каталоге \ExtForms\PrnForms, возвращаемся в “Параметры печати”, для документа “Подбор по прайс-листу” добавляем новую форму, вот в таком окне:

Кстати говоря, в поле “Каталог форм” виден полный путь к той папке, куда нужно было положить внешнюю обработку. Напомню, что обработка пока не содержит никакого кода, просто она должна быть. В открывшейся форме ставим курсор в поле “Обработка” и теперь либо вводим словами название обработки либо жмем F4 – откроется список обработок из каталога PrnForms. Я сделал обработку с названием “Обработка”, вот что получил при нажатии на F4:

Выбираем обработку, сохраняем свойства формы. Теперь можно попробовать в документе “Подбор” нажать на кнопку “Печать”, вот что увидим:

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

В конфигураторе редактируем обработку. В таблице обработки создаю три горизонтальные секции: “Шапка”, “Строчка”, “Итого”

В модуль обработки пишем такой код:

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

Например, проставил номер и дату документа:

И вот что получаю при нажатии на “Печать”:

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