Как провести несколько актов выполненных работ на одного сотрудника в одном месяце в ЗУП 2.5?

Программист 1С v8.3 (Обычные формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет
← На главную

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

В этой статье мы подробно разберем причины возникновения этой ошибки, проанализируем архитектурные особенности версии 2.5 и рассмотрим несколько способов решения — от простых организационных маневров до внесения изменений в программный код.

Почему возникает ограничение: разбираем архитектуру

Для того чтобы понять, как обойти ограничение, нам необходимо выяснить первопричину его появления. Разберем механизм работы документа Акт приемки выполненных работ. В ЗУП 2.5 этот документ при проведении делает записи в периодический регистр сведений ПлановыеНачисленияСотрудниковОрганизации.

Проанализируем структуру этого регистра. Ключевыми измерениями в нем являются:

  1. Сотрудник
  2. ВидРасчета
  3. Период

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

Выяснив причину, рассмотрим варианты решения задачи.

Способ 1: Использование нескольких договоров (Штатный метод)

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

Пошаговая инструкция:

  1. Для выполнения второй части работ создадим новый документ Договор на выполнение работ с физ. лицом. В нем можно указать тот же период, что и в первом, или уточнить сроки.
  2. При создании второго договора система позволит создать к нему свой Акт приемки выполненных работ.
  3. Поскольку каждый договор имеет свой внутренний идентификатор, для программы это будут разные основания.

Преимущества: Полная прозрачность учета, отсутствие необходимости доработок.

Недостатки: Увеличение документооборота в базе (нужно печатать и хранить два договора вместо одного).

Способ 2: Использование разных видов расчета

Если мы не хотим плодить договоры, мы можем обмануть систему, изменив уникальность ключа в регистре за счет ВидаРасчета. Рассмотрим подробнее этот алгоритм.

  1. Зайдем в справочник Основные начисления организаций.
  2. Найдем стандартное начисление "Оплата по договорам ГПХ" и создадим его копию, назвав ее, например, "Оплата по договорам ГПХ (доп. акт)".
  3. В первом акте укажем основное начисление, а во втором — созданное нами дополнительное.

Поскольку ВидРасчета в регистре ПлановыеНачисленияСотрудниковОрганизации станет разным, система успешно проведет обе записи на одного сотрудника в одном месяце.

Способ 3: Начисление через разовые выплаты

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

Алгоритм действий:

  1. Проводим первый акт в обычном режиме.
  2. Для второго акта создаем документ Регистрация разовых начислений.
  3. Выбираем сотрудника, указываем сумму из второго акта и выбираем вид расчета, облагаемый налогами аналогично договору ГПХ.

В этом случае в системе будет отражена общая сумма дохода, а сам "бумажный" акт можно просто прикрепить к документам или указать его номер в комментарии к разовому начислению.

Способ 4: Программная доработка (Для опытных пользователей и программистов)

Если вышеперечисленные методы не подходят по причине строгого регламента учета, можно прибегнуть к изменению логики конфигурации. Рассмотрим, какие объекты необходимо затронуть.

Основная задача — добавить в регистр ПлановыеНачисленияСотрудниковОрганизации новое измерение, которое позволит разделять записи по документам-основаниям. Проанализируем примерный план работ:

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

Пример кода, который может использоваться при формировании набора записей регистра (условно):


Движение = НаборЗаписей.Добавить();
Движение.Сотрудник = ТаблицаДанных.Сотрудник;
Движение.ВидРасчета = ТаблицаДанных.ВидРасчета;
Движение.Период = ТаблицаДанных.ДатаАкта;
Движение.ДокументОснование = Ссылка; // Добавляем ссылку на текущий акт
Движение.Показатель1 = ТаблицаДанных.Сумма;

Важное предупреждение: Такая доработка является "тяжелой", так как регистр плановых начислений используется во многих отчетах и модулях расчета. После добавления нового измерения потребуется пересмотреть все запросы, которые обращаются к этому регистру, иначе данные в отчетах могут задваиваться или отображаться некорректно.

Различие в ЗУП 3.1

Выясним, почему эта проблема отсутствует в современной редакции 1С:ЗУП 3.1. Разработчики 1С учли ошибки архитектуры 2.5 и полностью переработали механизм учета ГПХ. В версии 3.1 для актов используется специализированный регистр НачисленияПоДоговорам. В этом регистре в качестве одного из ключевых измерений изначально выступает сам документ АктПриемкиВыполненныхРабот. Это позволяет пользователям проводить неограниченное количество актов в одном периоде без каких-либо доработок программы.

Заключение

Мы проанализировали проблему невозможности проведения двух актов на одного сотрудника в ЗУП 2.5 и нашли несколько путей решения. Если вы не готовы к серьезному программированию и переписыванию типовых механизмов, рекомендуем использовать Способ №1 (создание второго договора). Он наиболее безопасен с точки зрения налогового учета и целостности базы данных. Если же вы обладаете достаточной квалификацией в разработке на платформе 1С, то добавление разреза по документам-основаниям в регистры позволит сделать работу пользователей максимально комфортной.

← На главную