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