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