Как программно получить реквизиты договоров ГПХ в 1С:ЗУП 3.1?

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

При разработке в конфигурации 1С:Зарплата и управление персоналом 3.1 программисты часто сталкиваются с задачей получения кадровых данных. Если для штатных сотрудников существует удобный интерфейс КадровыйУчет.КадровыеДанныеСотрудников, то для исполнителей по договорам гражданско-правового характера (ГПХ) ситуация сложнее. Единого универсального метода, который вернул бы все реквизиты договора одной строкой, в типовом решении нет. Однако программный интерфейс ЗУП предоставляет достаточно инструментов для решения этой задачи. Разберем подробно, где хранятся эти данные и какими методами их можно извлечь.

Программные интерфейсы для работы с ГПХ

Рассмотрим структуру общих модулей, которые отвечают за работу с договорниками. В типовой конфигурации механизмы работы с ГПХ вынесены в расширенную подсистему кадрового учета. Проанализируем основные методы, которые мы можем использовать для получения данных.

Наиболее мощным инструментом является общий модуль КадровыйУчетРасширенный. В нем реализованы механизмы подготовки временных таблиц с данными договоров. Рассмотрим пример вызова одной из ключевых процедур:


// Пример подготовки временной таблицы с данными договоров ГПХ
ПараметрыВТ = КадровыйУчетРасширенный.ПараметрыДляСоздатьВТДоговорыГПХФизическихЛицПоВременнойТаблице(
    "ВТФизическиеЛица", 
    Организация, 
    НачалоПериода, 
    ОкончаниеПериода
);

КадровыйУчетРасширенный.СоздатьВТДоговорыГПХФизическихЛицПоВременнойТаблице(
    МенеджерВременныхТаблиц, 
    Истина, 
    ПараметрыВТ
);

Этот метод позволяет массово получить данные по списку физических лиц. Система автоматически проанализирует документы ДоговорРаботыУслуги и ДоговорАвторскогоЗаказа, соберет информацию о номерах, датах начала и окончания выполнения работ. Для формирования готовых документов можно использовать комплект внешних печатных форм договоров подряда и авторского заказа.

Ключевые регистры хранения данных ГПХ

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

  1. Регистр сведений УсловияДоговораГПХ. Это «сердце» данных о договоре. Здесь хранятся финансовые условия: общая сумма, способ оплаты (однократно в конце или ежемесячно), а также признаки обложения страховыми взносами (например, взносами на травматизм ФСС НС).
  2. Регистр сведений ПериодыДействияДоговоровГражданскоПравовогоХарактера. Этот регистр критически важен для отчетности в ПФР (ЕФС-1). В нем фиксируются именно сроки выполнения работ, которые могут отличаться от срока действия самого бумажного договора. Именно на эти данные опираются кадровые отчеты.

Проанализируем ситуацию: когда мы обращаемся к КадровыйУчет.КадровыеДанныеСотрудников, мы получаем общие данные (ФИО, СНИЛС, ИНН), так как договорники также являются записями справочника Сотрудники. Но для получения реквизита «Номер договора» нам обязательно нужно соединяться с вышеуказанными регистрами или документами-основаниями.

Использование клиентских методов для интерфейса

Иногда задача стоит не в получении данных для отчета, а в предоставлении пользователю возможности быстро перейти к списку договоров из другой формы. Разберем, как вызвать типовую форму списка договоров ГПХ по конкретному сотруднику программно. Для этого воспользуемся методами клиентских модулей:


&НаКлиенте
Процедура ОткрытьСписокДоговоровГПХ(СотрудникСсылка)
    
    ПараметрыФормы = СотрудникиКлиентСервер.ОписаниеДополнительнойФормы(
        "Справочник.Сотрудники.Форма.ДоговорыГПХ"
    );
    
    СотрудникиКлиент.ОткрытьДополнительнуюФорму(ПараметрыФормы, ЭтотОбъект, Истина);
    
КонецПроцедуры

В этом примере мы используем стандартную форму справочника Сотрудники, которая предназначена специально для отображения всех договоров ГПХ, привязанных к человеку. Это избавляет нас от необходимости писать собственный интерфейс отображения данных.

Нюансы получения данных по актам выполненных работ

Важно помнить, что в ЗУП 3.1 сумма договора в документе ДоговорРаботыУслуги может быть справочной, если выбрана настройка «Оплата по актам выполненных работ». В этом случае фактические суммы начислений и даты получения дохода хранятся в документах АктПриемкиВыполненныхРабот. При необходимости формирования первичных документов по таким расчетам можно использовать внешние печатные формы актов сдачи-приемки выполненных работ и услуг.

Чтобы получить полную картину по выплатам ГПХ, нам необходимо:

Практический совет по оптимизации запросов

При написании собственных отчетов по ГПХ, старайтесь использовать методы модуля ЗарплатаКадрыОбщиеНаборыДанных. В нем реализованы механизмы формирования текстов запросов, которые учитывают права доступа и актуальные срезы последних данных. Рассмотрим фрагмент логики, часто встречающийся в типовых отчетах:

Для определения, является ли сотрудник договорником на определенную дату, лучше всего проверять наличие записи в регистре ПериодыДействияДоговоровГражданскоПравовогоХарактера, где ДатаНачала меньше или равна нашей дате, а ДатаОкончания больше или равна ей. Это обеспечит корректность данных даже в случаях, когда один и тот же человек сначала был штатным сотрудником, а потом стал работать по договору ГПХ (или наоборот).

Таким образом, хотя «одной волшебной функции» не существует, комбинирование данных из КадровыйУчетРасширенный и прямых запросов к регистру УсловияДоговораГПХ позволяет получить исчерпывающую информацию о любом исполнителе.

← На главную