Как вывести документ «Данные для расчета зарплаты» в раздел «Кадры» в 1С:ЗУП 3.1?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При работе в программе «1С:Зарплата и управление персоналом» (редакция 3.1) часто возникает организационный и методологический конфликт между кадровой службой и бухгалтерией (расчетчиками). Типичный пример — необходимость ввода показателей для расчета зарплаты (например, часов переработок, дежурств или объемов выполненных работ) сотрудниками кадрового отдела. Для этого настраивается удобный Шаблон ввода исходных данных.

Однако по умолчанию созданный на основе этого шаблона документ доступен только в разделе Зарплата — в журнале Данные для расчета зарплаты. Кадровики, руководствуясь своими должностными инструкциями, часто отказываются переходить в «чужой» интерфейс начисления зарплаты, аргументируя это тем, что это не их зона ответственности, и требуют вывести нужный шаблон непосредственно в раздел Кадры (например, в группу «См. также»).

В этой статье мы подробно разберем, почему стандартными средствами интерфейса это сделать невозможно, какие методологические ограничения заложены разработчиками «1С», и пошагово реализуем решение этой задачи с помощью механизмов расширения конфигурации и альтернативных обходных путей.

Почему не получается настроить интерфейс обычным способом?

В платформе 1С:Предприятие 8.3 на управляемых формах каждый пользователь может индивидуально настраивать панели разделов и навигации. Казалось бы, достаточно нажать на иконку шестеренки в правом верхнем углу раздела «Кадры», выбрать пункт «Настройка навигации» и перетащить нужный документ в правую колонку. Однако в списке доступных команд раздела «Кадры» документа Данные для расчета зарплаты вы не найдете.

Дело в том, что структура панели навигации жестко определяется метаданными конфигурации. Объект может быть отображен в конкретном разделе интерфейса только в том случае, если он включен разработчиком в соответствующую Подсистему. Документ ДанныеДляРасчетаЗарплаты входит только в подсистему Зарплата. Без изменения структуры метаданных «перетащить» его в раздел «Кадры» стандартными средствами невозможно.

Рассмотрим подробнее три основных способа решения этой задачи: два технических (с использованием расширения конфигурации) и один организационный (без программирования).

Способ 1. Реализация через расширение конфигурации (Рекомендуемый программистам)

Использование механизма расширений позволяет решить задачу без снятия типовой конфигурации с поддержки. Это гарантирует, что при последующих обновлениях «1С:ЗУП» ваши доработки не затрутся и не вызовут сложностей.

Мы можем пойти двумя путями: перенести весь журнал документов или создать точечную команду под конкретный шаблон.

Вариант А: Добавление всего документа в подсистему «Кадры»

Этот вариант подходит, если кадровикам необходим доступ ко всем документам ввода исходных данных без ограничений. Выполним следующие шаги:

  1. Откроем базу в режиме Конфигуратор.
  2. Перейдем в меню Конфигурация — Расширения конфигурации и создадим новое расширение (например, с именем ДоработкаИнтерфейсаКадры).
  3. В дереве объектов основной конфигурации найдем подсистему Кадры (или вложенную подсистему КадрыСмТакже), кликнем правой кнопкой мыши и выберем команду «Добавить в расширение».
  4. Аналогичным образом найдем в основной конфигурации документ ДанныеДляРасчетаЗарплаты и добавим его в расширение.
  5. В дереве объектов расширения откроем свойства добавленного документа ДанныеДляРасчетаЗарплаты, перейдем на вкладку «Подсистемы» и установим флажок напротив заимствованной подсистемы Кадры (или КадрыСмТакже).
  6. Обновим конфигурацию базы данных.

Важный минус данного варианта: теперь кадровики получат доступ ко всему списку документов Данные для расчета зарплаты. Они увидят документы, созданные по другим шаблонам (например, премиальные листы, сдельные наряды и прочие конфиденциальные данные, к которым у отдела кадров не должно быть доступа).

Вариант Б: Создание персональной команды для конкретного шаблона (Безопасный подход)

Если кадровикам нужно заполнять строго один определенный шаблон (например, «Ввод часов переработок»), правильнее создать для них отдельную команду в расширении. При ее нажатии будет открываться форма списка, автоматически отфильтрованная по нужному шаблону.

