Содержание:
При разработке или настройке корпоративного документооборота часто возникает задача: реализовать возможность вывода документа на печать с вызовом стандартного окна выбора принтера. Это может быть необходимо для согласования, регистрации, архивации или других процедур, связанных с физическим экземпляром документа.
В данной статье рассмотрим, как из приложения Документооборот (например, 1С: Документооборот, либо другое корпоративное решение) можно инициировать вызов стандартного окна печати, в котором пользователь сможет выбрать принтер, задать параметры и отправить документ на печать.
1. Способы вызова окна печати в программном продукте системы 1С
1.1. Через встроенные функции платформы (1С: Предприятие)
Если вы используете систему 1С: Документооборот, то самый простой способ — воспользоваться стандартным механизмом печати отчётов или обработок. При этом окно выбора принтера можно вызвать так:
ПараметрыПечати = Новый ПараметрыПечати(); ПараметрыПечати.ВыводНаПринтер = Истина; ПараметрыПечати.ПоказатьДиалогВыбораПринтера = Истина; ПечатнаяФорма = Отчет.Сформировать(); ПечатнаяФорма.Вывести(ПараметрыПечати);
Этот код позволяет сформировать печатную форму и открыть системное окно выбора принтера. Пользователь сможет выбрать нужное устройство и параметры печати.
2. Вызов печати через внешние приложения и системные вызовы в программном решении 1С
Если ваше приложение не поддерживает напрямую вывод на печать, или требуется более тонкая настройка, вы можете:
2.1. Сохранить документ во временный файл (PDF, DOCX и т.п.)
Затем использовать системные вызовы для открытия окна печати:
Windows (на C#, VB.NET, PowerShell и т.п.):
Start-Process -FilePath “C:\Документы\Отчет.pdf” -Verb Print
или через C#:
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); psi.FileName = @”C:\Документы\Отчет.pdf”; psi.Verb = “Print”; psi.CreateNoWindow = true; System.Diagnostics.Process.Start(psi);
Это откроет стандартный диалог печати Windows.
3. Использование COM-компонент в 1С или других системах
Можно подключить внешние компоненты для управления печатью. Например, Microsoft Word:
ДокументWord = Новый COMОбъект(“Word.Application”); Документ = ДокументWord.Documents.Open(“C:\Документы\Файл.docx”); ДокументWord.Visible = Ложь; ДокументWord.Dialogs.Item(88).Show(); // 88 — это диалог Print
Этот подход даёт больше контроля над печатью, но требует установки соответствующих приложений на компьютере пользователя.
Советы по реализации:
Проверьте права доступа: убедитесь, что у пользователя есть доступ к печати и нужным принтерам.
Кросс-браузерная поддержка: если работа идёт через браузер (например, в веб-клиенте), возможности могут быть ограничены. Печать из браузера часто требует сохранения документа и открытия его локально.
Универсальность: реализуйте универсальный механизм — сначала сохраняйте документ, затем вызывайте печать через ОС, тогда это будет работать с любым форматом.
Заключение:
Вызов окна выбора принтера из приложения Документооборот возможен несколькими способами: через встроенные механизмы платформы, системные вызовы операционной системы или с помощью внешних компонентов. Выбор метода зависит от архитектуры вашего решения, формата документа и требований к функциональности. Главное — обеспечить удобство и гибкость для конечного пользователя.
Если вы работаете в 1С или другом BPM-средстве, всегда ищите стандартные методы — они надёжнее, лучше поддерживаются и проще в сопровождении.