В процессе работы с программой 1С:Зарплата и управление персоналом 3.1 пользователи часто сталкиваются с ситуацией, когда отчет Справка об остатках отпусков выдает странные или явно ошибочные цифры в итоговых строках. Особенно загадочно это выглядит, когда под одной учетной записью отчет формируется правильно, а под другой — с огромными отклонениями, хотя настройки отборов идентичны. Рассмотрим подробно, как диагностировать и устранить эту проблему.
Самая распространенная причина, по которой отчет начинает вести себя неадекватно у конкретного пользователя, — это «битые» настройки компоновки данных. Важно понимать, что 1С сохраняет настройки отчетов не только локально на компьютере (в кэше AppData), но и непосредственно в информационной базе. Даже если пользователь выбирает стандартный вариант отчета, система может применять скрытые параметры из предыдущих сеансов.
Проанализируем алгоритм очистки настроек, который помогает в большинстве случаев:
Справка об остатках отпусков.Этот метод эффективнее простой очистки кэша папок Local и Roaming, так как он удаляет записи из системных таблиц базы данных (хранилища настроек), которые могут содержать некорректные идентификаторы колонок или условий после обновления конфигурации.
Если очистка настроек не помогла, разберем ситуацию с правами доступа. В 1С:ЗУП активно используется механизм RLS (Record Level Security). Если у пользователя ограничен доступ к определенным подразделениям или организациям, запрос отчета может просто «не видеть» документы-регистраторы, такие как Ввод остатков отпусков за прошлые годы.
Проверим состояние прав доступа. Даже если роли у пользователей одинаковые, данные о доступе могут быть неактуальны. Выполним следующие действия:
Обновление данных о доступе. Это можно сделать через консоль регламентных заданий или через раздел Обслуживание — Регламентные операции.Бывают случаи, когда формирование отчета сопровождается аварийным завершением работы программы («выкидыванием» из 1С). Это характерно для версий платформы ниже 8.3.18 при работе с тяжелыми схемами компоновки данных. Система некорректно обрабатывает временные таблицы при расчете итогов, что приводит к переполнению памяти сеанса.
Рассмотрим рекомендации по техническому обслуживанию:
Иногда проблема кроется не в интерфейсе, а в самих данных. Если отчет показывает все отпуска «красиво», но итог не сходится, нужно проверить регистр накопления Фактические отпуска и Остатки отпусков.
Разберем, как проверить данные программно или через консоль запросов. Если мы хотим увидеть, какие записи влияют на итог, мы можем воспользоваться простейшим запросом к остаткам:
ВЫБРАТЬ
ОстаткиОтпусковОстатки.Сотрудник,
ОстаткиОтпусковОстатки.ВидЕжегодногоОтпуска,
ОстаткиОтпусковОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.ОстаткиОтпусков.Остатки(&Период, Сотрудник = &Сотрудник) КАК ОстаткиОтпусковОстатки
Если в консоли запросов под «проблемным» пользователем цифры верные, значит, проблема на 100% в настройках СКД (Системы компоновки данных). Если же в консоли цифры тоже «поплыли», значит, дело в механизме RLS или в дублях записей в регистрах.
Также стоит обратить внимание на документ Корректировка остатков отпусков. Если дата такого документа совпадает с датой начала очередного отпуска, система может двояко интерпретировать остаток на начало дня. Попробуем сдвинуть время документа корректировки на одну секунду назад или вперед, чтобы исключить наложение периодов.
Для исправления итогов в справке об остатках отпусков придерживаемся следующего плана:
RLS.Ввод остатков отпусков и График отпусков (если используется).Помните, что отчет Справка об остатках отпусков является сложным динамическим отчетом. Он не просто берет число из регистра, а математически пересчитывает все права на отпуск за каждый рабочий год, вычитая использованные дни. Любой сбой в настройках оформления или группировок СКД мгновенно отражается на итоговой сумме.