Ситуация, когда суммы в расчетном листке верны, а кадровые данные (должность или подразделение) отражаются некорректно, — классическая проблема для конфигурации 1С:Зарплата и Управление Персоналом. Давайте разберем по шагам, как локализовать эту ошибку и найти её причину, следуя логике работы механизмов кадрового учета и расширений.
Первое, на что необходимо обратить внимание — это расширения конфигурации. В современных версиях ЗУП 3.1 (особенно при использовании ЗГУ 3.1) любое расширение может влиять на алгоритмы получения данных, даже если оно кажется «безобидным» (например, расширение для Табеля). Если проблема возникла после установки или обновления расширения, поступим следующим образом:
Помните, что расширения часто используют механизмы заимствования для методов, отвечающих за получение кадровых данных. Если расширение перехватывает запрос, оно может вернуть пустые или устаревшие значения, даже если в самой карточке сотрудника всё заполнено верно.
Если расширения не являются причиной, необходимо проанализировать, откуда именно отчет РасчетныйЛисток берет данные. В 1С ЗУП за актуальное состояние сотрудника отвечает регистр сведений КадровыеДанныеСотрудников. Рассмотрим подробнее возможные причины ошибок в этом регистре:
Сотрудники. Если в карточке сотрудника данные отображаются верно, а в расчетном листке — нет, значит, отчет использует метод ПолучитьКадровыеДанные, который обращается к регистру, хранящему «исторический срез» данных на дату отчета.Разберем, как проверить правильность данных с помощью стандартных инструментов:
ШтатныеСотрудники. Если в нем данные по подразделению и должности выводятся верно, значит, проблема локализована именно внутри механизма формирования расчетного листка (вызова процедуры получения данных для него).КадровыеДанныеСотрудников через Функции для технического специалиста. Найдите записи по нужному сотруднику. Проанализируйте период действия записи. Бывают ситуации, когда на отчетную дату в регистре числится запись, созданная «кривым» документом перевода.Иногда после внедрения доработок система продолжает использовать старые данные из-за кэширования. Рассмотрим важный момент: если вы меняли метаданные или логику через расширение, обязательно очистите кэш 1С:
Для очистки кэша на клиенте:
Удалите папки с временными файлами 1С, которые находятся в профиле пользователя (директория AppData\Local\1C\1Cv8). После удаления папок с длинными буквенно-цифровыми именами перезапустите 1С:Предприятие.
Для серверной базы:
Если проблема сохраняется, возможно, кэширование происходит на уровне сервера приложений. В этом случае перезапуск службы сервера 1С или очистка кэша на сервере позволит системе перечитать актуальные настройки из конфигурации.
Подведем итог: диагностику всегда стоит начинать с изоляции среды (тестовая копия без расширений). Если проблема сохраняется без расширений — ищите неконсистентные записи в регистре КадровыеДанныеСотрудников. Если проблема уходит при отключении расширений — последовательно анализируйте код, добавленный в модуль, на предмет перехвата запросов к кадровым данным.