При работе в программе «1С:Зарплата и управление персоналом» (редакция 3.1) часто возникает организационный и методологический конфликт между кадровой службой и бухгалтерией (расчетчиками). Типичный пример — необходимость ввода показателей для расчета зарплаты (например, часов переработок, дежурств или объемов выполненных работ) сотрудниками кадрового отдела. Для этого настраивается удобный Шаблон ввода исходных данных.
Однако по умолчанию созданный на основе этого шаблона документ доступен только в разделе Зарплата — в журнале Данные для расчета зарплаты. Кадровики, руководствуясь своими должностными инструкциями, часто отказываются переходить в «чужой» интерфейс начисления зарплаты, аргументируя это тем, что это не их зона ответственности, и требуют вывести нужный шаблон непосредственно в раздел Кадры (например, в группу «См. также»).
В этой статье мы подробно разберем, почему стандартными средствами интерфейса это сделать невозможно, какие методологические ограничения заложены разработчиками «1С», и пошагово реализуем решение этой задачи с помощью механизмов расширения конфигурации и альтернативных обходных путей.
В платформе 1С:Предприятие 8.3 на управляемых формах каждый пользователь может индивидуально настраивать панели разделов и навигации. Казалось бы, достаточно нажать на иконку шестеренки в правом верхнем углу раздела «Кадры», выбрать пункт «Настройка навигации» и перетащить нужный документ в правую колонку. Однако в списке доступных команд раздела «Кадры» документа Данные для расчета зарплаты вы не найдете.
Дело в том, что структура панели навигации жестко определяется метаданными конфигурации. Объект может быть отображен в конкретном разделе интерфейса только в том случае, если он включен разработчиком в соответствующую Подсистему. Документ ДанныеДляРасчетаЗарплаты входит только в подсистему Зарплата. Без изменения структуры метаданных «перетащить» его в раздел «Кадры» стандартными средствами невозможно.
Рассмотрим подробнее три основных способа решения этой задачи: два технических (с использованием расширения конфигурации) и один организационный (без программирования).
Использование механизма расширений позволяет решить задачу без снятия типовой конфигурации с поддержки. Это гарантирует, что при последующих обновлениях «1С:ЗУП» ваши доработки не затрутся и не вызовут сложностей.
Мы можем пойти двумя путями: перенести весь журнал документов или создать точечную команду под конкретный шаблон.
Этот вариант подходит, если кадровикам необходим доступ ко всем документам ввода исходных данных без ограничений. Выполним следующие шаги:
Конфигурация — Расширения конфигурации и создадим новое расширение (например, с именем ДоработкаИнтерфейсаКадры).Кадры (или вложенную подсистему КадрыСмТакже), кликнем правой кнопкой мыши и выберем команду «Добавить в расширение».ДанныеДляРасчетаЗарплаты и добавим его в расширение.ДанныеДляРасчетаЗарплаты, перейдем на вкладку «Подсистемы» и установим флажок напротив заимствованной подсистемы Кадры (или КадрыСмТакже).Важный минус данного варианта: теперь кадровики получат доступ ко всему списку документов Данные для расчета зарплаты. Они увидят документы, созданные по другим шаблонам (например, премиальные листы, сдельные наряды и прочие конфиденциальные данные, к которым у отдела кадров не должно быть доступа).
Если кадровикам нужно заполнять строго один определенный шаблон (например, «Ввод часов переработок»), правильнее создать для них отдельную команду в расширении. При ее нажатии будет открываться форма списка, автоматически отфильтрованная по нужному шаблону.
Разберем по шагам, как это реализовать:
ОткрытьВводЧасовДляКадров.Панель навигации раздела.См. также, а в поле «Подсистемы» выберем подсистему Кадры. Таким образом, ссылка появится именно там, где хотят пользователи.
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
// Получаем ссылку на необходимый шаблон ввода исходных данных
Шаблон = ПолучитьШаблонНаСервере("Ввод часов переработок");
Если ЗначениеЗаполнено(Шаблон) Тогда
ПараметрыФормы = Новый Структура;
// Формируем отбор, чтобы кадровики видели только документы по этому шаблону
Отбор = Новый Структура("ШаблонДокумента", Шаблон);
ПараметрыФормы.Вставить("Отбор", Отбор);
// Открываем форму списка документов с установленным отбором
ОткрытьФорму(
"Документ.ДанныеДляРасчетаЗарплаты.ФормаСписка",
ПараметрыФормы,
ПараметрыВыполненияКоманды.Источник,
ПараметрыВыполненияКоманды.Уникальность,
ПараметрыВыполненияКоманды.Окно,
ПараметрыВыполненияКоманды.НавигационнаяСсылка
);
Иначе
ПоказатьПредупреждение(, "В программе не найден шаблон с наименованием 'Ввод часов переработок'!");
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьШаблонНаСервере(ИмяШаблона)
Возврат Справочники.ШаблоныВводаИсходныхДанных.НайтиПоНаименованию(ИмяШаблона);
КонецФункции
Этот код находит в справочнике ШаблоныВводаИсходныхДанных элемент с указанным названием, формирует структуру отбора и открывает стандартную форму списка документов, скрывая все лишние документы других шаблонов. Это защищает конфиденциальные расчетные данные от несанкционированного просмотра.
Если в штате организации нет программиста 1С или по каким-то причинам вносить изменения в базу запрещено, можно воспользоваться стандартными обходными путями платформы 1С:Предприятие 8.3.
Самый простой и быстрый способ настроить быстрый доступ к нужному списку:
Зарплата — Данные для расчета зарплаты.Shift + F11 (или выбирает в главном меню Сервис и настройки — Перейти по ссылке...), вставляет скопированную ссылку и нажимает «Перейти».Теперь документ доступен кадровику в один клик из любого раздела программы через панель «Избранное» (значок звездочки на верхней панели интерфейса), и заходить в раздел «Зарплата» больше не потребуется.
Если кадровику необходимо работать с этим документом ежедневно, можно вывести форму списка прямо на его рабочий стол:
Сервис и настройки — Настройка начальной страницы....Данные для расчета зарплаты.Проанализируем важную проблему, с которой вы неизбежно столкнетесь после настройки интерфейса. Перенос команды в раздел «Кадры» (даже с помощью расширения) **не дает автоматических прав** на сам документ.
По умолчанию у пользователей с типовой ролью Кадровик отсутствуют права на чтение и запись документов Данные для расчета зарплаты, так как эти документы напрямую влияют на регистры расчета зарплаты. Если кадровик попытается открыть добавленную в меню команду, программа выдаст ошибку: «Нарушение прав доступа».
Чтобы решить эту проблему, необходимо:
ДобавлениеИзменениеДанныхДляРасчетаЗарплаты).ДанныеДляРасчетаЗарплаты предоставить права: Чтение, Просмотр, Ввод новых, Редактирование.Только совместное использование кастомизации интерфейса и правильной настройки прав доступа позволит кадровикам полноценно и безопасно работать с шаблонами ввода исходных данных из своего привычного рабочего пространства.