Как настроить разный набор печатных форм для пользователей в 1С:Комплексная автоматизация 2?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация IT и автоматизация бизнеса
← На главную

В практической работе с конфигурацией «1С:Комплексная автоматизация 2» (а также в соплатформенных решениях «1С:ERP Управление предприятием» и «1С:Управление торговлей 11») часто возникает задача разграничения видимости печатных форм. Типичный пример: для пользователей с полными правами по кнопке «Печать» доступны абсолютно все варианты, включая специализированные офисные формы (например, в формате Microsoft Word), а обычные менеджеры видят лишь ограниченный базовый набор документов.

В этой статье мы подробно разберем, почему разработчики фирмы «1С» закладывают такие ограничения в типовые конфигурации, как обойти их программным путем с помощью механизма расширений и как решить эту задачу исключительно штатными интерактивными средствами системы без программирования.

Выясняем причину: почему встроенные формы MS Word скрыты от менеджеров?

Прежде чем переходить к настройкам, важно понять логику работы платформы и прикладного решения. Формирование печатных форм в формате Microsoft Word (файлы формата DOCX) силами встроенной Библиотеки стандартных подсистем (БСП) — это ресурсоемкая операция. Особенно остро эта проблема проявляется при работе пользователей в терминальном режиме (RDP) или на сервере приложений. Генерация документов задействует тяжелые механизмы распаковки zip-архивов шаблонов на стороне сервера и инициализацию COM-объектов.

Если предоставить доступ к массовой печати договоров или актов в формате Word десяткам рядовых менеджеров одновременно, это неизбежно вызовет критическую нагрузку на аппаратные ресурсы сервера, что приведет к замедлению работы всей информационной базы. Именно поэтому разработчики «1С» на уровне программного кода жестко ограничивают видимость таких команд печати, проверяя наличие у текущего пользователя роли системного администратора или полных прав с помощью функции Пользователи.ЭтоПолноправныйПользователь().

Решение 1. Программный обход через расширение конфигурации (для разработчиков)

Если перед нами стоит задача дать доступ конкретной группе пользователей именно к стандартной встроенной печатной форме Microsoft Word (например, «Акт выполненных услуг (Microsoft Word)» в документе «Акт выполненных работ»), самым быстрым техническим решением будет использование механизма расширений.

Проанализируем ситуацию: команды печати регистрируются в модуле менеджера конкретного документа в экспортной процедуре ДобавитьКомандыПечати(КомандыПечати). Чтобы переопределить это поведение без изменения типовой конфигурации, выполним следующие шаги:

  1. Создадим новое расширение конфигурации и снимем флажок «Безопасный режим» (так как работа с файлами и внешними приложениями требует повышенных привилегий).
  2. Добавим в расширение документ, для которого настраивается печать (в нашем примере — АктВыполненныхРабот).
  3. Перенесем процедуру ДобавитьКомандыПечати в расширение с помощью аннотации &Перед.
  4. Напишем код, который принудительно добавляет команду печати Word для пользователей, у которых нет полных прав.

Рассмотрим пример программной реализации такого расширения:


&Перед("ДобавитьКомандыПечати")
Процедура Расш1_ДобавитьКомандыПечати(КомандыПечати)
    // Проверяем, если текущий пользователь не является полноправным администратором
    Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда
        // Принудительно регистрируем команду печати Акта в формате MS Word
        КомандаПечати = КомандыПечати.Добавить();
        КомандаПечати.Обработчик = "УправлениеПечатьюУТКлиент.ПечатьАктВыполненныхРаботMicrosoftWord";
        КомандаПечати.МенеджерПечати = "";
        КомандаПечати.Идентификатор = "АктMicrosoftWord";
        КомандаПечати.Представление = НСтр("ru = 'Акт выполненных работ (Microsoft Word)'");
        КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
        КомандаПечати.ТребуетсяРасширениеРаботыСФайлами = Истина;
    КонецЕсли;
КонецПроцедуры

Этот метод решает задачу мгновенно, однако он увеличивает технический долг. При очередном обновлении релиза «1С:Комплексная автоматизация» структура модуля менеджера или состав параметров процедуры ДобавитьКомандыПечати могут измениться, что потребует адаптации кода расширения.

Решение 2. Штатный механизм БСП: Внешние печатные формы и настройка «Быстрого доступа»

Чтобы избежать написания кода и сохранить полную обновляемость конфигурации, воспользуемся штатным и наиболее безопасным механизмом БСП — Дополнительными отчетами и обработками.

Разберем этот процесс по шагам:

  1. Подготовка внешней печатной формы (ВПФ): Необходимо выгрузить алгоритм формирования акта в формате Word во внешнюю обработку. Шаблон такой обработки легко подготовить на основе стандартной печатной формы.
  2. Регистрация в базе: Перейдем в раздел «НСИ и администрирование» — «Печатные формы, отчеты и обработки» — «Дополнительные отчеты и обработки». Нажмем кнопку «Добавить из файла» и загрузим созданную ВПФ, привязав её к документу «Акт выполненных работ».
  3. Настройка прав и видимости: В карточке зарегистрированной печатной формы перейдем к настройке размещения. В табличной части будет доступна колонка «Быстрый доступ». Нажав на неё, мы можем точечно указать конкретных пользователей или группы пользователей (например, «Отдел продаж» или «Менеджеры по продажам»), у которых эта форма должна отображаться. Для всех остальных пользователей команда останется скрытой.
  4. Отключение дублирующих команд: Чтобы у администраторов в меню «Печать» не двоились стандартная и внешняя печатные формы, мы можем отключить видимость стандартной формы. Для этого в разделе настройки печатных форм перейдем по ссылке «Подменю "Печать"», найдем наш документ и снимем флажок видимости со стандартной команды печати в Word.

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

Решение 3. Использование инструмента «Комплект документов с настройкой»

Если перед менеджерами стоит задача регулярной печати определенного индивидуального пакета документов (например, Акт выполненных работ + Счет-фактура + Договор в Word), в ERP-решениях предусмотрен мощный интерактивный инструмент.

Рассмотрим, как настроить работу с комплектами:

  1. В форме списка или в самом документе «Акт выполненных работ» нажмем кнопку «Печать» и выберем команду «Комплект документов с настройкой».
  2. В открывшемся интерактивном окне пользователь может самостоятельно (или с помощью администратора) отметить флажками именно те печатные формы, которые необходимы для его повседневной работы.
  3. Настройки комплекта автоматически сохраняются в базе данных индивидуально для каждого пользователя. В дальнейшем менеджеру больше не нужно выбирать формы из длинного списка — достаточно нажать кнопку «Комплект документов на принтер», и система автоматически сформирует индивидуально настроенный пакет документов.

Резюме и рекомендации

Подводя итог, можно сказать следующее: хотя написание программного кода в расширении (Решение 1) кажется наиболее простым программисту, в долгосрочной перспективе это создает дополнительные риски при поддержке системы. Перевод тяжелых или специфических печатных форм в разряд внешних обработок (ВПФ) с разграничением прав через «Быстрый доступ» (Решение 2) — это рекомендуемый и наиболее безопасный стандарт проектирования в экосистеме «1С».

← На главную