В современных конфигурациях 1С (таких как «1С:ERP», «Управление торговлей 11», «Комплексная автоматизация 2» или «Медицина. Поликлиника»), построенных на базе Библиотеки стандартных подсистем (БСП), управление кнопкой «Печать» реализовано достаточно гибко. Часто возникает ситуация, когда стандартный список печатных форм перегружен документами, которые не используются в организации. Рассмотрим подробно все способы очистки и настройки этого подменю.
Если печатные формы мешают конкретному сотруднику, мы можем воспользоваться механизмом изменения формы, который доступен практически в любом объекте системы. Разберем, как это сделать:
Важный нюанс: этот метод скрывает формы только для текущего пользователя. Если необходимо применить эти настройки для всех сотрудников, администратор может воспользоваться механизмом «Копирование настроек пользователей» в разделе администрирования. Однако, если пользователей много, этот путь может быть трудозатратным.
Выясним, как управлять видимостью печатных форм глобально для всей информационной базы. В БСП предусмотрен специальный инструмент, который позволяет настраивать подменю без программирования.
Проанализируем последовательность действий (на примере ERP и схожих конфигураций):
Это наиболее правильный и эффективный способ для администратора системы, так как изменения применяются сразу ко всем пользователям.
Если печатная форма, которую вы хотите убрать, не является встроенной (типовой), а добавлена как внешняя, управление ею происходит в другом месте. Рассмотрим этот вариант:
Зайдем в раздел «Дополнительные отчеты и обработки». В списке найдем нужную печатную форму. Проанализируем её настройки: в поле «Публикация» можно выбрать статус «Выключена» или «Доступна только для отладки». В этом случае кнопка исчезнет из интерфейса пользователей, но сама обработка останется в базе. При необходимости разработки собственного замещающего варианта пригодится руководство по созданию внешних печатных форм на основе типовых.
Если нам необходимо жестко ограничить список команд печати на уровне программного кода (например, при разработке собственной конфигурации или расширения), мы должны обратиться к модулю менеджера объекта. Выясним причину, почему формы появляются в кнопке: за это отвечает экспортная процедура ДобавитьКомандыПечати.
Рассмотрим пример того, как это выглядит в коде 1С:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Добавление типовой команды печати
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "МедицинскоеЗаключение";
КомандаПечати.Представление = НСтр("ru = 'Медицинское заключение'");
КомандаПечати.ПроверкаПроведенностиПередПечатью = Истина;
КонецПроцедуры
Для того чтобы скрыть встроенную форму через расширение, мы можем создать метод &После для этой процедуры и программно удалить ненужную строку из таблицы КомандыПечати:
&После("ДобавитьКомандыПечати")
Процедура Расш_ДобавитьКомандыПечати(КомандыПечати)
// Удаляем команду по её идентификатору
СтрокаКоманды = КомандыПечати.Найти("ИдентификаторНужнойКоманды", "Идентификатор");
Если СтрокаКоманды <> Неопределено Тогда
КомандыПечати.Удалить(СтрокаКоманды);
КонецЕсли;
КонецПроцедуры
Иногда печатная форма не убирается стандартными методами или, наоборот, не появляется. Проанализируем дополнительные причины:
Команда в метаданных), она не отобразится./ClearCache.ДобавитьКомандыПечати за это отвечают параметры размещения.Таким образом, мы разобрали комплексный подход к управлению кнопкой «Печать». Начиная от простых пользовательских настроек «под себя» и заканчивая глубоким программным управлением через расширения конфигурации.