Разберем по шагам, как это реализовать:

  1. В созданном ранее расширении добавим новый объект — Общая команда. Назовем её, например, ОткрытьВводЧасовДляКадров.
  2. В свойствах команды в поле «Группа» укажем Панель навигации раздела.См. также, а в поле «Подсистемы» выберем подсистему Кадры. Таким образом, ссылка появится именно там, где хотят пользователи.
  3. Кликнем правой кнопкой мыши по команде и выберем «Открыть модуль команды». Вставим следующий код на языке 1С:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
    // Получаем ссылку на необходимый шаблон ввода исходных данных
    Шаблон = ПолучитьШаблонНаСервере("Ввод часов переработок"); 
    
    Если ЗначениеЗаполнено(Шаблон) Тогда
        ПараметрыФормы = Новый Структура;
        
        // Формируем отбор, чтобы кадровики видели только документы по этому шаблону
        Отбор = Новый Структура("ШаблонДокумента", Шаблон);
        ПараметрыФормы.Вставить("Отбор", Отбор);
        
        // Открываем форму списка документов с установленным отбором
        ОткрытьФорму(
            "Документ.ДанныеДляРасчетаЗарплаты.ФормаСписка", 
            ПараметрыФормы, 
            ПараметрыВыполненияКоманды.Источник, 
            ПараметрыВыполненияКоманды.Уникальность, 
            ПараметрыВыполненияКоманды.Окно, 
            ПараметрыВыполненияКоманды.НавигационнаяСсылка
        );
    Иначе
        ПоказатьПредупреждение(, "В программе не найден шаблон с наименованием 'Ввод часов переработок'!");
    КонецЕсли;
    
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьШаблонНаСервере(ИмяШаблона)
    Возврат Справочники.ШаблоныВводаИсходныхДанных.НайтиПоНаименованию(ИмяШаблона);
КонецФункции

Этот код находит в справочнике ШаблоныВводаИсходныхДанных элемент с указанным названием, формирует структуру отбора и открывает стандартную форму списка документов, скрывая все лишние документы других шаблонов. Это защищает конфиденциальные расчетные данные от несанкционированного просмотра.

Способ 2. Альтернативные варианты без доработки конфигурации

Если в штате организации нет программиста 1С или по каким-то причинам вносить изменения в базу запрещено, можно воспользоваться стандартными обходными путями платформы 1С:Предприятие 8.3.

Использование механизма «Избранное»

Самый простой и быстрый способ настроить быстрый доступ к нужному списку:

  1. Пользователь с правами расчетчика (или администратора) заходит в раздел Зарплата — Данные для расчета зарплаты.
  2. В открывшемся списке устанавливает отбор по требуемому шаблону.
  3. В правом верхнем углу окна нажимает на иконку «Получить ссылку» (выглядит как два звена цепи) и копирует полученную навигационную ссылку в буфер обмена.
  4. Кадровик под своей учетной записью нажимает сочетание клавиш Shift + F11 (или выбирает в главном меню Сервис и настройки — Перейти по ссылке...), вставляет скопированную ссылку и нажимает «Перейти».
  5. После открытия нужной формы кадровик нажимает на значок «Звездочка» (Добавить в избранное) рядом с заголовком окна.

Теперь документ доступен кадровику в один клик из любого раздела программы через панель «Избранное» (значок звездочки на верхней панели интерфейса), и заходить в раздел «Зарплата» больше не потребуется.

Настройка начальной страницы

Если кадровику необходимо работать с этим документом ежедневно, можно вывести форму списка прямо на его рабочий стол:

  1. В правом верхнем углу нажмите кнопку Сервис и настройки — Настройка начальной страницы....
  2. В левой колонке доступных форм найдите форму списка документов Данные для расчета зарплаты.
  3. Перенесите её в правую колонку (в левую или правую часть рабочей зоны начальной страницы).
  4. Нажмите «ОК». Теперь при запуске программы кадровик сразу будет видеть список документов на своем рабочем столе.

Важный методологический аспект прав доступа (RLS)

Проанализируем важную проблему, с которой вы неизбежно столкнетесь после настройки интерфейса. Перенос команды в раздел «Кадры» (даже с помощью расширения) **не дает автоматических прав** на сам документ.

По умолчанию у пользователей с типовой ролью Кадровик отсутствуют права на чтение и запись документов Данные для расчета зарплаты, так как эти документы напрямую влияют на регистры расчета зарплаты. Если кадровик попытается открыть добавленную в меню команду, программа выдаст ошибку: «Нарушение прав доступа».

Чтобы решить эту проблему, необходимо:

  1. В созданном расширении добавить новую Роль (например, ДобавлениеИзменениеДанныхДляРасчетаЗарплаты).
  2. В правах этой роли для документа ДанныеДляРасчетаЗарплаты предоставить права: Чтение, Просмотр, Ввод новых, Редактирование.
  3. Создать в пользовательском режиме Профиль групп доступа, включить туда эту роль и назначить данный профиль кадровикам.

Только совместное использование кастомизации интерфейса и правильной настройки прав доступа позволит кадровикам полноценно и безопасно работать с шаблонами ввода исходных данных из своего привычного рабочего пространства.

← На главную