Отключить из меню Печать лишние внешние печатные формы.
Доброе время суток, уважаемые.
Задача такая.
Требуется обеспечить возможность деактивировать некоторые внешние печатные формы, подключенные к меню Печать документа, исходя из значений реквизитов документа.
Например, разработанную пользовательскую форму приказа о приеме на работу на период отсутствия другого сотрудника (например, в декрете) в ЗУП 3.1 хотелось бы отключать при отсутствии флажка Срочный трудовой договор и значения поле Основания заключения трудовых договоров не равному "На время исполнения обязанностей отсутствующего работника, за которым сохраняется место работы");
С уважением.
Задача такая.
Требуется обеспечить возможность деактивировать некоторые внешние печатные формы, подключенные к меню Печать документа, исходя из значений реквизитов документа.
Например, разработанную пользовательскую форму приказа о приеме на работу на период отсутствия другого сотрудника (например, в декрете) в ЗУП 3.1 хотелось бы отключать при отсутствии флажка Срочный трудовой договор и значения поле Основания заключения трудовых договоров не равному "На время исполнения обязанностей отсутствующего работника, за которым сохраняется место работы");
С уважением.
По теме из базы знаний
Найденные решения
(1) можно, если очень хочется
// ОбщийМодуль.УправлениеПечатью - расширение
код выше, по логике, "выключал" печатные формы по ИП/Юрикам, т.е. для ИП свой набор, для Юриков свой. В списках тоже работает, хоть встроенные формы, хоть добавленные.
Если выделили одновременно доки по ИП/Юр не помню, но никто не жаловался)
Условия на свои поля можете обернуть в свой метод при вызове типового.
// ОбщийМодуль.УправлениеПечатью - расширение
&Вместо("КомандыПечатиОбъекта")
Функция Доп_КомандыПечатиОбъекта(ОбъектМетаданных, СПечатнымиФормами = Истина) Экспорт
Результат = ПродолжитьВызов(ОбъектМетаданных, СПечатнымиФормами);
//@@#Вставка
Для каждого Команда Из Результат Цикл
Если СтрНачинаетсяС(ВРег(Команда.Идентификатор), ВРег("Доп_ИП_ТД_П")) Тогда
//УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(Команда, "Организация", Доп_ОрганизацииПоВиду(ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо")), ВидСравнения.ВСписке);
// Включить условие когда ...
ИначеЕсли СтрНачинаетсяС(ВРег(Команда.Идентификатор), ВРег("Доп_ТД_П")) Тогда
//УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(Команда, "Организация", Доп_ОрганизацииПоВиду(ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо")), ВидСравнения.ВСписке);
// Включить условие когда ...
КонецЕсли;
КонецЦикла;
//@@#КонецВставки
Возврат Результат;
КонецФункции
Показатькод выше, по логике, "выключал" печатные формы по ИП/Юрикам, т.е. для ИП свой набор, для Юриков свой. В списках тоже работает, хоть встроенные формы, хоть добавленные.
Если выделили одновременно доки по ИП/Юр не помню, но никто не жаловался)
Условия на свои поля можете обернуть в свой метод при вызове типового.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Сложно это.
Проще делать проверку объекта и не выводить форму по указанным причинам. С выводом (в сообщение или предупреждение) причин невывода формы.
А саму команду прятать - зачем такие сложности?
Еще совет. У себя я сделал (с заказчиком) такую универсальную печатную форму, которая учитывает эти факторы (заключение временного договора на время отсутствия основного сотрудника) и делает нужные формулировки.
Иначе "обычный вариант" для бессрочного договора.
Проще делать проверку объекта и не выводить форму по указанным причинам. С выводом (в сообщение или предупреждение) причин невывода формы.
А саму команду прятать - зачем такие сложности?
Еще совет. У себя я сделал (с заказчиком) такую универсальную печатную форму, которая учитывает эти факторы (заключение временного договора на время отсутствия основного сотрудника) и делает нужные формулировки.
Иначе "обычный вариант" для бессрочного договора.
(1) можно, если очень хочется
// ОбщийМодуль.УправлениеПечатью - расширение
код выше, по логике, "выключал" печатные формы по ИП/Юрикам, т.е. для ИП свой набор, для Юриков свой. В списках тоже работает, хоть встроенные формы, хоть добавленные.
Если выделили одновременно доки по ИП/Юр не помню, но никто не жаловался)
Условия на свои поля можете обернуть в свой метод при вызове типового.
// ОбщийМодуль.УправлениеПечатью - расширение
&Вместо("КомандыПечатиОбъекта")
Функция Доп_КомандыПечатиОбъекта(ОбъектМетаданных, СПечатнымиФормами = Истина) Экспорт
Результат = ПродолжитьВызов(ОбъектМетаданных, СПечатнымиФормами);
//@@#Вставка
Для каждого Команда Из Результат Цикл
Если СтрНачинаетсяС(ВРег(Команда.Идентификатор), ВРег("Доп_ИП_ТД_П")) Тогда
//УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(Команда, "Организация", Доп_ОрганизацииПоВиду(ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо")), ВидСравнения.ВСписке);
// Включить условие когда ...
ИначеЕсли СтрНачинаетсяС(ВРег(Команда.Идентификатор), ВРег("Доп_ТД_П")) Тогда
//УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(Команда, "Организация", Доп_ОрганизацииПоВиду(ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо")), ВидСравнения.ВСписке);
// Включить условие когда ...
КонецЕсли;
КонецЦикла;
//@@#КонецВставки
Возврат Результат;
КонецФункции
Показатькод выше, по логике, "выключал" печатные формы по ИП/Юрикам, т.е. для ИП свой набор, для Юриков свой. В списках тоже работает, хоть встроенные формы, хоть добавленные.
Если выделили одновременно доки по ИП/Юр не помню, но никто не жаловался)
Условия на свои поля можете обернуть в свой метод при вызове типового.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот