Изначально PrintWizard не задумывался исключительно как конструктор. Безусловно, первая идея была именно в том, как сделать разработку печатных форм не такой грустной. Но потом стало ясно, что вокруг тоже много проблем, связанных напрямую или косвенно. Об одной такой проблеме мы и поговорим.
Немного о командах в БСП
Но сначала начнем с того, как получается подменю "Печать", которое вы обычно видите над формой списка или в форме объекта (документа). Бывает даже так, что там просто кнопка единственной печатной формы, что, кстати, весьма удобно. Так вот, для того, чтобы добавить данные команды, программисту необходимо их объявить. В буквальном смысле - ручками написать код. И выглядит этот код как-то так (см. в примере)
Тут необходимо немного внести пояснение - что собственно происходит в некоторых частях кода
- Начнем с важной части - установка идентификатора.
КомандаПечати.Идентификатор = "Счет"
В этой части указанно, какую именно печатную форму выводить. По сути, по идентификатору далее и выполняется переадресация на различные методы вывода печатной формы. Идентификаторы могут быть одинаковыми у разных команд, при этом без различных дополнительных параметров будут выведены идентичные печатные формы. А еще идентификатор может быть указан через запятую, в таком случае это пакетная печать. То есть, команда выведет сразу несколько печатных форм. Например:
КомандаПечати.Идентификатор = "Счет,Заказ,Заказ"
Здесь указано, что необходимо вывести один экземпляр печатной формы "Счет" и два экземпляра "Заказ".
- Смотрим далее и видим, что команда может проверять проведение документа перед печатью. Полезная возможность, следует учитывать. Например, печатная форма может содержать информацию из движений или по результату движений, поэтому ее печать без проведения нецелесообразна.
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина
- Еще команде можно установить картинку. Выглядит красиво и в целом приятно
КомандаПечати.Картинка = БиблиотекаКартинок.ПечатьСразу
- Команды упорядочиваются в списке согласно свойству "Порядок". По умолчанию, он равен 50. Может принимать значение от 1 до 100.
КомандаПечати.Порядок = 75
- Команда печати может не выводить печатную форму, а отправлять сразу на принтер. Возможность, может, и не самая востребованная, но кому-то пригодится.
КомандаПечати.СразуНаПринтер = Истина
- Возможно, вы не знали, но можно сделать так, чтобы печатная форма была видна только в форме списка (или объекта).
КомандаПечати.СписокФорм = "ФормаДокумента,ФормаСписка"
- Продолжаем. Команда печати может при выполнении самостоятельно сохранить печатную форму в нужный формат и вывести уже в нем. Например, сразу в PDF. Не показывая в стандартном окне 1С
КомандаПечати.ФорматСохранения = ТипФайлаТабличногоДокумента.PDF
Безусловно, это не все настройки, которые можно указать при задании команд печати. Однако, хочется спросить, а зачем вам это знать, если повлиять на это можно только программно? Сходить к программистам, конечно, можно, но что, если это команды печати типовой программы? Будем просить у 1С поменять что-то в меню?
И еще
- есть возможность указать "группу" команд печати, то есть они будут разделены линиями внутри подменю. При помощи настроек можно команды растащить по трем группам: Важное, Обычное и См. также.
- есть возможность поместить команду печати так, что она будет видна только через подменю "Еще" - "Печать". Например: устаревшая печатная форма, которую лучше бы спрятать, но нет-нет, а кому-то нужна
И это все возможности, которые даются подсистемой "Подключаемые команды". Но повлиять на них при указании команд печати невозможно, ну или скажем так - никто так заморачиваться не станет.
Что, кстати, странно, ведь это "юзабилити"...
Но ведь в БСП можно...
Через БСП вы можете скрыть команды печати. Такая возможность есть. Она находится в по адресу "Администрирование" - "Печатные формы, отчеты и обработки" - "Подменю "Печать"" (гиперссылка на форме).
Там вы можете полностью отключить команду печати, и она не будет выведена в меню. Но на этом и все. Повлиять ни на что больше из режима 1С: Предприятие, чтобы сделать жизнь в программе удобнее, не выйдет. Так что увы.
Infostart PrintWizard в помощь
Новый функционал в расширении Infostart PrintWizard создан специально для того, чтобы управлять подменю "Печать" из пользовательского режима. При этом, PrintWizard дает не только возможности изменить настройки команды, он также позволяет настроить доступ к командам по различным сценариям. Но обо всем по порядку.
Давайте сначала познакомимся с внешним видом консоли управления командами печати.
- В левой части формы располагается дерево команд печати
- Программа отображает все команды печати:
- встроенные в конфигурацию и расширения
- команды внешних печатных форм
- команды печатных форм PrintWizard
- Все команды сгруппированы в ветку объекта, к которому они принадлежат
- Пиктограммы в правой части программы символизируют информацию:
- - наличие настроек, установленных в пользовательском режиме (функционал PrintWizard)
- - наличие ограничений доступности у команды (функционал PrintWizard)
- - команда является пакетной печатью
- - команда является печатью из PrintWizard
- - команда является печатью из внешней печатной формы
- Программа отображает все команды печати:
При активизации строки дерева происходит изменение правой части формы. Для строки видов объектов и объекта форма не имеет никаких настроек. Но при активизации строки команды форма приобретает вид, представленный на картинке выше.
- В правой части формы располагается информация о текущей команде печати
- Если команда отключена на уровне настройки в администрировании БСП, это будет отображено в виде пиктограммы . По гиперссылке "(перейти)" можно открыть форму из БСП и изменить текущую настройку
- В группе "Настройки команды" располагаются поля для управления настройками, которые пользователь может изменить при помощи консоли:
- Отключить команду для всех - полностью отключает видимость команды для всех пользователей;
- Видимость в формах - список форм, для которых будет отображаться команда (список форм подбирается из метаданных, не обязательно, что на ней присутствует подменю Печати);
- Назначение - назначение формы, для списка или объекта. По сути этот функционал перекликается с настройкой "Видимость в формах";
- Важность - группировка команды печати в подменю, группы отделены горизонтальными разделителями. Важные команды располагаются в самом верху, Обычные располагаются в середине, См. также расположены в нижней части;
- Сочетание клавиш - сочетание клавиш для быстрого вызова команды. Возможность задать hotkey для команды;
- Формат сохранения - формат сохранения печатной формы по умолчанию. Стандартная форма не открывается, печатная форма сразу преобразовывается в указанный формат. ВАЖНО: Для печатных форм в формате офисного документа (*.docx) настройка может быть задана, но будет проигнорирована;
- Только во всех действиях - расположение команды печати только в подменю "Еще" - "Печать". Возможность скрыть не самые актуальные команды.
- В группе "Настройка доступа" располагается табличная часть, для задания настройки видимости команды по различным критериям:
- Только пользователи - отображать команду только для указанных пользователей;
- Все пользователи, кроме - отображать команду для всех пользователей, кроме указанных;
- Только группа пользователей - отображать команду только для пользователей, входящих в одну из указанных групп;
- Все группы пользователей, кроме - отображать команду для пользователей, не входящих в группы, указанные в списке;
- Только роли - отображать команду только для пользователей с одной из указанных ролей;
- Все роли, кроме - отображать команду для пользователей, у которых ни одна роль не входит в указанный список;
- * Только группы доступа - отображать команду только для пользователей, входящих в одну из указанных групп доступа;
- * Все группы доступа, кроме - отображать команду для пользователей, не входящих ни в одну из указанных групп доступа;
- * Только профили - отображать команду для всех пользователей, которым доступен хотя бы один из указанных профилей;
- * Все профили, кроме - отображать команду для пользователей, которым недоступен ни один из указанных профилей.
* - указанные настройки появляются только при наличии подсистемы Управление доступом
Все настройки доступа комбинируются по условию "И", то есть если задано два условия, пользователь должен удовлетворять обоим, в таком случае команда будет отображена.
В результате настройки, подменю печать будет обновлено (при следующем открытии формы целевого объекта). И может иметь вид, представленный на картинке ниже
Как видите, в меню появилось три группы, некоторые команды были отключены.
Примечание
- Статья является анонсом к версии 2024.1.+
- Описанный функционал не является окончательной реализацией и был изменен в релизе 2024.1.3
- Обновление доступно с 25.01.2024
- Указанная версия доступна на демо-стенде (можете перейти к нему со страницы в маркетплейсе). Однако в веб-версии порядок команд в консоли отражен "задом на перед", разберемся ))))
Уверен, описанный функционал расширит возможности применения PrintWizard. И это только начало развития "за пределы конструктора", план на 2024 год достаточно большой. Так что, следите за новостями и подписывайтесь на телеграмм-канал.
Все вопросы можно задавать в комментариях, с удовольствием отвечу.