Доброе время суток, уважаемые.

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

Например, разработанную пользовательскую форму приказа о приеме на работу на период отсутствия другого сотрудника (например, в декрете) в ЗУП 3.1 хотелось бы отключать при отсутствии флажка Срочный трудовой договор и значения поле Основания заключения трудовых договоров не равному "На время исполнения обязанностей отсутствующего работника, за которым сохраняется место работы");

С уважением.
---
можно, если очень хочется

// ОбщийМодуль.УправлениеПечатью - расширение

```1c
    &Вместо("КомандыПечатиОбъекта")
    Функция Доп_КомандыПечатиОбъекта(ОбъектМетаданных, СПечатнымиФормами = Истина) Экспорт
    Результат = ПродолжитьВызов(ОбъектМетаданных, СПечатнымиФормами);
    //@@#Вставка
    Для каждого Команда Из Результат Цикл

    Если СтрНачинаетсяС(ВРег(Команда.Идентификатор), ВРег("Доп_ИП_ТД_П")) Тогда
    //УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(Команда, "Организация", Доп_ОрганизацииПоВиду(ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо")), ВидСравнения.ВСписке);
    // Включить условие когда ...
    ИначеЕсли СтрНачинаетсяС(ВРег(Команда.Идентификатор), ВРег("Доп_ТД_П")) Тогда
    //УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(Команда, "Организация", Доп_ОрганизацииПоВиду(ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо")), ВидСравнения.ВСписке);
    // Включить условие когда ...
    КонецЕсли;

    КонецЦикла;
    //@@#КонецВставки
    Возврат Результат;
    КонецФункции
```

код выше, по логике, "выключал" печатные формы по ИП/Юрикам, т.е. для ИП свой набор, для Юриков свой. В списках тоже работает, хоть встроенные формы, хоть добавленные.
Если выделили одновременно доки по ИП/Юр не помню, но никто не жаловался)

Условия на свои поля можете обернуть в свой метод при вызове типового.
---
Сложно это.
Проще делать проверку объекта и не выводить форму по указанным причинам. С выводом (в сообщение или предупреждение) причин невывода формы.
А саму команду прятать - зачем такие сложности?

Еще совет. У себя я сделал (с заказчиком) такую универсальную печатную форму, которая учитывает эти факторы (заключение временного договора на время отсутствия основного сотрудника) и делает нужные формулировки.
Иначе "обычный вариант" для бессрочного договора.
---
Не советую. Да и не по феншую: как будет вести себя кнопка, если по одному документу должна быть, а по другому нет и выделены в списке оба документа. Рекомендую сделать как сказал (2)
---
Вообще в типовом механизме, стандартные ПФ (которые через модуль менеджера подключаются) есть возможность управления доступностью ПФ по значениям реквизитов
---
(4) Вот это интересный вариант. Но только там стандартные встроенные ПФ. А через какой механизм подключаются внешние ПФ?
---
Внешние без проблем во внутренние переделываются при помощи расширения.
---
можно, если очень хочется

// ОбщийМодуль.УправлениеПечатью - расширение

```1c
    &Вместо("КомандыПечатиОбъекта")
    Функция Доп_КомандыПечатиОбъекта(ОбъектМетаданных, СПечатнымиФормами = Истина) Экспорт
    Результат = ПродолжитьВызов(ОбъектМетаданных, СПечатнымиФормами);
    //@@#Вставка
    Для каждого Команда Из Результат Цикл

    Если СтрНачинаетсяС(ВРег(Команда.Идентификатор), ВРег("Доп_ИП_ТД_П")) Тогда
    //УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(Команда, "Организация", Доп_ОрганизацииПоВиду(ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо")), ВидСравнения.ВСписке);
    // Включить условие когда ...
    ИначеЕсли СтрНачинаетсяС(ВРег(Команда.Идентификатор), ВРег("Доп_ТД_П")) Тогда
    //УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(Команда, "Организация", Доп_ОрганизацииПоВиду(ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо")), ВидСравнения.ВСписке);
    // Включить условие когда ...
    КонецЕсли;

    КонецЦикла;
    //@@#КонецВставки
    Возврат Результат;
    КонецФункции
```

код выше, по логике, "выключал" печатные формы по ИП/Юрикам, т.е. для ИП свой набор, для Юриков свой. В списках тоже работает, хоть встроенные формы, хоть добавленные.
Если выделили одновременно доки по ИП/Юр не помню, но никто не жаловался)

Условия на свои поля можете обернуть в свой метод при вызове типового.
---
(7)Спасибо, то, что надо