Достаточно часто возникает ситуацию, что некоторые функции расчетчика на себя берет кадровик, в частности выдача справок:
- Записка-расчет о предоставлении отпуска работнику Т-60;
- Записка-расчет при увольнении Т-61.
В итоге задача следующая: дать доступ для печать печатных форм Т-60 и Т-61 пользователю с ролью "Кадровик", с сохранением типового разграничения прав Кадровик-Расчетчик (галка "Расчет утвердил"), также необходимо сохранить полную поддержку типовой конфигурации ЗУП 3.1 и учесть что на предприятии используется РИБ, поэтому это расширение должно устанавливаться не зависимо (только на те базы, где это необходимо).
В итоге потребовалось внести правки в модуле менеджера документов Отпуск и Увольнение (если на предприятии используются Отпуск списком и Увольнение списком, то надо внести изменения и в их модулях менеджера):
&ИзменениеИКонтроль("ДобавитьКомандыПечати")
// Заполняет список команд печати.
//
// Параметры:
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
//
Процедура ДПФК_ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Приказ о предоставлении отпуска.
КадровыйУчетРасширенный.ДобавитьКомандуПечатиПриказаОПредоставленииОтпуска(КомандыПечати);
Если Пользователи.РолиДоступны("ДобавлениеИзменениеНачисленнойЗарплатыРасширенная,ПолныеПрава,ЧтениеНачисленнойЗарплатыРасширенная", , Ложь)
И ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.МенеджерПечати = "Обработка.ПечатьКадровыхПриказовРасширенная";
КомандаПечати.Идентификатор = "ПФ_MXL_Т60";
КомандаПечати.Представление = НСтр("ru = 'Записка - расчет о предоставлении отпуска (Т-60)'");
КомандаПечати.Порядок = 20;
КомандаПечати.ФункциональныеОпции = "РаботаВХозрасчетнойОрганизации";
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.МенеджерПечати = "Документ.Отпуск";
КомандаПечати.Идентификатор = "ПФ_MXL_СправкаДляОплатыОтпускаЧАЭС";
КомандаПечати.Представление = НСтр("ru = 'Справка для оплаты доп. отпуска гражданам, подвергшимся воздействию радиации'");
КомандаПечати.Порядок = 80;
КомандаПечати.ФункциональныеОпции = "ИспользоватьОтпускаДляПострадавшихВАварииЧАЭС";
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
#Вставка
ИначеЕсли КомандыПечати.Найти("ПФ_MXL_Т60") = Неопределено И РольДоступна("ДПФК_ДопПечатныеФормыКадровика") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.МенеджерПечати = "Обработка.ПечатьКадровыхПриказовРасширенная";
КомандаПечати.Идентификатор = "ПФ_MXL_Т60";
КомандаПечати.Представление = НСтр("ru = 'Записка - расчет о предоставлении отпуска (Т-60)'");
КомандаПечати.Порядок = 20;
КомандаПечати.ФункциональныеОпции = "РаботаВХозрасчетнойОрганизации";
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
#КонецВставки
КонецЕсли;
// Расчет среднего заработка
УчетСреднегоЗаработка.ДобавитьКомандуПечатиРасчетаСреднегоЗаработка(КомандыПечати, "Документ.Отпуск");
УчетСреднегоЗаработка.ДобавитьКомандуПечатиРасчетаСреднегоЗаработка0504425(КомандыПечати, "Документ.Отпуск");
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
МодульГосударственнаяСлужба = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
МодульГосударственнаяСлужба.ДобавитьКомандыПечатиСохраняемогоДенежногоСодержания(КомандыПечати);
КонецЕсли;
// Подробный расчет начислений.
РасчетЗарплатыРасширенный.ДобавитьКомандуПечатиПодробногоРасчетаНачислений(КомандыПечати);
КонецПроцедуры
Добавить роль "ДПФК_ДопПечатныеФормыКадровика" с доступом на чтение регистров накопления:
Далее в режиме предприятия создать профиль группы доступа с нашей ролью:
Добавить нужного пользователя в созданную группу доступа:
Пользователь должен состоять в следующих группах:
И у пользователя появится возможность распечатывать справки:
и
Проверено на платформе 8.3.22.1851.
Версия конфигурации ЗУП 3.1.24.408.