При работе с конфигурацией 1С:ЗКГУ 3.0 (или 1С:ЗУП 3.0) пользователи могут столкнуться с неприятной ошибкой при попытке открыть справочник «Сотрудники». Система выдает сообщение об ошибке, часто указывающее на «Обнаружено дублирование ключевых значений в колонках: «Ссылка». Отображение данных в списке невозможно». Эта проблема может проявляться избирательно: в одном подразделении список сотрудников открывается без проблем, тогда как в других отделах возникает данная ошибка. Давайте разберем, почему возникает эта ошибка, как ее диагностировать и какие шаги предпринять для устранения.
Прежде всего, выясним причину возникновения данной ошибки. Анализ подобных ситуаций показывает, что наиболее распространенной причиной является наличие задвоенных записей в регистре сведений СостоянияСотрудников, а также других кадровых регистрах, связанных с сотрудниками. Такие дубликаты могут появляться по ряду причин:
ОбновитьСостоянияСотрудника.epf, предназначенных для исправления других ошибок, может непреднамеренно привести к появлению или повторному возникновению дубликатов в регистре СостоянияСотрудников. Отмечено, что даже после очистки базы этой обработкой, новые задвоенные записи могут появляться после ввода очередных документов отсутствия (например, больничных листов или отпусков).Для того чтобы эффективно устранить ошибку, необходимо сначала правильно ее диагностировать. Разберем основные методы диагностики:
Первым шагом, который мы рекомендуем выполнить, является просмотр журнала регистрации системы 1С. Зачастую в журнале содержится более полная и детальная информация об ошибке. Откройте журнал регистрации (обычно через раздел «Администрирование» -> «Поддержка и обслуживание» -> «Журнал регистрации») и отфильтруйте события по дате и времени возникновения ошибки. Однако, как показывает практика, по данной конкретной проблеме в журнале регистрации может не быть полезных записей, что затрудняет начальную диагностику.
Если журнал регистрации не дает ответов, перейдем к более глубокому анализу данных. Основной причиной проблемы являются дубликаты в регистре СостоянияСотрудников. Для выявления таких записей мы можем использовать консоль запросов.
Для работы с консолью запросов обычно требуется доступ с правами программиста или администратора. Если вы не являетесь программистом, рекомендуем обратиться к специалисту или попросить предоставить отчет на основе этого запроса.
Мы будем искать сотрудников, у которых в регистре СостоянияСотрудников есть несколько записей с пустым значением даты окончания (ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)). Это часто указывает на незакрытые или некорректно сформированные состояния.
Рассмотрим пример простого запроса для поиска таких сотрудников:
ВЫБРАТЬ
СостоянияСотрудников.Сотрудник КАК Сотрудник
ИЗ
РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
ГДЕ
СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)
СГРУППИРОВАТЬ ПО
СостоянияСотрудников.Сотрудник
ИМЕЮЩИЕ
КОЛИЧЕСТВО(СостоянияСотрудников.ДействуетДо) > 1
Выполните этот запрос в консоли. Он выведет список сотрудников, у которых обнаружены множественные записи с "пустой" датой окончания. Это верный признак проблемы, так как для одного сотрудника на определенный момент времени должно быть одно актуальное состояние.
Также, проблема может быть связана с задвоением идентичных строк, например, два абсолютно одинаковых периода отпуска. В таком случае, необходимо будет расширить запрос для поиска полностью дублирующихся строк по всем ключевым полям регистра.
На время, пока не будет найдено окончательное решение, мы можем применить временные обходные пути, которые позволяют открыть справочник и продолжить работу. Некоторые пользователи отмечали, что справочник может открыться, если снять галочку "Скрывать сотрудников, по которым..." в настройках списка или "Изменить форму" и отключить отображение полей "Состояние" и "Дата возврата".
Чтобы попробовать этот метод, выполните следующие шаги:
Состояние и Дата возврата.Эти действия могут позволить вам временно открыть справочник, но не устраняют коренную причину проблемы.
После диагностики перейдем к шагам по устранению проблемы. Существует несколько подходов, от ручной корректировки до использования специализированных обработок.
Если вы смогли найти "глючных" сотрудников с помощью запроса и их немного, мы можем попробовать удалить "левые" записи вручную. Этот метод требует включения режима технического специалиста и осторожности, так как некорректное удаление может привести к более серьезным проблемам с данными.
СостоянияСотрудников: Найдите его в списке регистров сведений через режим технического специалиста.ОбновитьСостоянияСотрудника.epfОдин из наиболее эффективных и рекомендованных способов решения проблемы, особенно если затронуто много сотрудников, является использование специальной внешней обработки, распространяемой отделом технической поддержки 1С, под названием ОбновитьСостоянияСотрудника.epf.
ОбновитьСостоянияСотрудника.epf.СостоянияСотрудников по всем сотрудникам, что обычно приводит к устранению задвоенных записей и нормализации данных. Пользователи подтверждают, что этот подход часто успешно решает проблему открытия справочника.Важное примечание: Даже после успешного применения обработки, проблема может возвращаться после ввода новых документов отсутствия (например, больничных листов). Это указывает на системную ошибку в конфигурации, которая продолжает некорректно формировать записи в регистре. В таких случаях, возможно, придется запускать эту обработку периодически или после каждого ввода проблемного документа.
Как мы уже выяснили, даже после первоначального исправления, проблема может возвращаться, особенно после ввода новых документов. Разберем шаги, которые могут помочь справиться с рецидивами:
СостоянияСотрудников для проблемного сотрудника. Это могут быть «Прием на работу», «Кадровый перевод», «Больничный лист», «Отпуск» и другие.ОбновитьСостоянияСотрудника.epf без выбора сотрудника, чтобы очистить все некорректные записи.Этот метод часто помогает сформировать корректную цепочку записей в регистрах. Перед выполнением этих действий обязательно сделайте резервную копию базы.
ОбновитьСостоянияСотрудника.epf на регулярной основе, запуская ее после ввода пакета кадровых документов или по мере возникновения ошибки.В 1С также существует стандартная обработка «Поиск и удаление дублей», расположенная в разделе «Администрирование» -> «Поддержка и обслуживание». Хотя она в основном предназначена для справочников «Физические лица» или «Сотрудники», она может помочь в случаях, если сама ссылка на сотрудника или физическое лицо задвоилась. С ее помощью мы можем найти и объединить задублированные элементы, перенося все связанные документы на одну корректную карточку и помечая дубли на удаление. Этот метод полезен, если проблема лежит глубже, чем просто дубликаты в регистре состояний.
Помимо СостоянияСотрудников, мы должны помнить, что проблема может затрагивать и другие регистры, связанные с кадровым учетом. Мы рекомендуем проверить целостность данных в таких регистрах, как:
ДанныеДляПодбораСотрудниковТекущиеКадровыеДанныеСотрудниковРолиСотрудниковДанныеОбОплатеТрудаДляПодбораСотрудниковПроверка данных в этих регистрах также может помочь выявить источник ошибки, если проблема не полностью решается работой с регистром СостоянияСотрудников.
Если количество дубликатов очень велико и ни один из описанных методов не помогает стабилизировать работу, существует более радикальный, но требующий крайней осторожности способ. Этот метод должен применяться только опытными специалистами после тщательной оценки рисков и обязательного создания резервной копии базы данных.
Алгоритм действий следующий:
СостоянияСотрудников (или ОсновныеСотрудникиФизическихЛиц, если это старая версия) по проблемным сотрудникам. В крайне тяжелых случаях, возможно, придется удалять все записи регистра.Этот метод является крайней мерой и может быть очень трудоемким, но в некоторых случаях он оказывается единственным способом восстановить корректную работу. Еще раз подчеркнем: без актуальной и проверенной резервной копии базы данных к этому методу приступать категорически нельзя.
Ошибка при открытии справочника «Сотрудники» из-за дублирования ключевых значений является достаточно распространенной проблемой в 1С:ЗКГУ/ЗУП 3.0. Мы рассмотрели основные причины ее возникновения, а также подробно разобрали методы диагностики и устранения. Начиная от проверки журнала регистрации и использования консоли запросов для выявления проблемных записей, до применения специализированных внешних обработок и ручной корректировки данных, а также методов борьбы с рецидивами. Помните, что при любых действиях по изменению данных в базе 1С, особенно при работе с регистрами напрямую, крайне важно предварительно создать актуальную резервную копию вашей информационной базы. Если вы не уверены в своих действиях, всегда лучше обратиться за помощью к опытным специалистам 1С.