Ситуация, когда один и тот же отчет (например, «Полный свод начислений, удержаний и выплат» или «Расчетный листок») выдает разные суммы у бухгалтера и расчетчика, является одной из самых трудноуловимых и неприятных проблем в администрировании 1С. Особенно странно это выглядит, когда временным решением становится очистка локального кэша пользователя, но через несколько дней проблема возвращается снова. Рассмотрим подробно, почему так происходит, и разберем по шагам, как найти и устранить корень проблемы в 1С:Зарплата и управление персоналом 3.1.
Одной из наиболее вероятных причин расхождений являются ограниченные права доступа. В 1С существует механизм RLS (Row Level Security) — ограничение доступа на уровне записей. Если у одного пользователя полные права, а у другого они ограничены (например, по конкретным организациям или подразделениям), платформа автоматически модифицирует запрос к базе данных, добавляя в него условия проверки прав.
Проанализируем ситуацию: платформа кэширует результаты проверки прав для ускорения работы. Если в конфигурации произошли изменения или обновились группы доступа, «старый» кэш может некорректно отсекать данные. Выясним причину, проведя эксперимент:
Пример кода для программного вызова отчета в привилегированном режиме:
УстановитьПривилегированныйРежим(Истина);
// Код формирования отчета или запроса к регистрам
СхемаКомпоновкиДанных = Отчеты.НачисленияУдержанияПоСотрудникам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
// ... дальнейшая компоновка результата
УстановитьПривилегированныйРежим(Ложь);
Часто пользователи утверждают, что используют «настройки по умолчанию», но платформа 1С 8.3 имеет свойство сохранять пользовательские изменения автоматически. Даже если визуально форма отчета кажется чистой, в системных хранилищах могут остаться «невидимые» отборы.
Рассмотрим, как это работает: при открытии отчета 1С считывает настройки из кэша метаданных и прикладывает к ним пользовательские настройки из базы данных. Чистка кэша (удаление папок в %AppData%) заставляет систему заново сопоставить идентификаторы настроек, что иногда «сбрасывает» некорректно наложенные фильтры. Чтобы исключить этот фактор навсегда, выполним следующие действия:
В ЗУП 3.1 расчет итогов в отчетах сильно зависит от включенных функциональных опций. Например, если в программе используется «Расчет зарплаты по статьям финансирования» или включены механизмы исправления прошлых периодов, это меняет логику запроса в СКД.
Значения этих опций считываются при старте сеанса. Если сеанс пользователя был завершен некорректно (выключение ПК кнопкой, обрыв связи с сервером), параметры сеанса могут инициализироваться с ошибками. Проанализируем состояние базы: если база файловая, такие сбои происходят чаще из-за блокировок файлов 1С в папке временных данных. Посмотрим на версию платформы: в старых релизах (например, 8.3.10.2667) были зафиксированы ошибки кэширования итогов регистров накопления при использовании RLS.
В ЗУП 3.1 данные для сводов и расчетных листков собираются из регистров накопления, таких как НачисленияУдержанияПоСотрудникам и ВзаиморасчетыССотрудниками. Существует важный нюанс: некоторые итоги (например, «Долг организации на конец месяца») могут рассчитываться специальными регламентными заданиями.
Если один пользователь формирует отчет в момент работы фонового задания по пересчету итогов, а другой — сразу после его завершения, результаты могут отличаться. Рекомендуем проверить:
Если чистка кэша помогает лишь на время, стоит обратить внимание на системные факторы. Выясним, не включена ли в Windows функция «Автономные файлы» (Offline Files) для сетевой папки с базой. Если база файловая, эта функция может подсовывать пользователю старые версии файлов базы данных или файлов кэша, что и создает иллюзию «разных данных».
Также проанализируем действия антивирусного ПО. Антивирусы могут блокировать запись в файлы *.v8i или временные файлы в профиле пользователя. Рекомендуется добавить папки кэша 1С в исключения:
%AppData%\1C\1Cv8\%LocalAppData%\1C\1Cv8\Подводя итог, если вы столкнулись с разницей в отчетах, не ограничивайтесь простой очисткой кэша. Пройдите по шагам:
Только комплексный подход позволит избавиться от «фантомных» расхождений в данных и обеспечит доверие пользователей к отчетности в 1С:ЗУП.