При переходе с редакции 2.5 конфигурации «Зарплата и управление персоналом» на редакцию 3.0 пользователи и расчетчики часто сталкиваются с принципиальным отличием в формировании отчетов: Свод начислений и удержаний, Расчетный листок и форма Т-51 показывают взаиморасчеты по так называемому «зарплатному» принципу, а не по фактическим датам выплат.
Разберем подробнее, почему возникает эта разница, какие существуют способы технической доработки системы для получения «бухгалтерского» сальдо (по аналогии со счетом 70), а также рассмотрим штатные механизмы современных версий ЗУП 3.1.
Выясним причину такого поведения конфигурации. В системе выделяются два подхода к учету взаиморасчетов:
В типовой конфигурации ЗУП 3 за подготовку данных для большинства зарплатных отчетов отвечает функция ЗарплатаКадрыОбщиеНаборыДанныхБазовый.ПолучитьТекстОбщегоЗапроса. Чтобы отчеты строили начальные и конечные остатки с учетом даты регистратора выплат, проанализируем изменение логики выборки данных регистра накопления ВзаиморасчетыССотрудниками.
Посмотрим на пример запроса, формирующего временную таблицу оборотов с заменой периода для выплат на месяц даты документа-регистратора:
ВЫБРАТЬ
ВЫБОР
КОГДА ВзаиморасчетыССотрудниками.ГруппаНачисленияУдержанияВыплаты = ЗНАЧЕНИЕ(Перечисление.ГруппыНачисленияУдержанияВыплаты.Выплачено)
ТОГДА НАЧАЛОПЕРИОДА(ВзаиморасчетыССотрудниками.Регистратор.Дата, МЕСЯЦ)
ИНАЧЕ ВзаиморасчетыССотрудниками.Период
КОНЕЦ КАК Период,
СУММА(ВЫБОР
КОГДА ВзаиморасчетыССотрудниками.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ТОГДА ВзаиморасчетыССотрудниками.СуммаВзаиморасчетов
ИНАЧЕ 0
КОНЕЦ) КАК Приход,
СУММА(ВЫБОР
КОГДА ВзаиморасчетыССотрудниками.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
ТОГДА ВзаиморасчетыССотрудниками.СуммаВзаиморасчетов
ИНАЧЕ 0
КОНЕЦ) КАК Расход,
ВзаиморасчетыССотрудниками.Организация КАК Организация,
ВзаиморасчетыССотрудниками.Сотрудник КАК Сотрудник,
ВзаиморасчетыССотрудниками.ФизическоеЛицо КАК ФизическоеЛицо,
ВзаиморасчетыССотрудниками.СтатьяФинансирования КАК СтатьяФинансирования,
ВзаиморасчетыССотрудниками.СтатьяРасходов КАК СтатьяРасходов,
ВзаиморасчетыССотрудниками.Подразделение КАК Подразделение
ПОМЕСТИТЬ ВТВсеОборотыРегистра
ИЗ
РегистрНакопления.ВзаиморасчетыССотрудниками КАК ВзаиморасчетыССотрудниками
{ГДЕ
ВзаиморасчетыССотрудниками.Сотрудник.*,
ВзаиморасчетыССотрудниками.ФизическоеЛицо.*,
ВзаиморасчетыССотрудниками.Организация.*,
ВзаиморасчетыССотрудниками.Сотрудник.ГоловнойСотрудник.* КАК ГоловнойСотрудник}
СГРУППИРОВАТЬ ПО
ВЫБОР
КОГДА ВзаиморасчетыССотрудниками.ГруппаНачисленияУдержанияВыплаты = ЗНАЧЕНИЕ(Перечисление.ГруппыНачисленияУдержанияВыплаты.Выплачено)
ТОГДА НАЧАЛОПЕРИОДА(ВзаиморасчетыССотрудниками.Регистратор.Дата, МЕСЯЦ)
ИНАЧЕ ВзаиморасчетыССотрудниками.Период
КОНЕЦ,
ВзаиморасчетыССотрудниками.Организация,
ВзаиморасчетыССотрудниками.Сотрудник,
ВзаиморасчетыССотрудниками.ФизическоеЛицо,
ВзаиморасчетыССотрудниками.СтатьяФинансирования,
ВзаиморасчетыССотрудниками.СтатьяРасходов,
ВзаиморасчетыССотрудниками.Подразделение;
Далее на основании полученной таблицы рассчитываем входящее сальдо до начала периода формирования отчета:
ВЫБРАТЬ
ВТВсеОборотыРегистра.Организация КАК Организация,
ВТВсеОборотыРегистра.Сотрудник КАК Сотрудник,
ВТВсеОборотыРегистра.ФизическоеЛицо КАК ФизическоеЛицо,
ВТВсеОборотыРегистра.СтатьяФинансирования КАК СтатьяФинансирования,
ВТВсеОборотыРегистра.СтатьяРасходов КАК СтатьяРасходов,
ВТВсеОборотыРегистра.Подразделение КАК Подразделение,
СУММА(ВТВсеОборотыРегистра.Приход - ВТВсеОборотыРегистра.Расход) КАК Остаток
ПОМЕСТИТЬ ВТСальдоНаНачалоПериода
ИЗ
ВТВсеОборотыРегистра КАК ВТВсеОборотыРегистра
ГДЕ
ВТВсеОборотыРегистра.Период < &НачалоПериода
СГРУППИРОВАТЬ ПО
ВТВсеОборотыРегистра.Организация,
ВТВсеОборотыРегистра.Сотрудник,
ВТВсеОборотыРегистра.ФизическоеЛицо,
ВТВсеОборотыРегистра.СтатьяФинансирования,
ВТВсеОборотыРегистра.СтатьяРасходов,
ВТВсеОборотыРегистра.Подразделение;
Соединяя входящие остатки с оборотами расчетного периода, формируем итоговую таблицу остатков и оборотов ВТОстаткиИОбороты, которая имитирует виртуальную таблицу, но выстраивает сальдо по хронологии фактических дат.
Важное предостережение: при такой переработке запроса следует учитывать документы ПереносДанных и ручные корректировки. Дата самого документа переноса может относиться к текущему месяцу, из-за чего исторические движения выплат могут некорректно попасть в текущие периоды.
Альтернативный путь — изменение логики записи движений в регистр взаиморасчетов на этапе проведения платежных документов. В общем модуле или модуле менеджера ведомостей в процедуре ВедомостьЗарегистрироватьВыплатуСтроки анализируется блок формирования записей по взаиморасчетам.
Вместо записи периода регистрации документа:
Запись.Период = Ведомость.ПериодРегистрации;
Устанавливается дата самой ведомости:
Запись.Период = НачалоМесяца(Ведомость.Дата);
Такой подход сохраняет типовые запросы отчетов без изменений, однако меняет саму структуру хранения движений, что требует обязательного тестирования на закрытии месяцев и межрасчетных выплатах.
В типовых расчетных листках поле К выплате рассчитывается как сумма выплаты за период. Если требуется, чтобы оно отражало конечное сальдо (долг предприятия на конец месяца), разберем настройку пользовательского поля схемы отчета АнализНачисленийИУдержаний (вариант Расчетный листок):
КВыплате.
Выбор Когда ВидРасчета = Значение(Перечисление.ВидыВзаиморасчетовССотрудниками.ВыплатаЗарплаты) Тогда Сумма Иначе 0 Конец
Выбор Когда Группа = Значение(Перечисление.ГруппыНачисленияУдержанияВыплаты.КонечноеСальдо) Тогда Сумма Иначе 0 Конец
КВыплате устанавливаем расчет как Сумма(КВыплате).Если используется конфигурация ЗУП редакции 3.1 (начиная с релиза 3.1.4), снимать конфигурацию с поддержки и переписывать запросы вручную не требуется. Разработчики платформы добавили параллельный регистр БухгалтерскиеВзаиморасчетыССотрудниками и штатный переключатель режима.
Разберем, как включить бухгалтерское сальдо штатно:
После включения этой настройки все зарплатные отчеты, включая Расчетный листок и Полный свод начислений, удержаний и выплат, автоматически начинают рассчитывать остатки и выплаты по датам фактических выплат, полностью совпадая с оборотно-сальдовой ведомостью по счету 70.