После обновления конфигурации 1С:Зарплата и управление персоналом 3.1 до релиза 3.1.30.36 и выше, а также перехода на платформу версии 8.3.24, многие пользователи сталкиваются с критической ошибкой при попытке открыть справочник Сотрудники. Ошибка сопровождается сообщением «Возникла непредвиденная ситуация», а в подробном отчете об ошибке указывается: «Обнаружено дублирование ключевых значений в колонках: "Ссылка". Отображение данных в списке невозможно». Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам методы её решения.
Разберем ситуацию: почему динамический список, который раньше работал исправно, внезапно начинает выдавать дубли по ключевому полю Ссылка? В 1С:ЗУП 3.1 форма списка справочника Сотрудники — это не просто таблица, а сложный динамический запрос, который собирает данные из множества связанных регистров сведений (кадровые данные, места работы, физические лица и т.д.).
Проанализируем механизм работы: платформа выполняет SQL-запрос к базе данных. Если в одном из регистров, с которыми соединяется справочник (через ЛЕВОЕ СОЕДИНЕНИЕ), появляется две записи для одного и того же сотрудника, результат запроса «размножается». Для платформы это становится критическим сбоем, так как динамический список не может определить, какую именно строку отображать, если уникальный идентификатор (ссылка) перестал быть уникальным в выборке.
Прежде чем приступать к поиску дублей в данных, необходимо исключить самую простую причину — некорректное кэширование метаданных на стороне клиента. Рассмотрим, как правильно очистить кеш:
%USERPROFILE%\AppData\Roaming\1C\1Cv8\%USERPROFILE%\AppData\Local\1C\1Cv8\eb45-d3...).Если проблема сохраняется у всех пользователей, вероятно, дело в серверных сеансах или индивидуальных настройках формы. Проанализируем следующие действия:
Попробуйте сбросить настройки динамического списка для конкретного пользователя. Для этого перейдите в Администрирование — Обслуживание — Управление настройками пользователей. Выберите пользователя, найдите настройки формы списка справочника Сотрудники и удалите их. Часто ошибка возникает из-за того, что старые пользовательские отборы или сортировки конфликтуют с обновленным текстом запроса в новом релизе.
Перейдем к самой вероятной технической причине — дублированию записей в регистрах. Выясним, какие регистры чаще всего становятся виновниками сбоя в ЗУП 3.1. Основной запрос списка сотрудников соединяется со следующими таблицами:
ОсновныеСотрудникиФизическихЛицТекущиеКадровыеДанныеСотрудниковДанныеМестаРаботыСотрудниковФизлицаСотрудниковОсобое внимание уделим регистру Основные сотрудники физических лиц. Если для одного физического лица в этом регистре ошибочно создано две записи с признаком «Основной сотрудник», динамический список в разделе «Кадры» выдаст дубль ссылки.
Для диагностики воспользуемся консолью запросов. Рассмотрим пример запроса для поиска проблемных данных:
ВЫБРАТЬ
ОсновныеСотрудники.ФизическоеЛицо,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОсновныеСотрудники.Сотрудник) КАК КоличествоСотрудников
ИЗ
РегистрСведений.ОсновныеСотрудникиФизическихЛиц КАК ОсновныеСотрудники
СГРУППИРОВАТЬ ПО
ОсновныеСотрудники.ФизическоеЛицо
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОсновныеСотрудники.Сотрудник) > 1
Если запрос вернул результат, значит, в данных есть логическая ошибка, которую нужно исправить ручной корректировкой регистра или удалением лишней записи.
В новых релизах ЗУП (начиная с 3.1.27/30) активно используется механизм производительного RLS (ограничение доступа на уровне записей). Иногда таблицы шаблонов ограничений заполняются некорректно после обновления, что приводит к «размножению» строк при наложении прав доступа.
Выполним следующие шаги для исправления:
Проанализируем ситуацию, если в базе используются расширения. Даже если расширение не меняет запрос списка сотрудников напрямую, а просто добавляет реквизит в справочник, платформа 8.3.24 может некорректно интерпретировать объединение полей.
Попробуйте временно отключить все расширения и проверить работу справочника. Если ошибка исчезла, значит, необходимо адаптировать расширение под новую структуру запроса основной конфигурации. Убедитесь, что в расширении не изменен режим совместимости и что оно не влияет на состав полей динамического списка.
Важно отметить, что версия платформы 8.3.24.1667 имеет известные проблемы с компонентой mngui.dll, которая отвечает за отрисовку управляемого интерфейса. Если при выполнении сложного запроса динамического списка возникает ошибка переполнения или дублирования, это может быть багом самой платформы.
Рассмотрим рекомендации по платформе:
Подводя итог, если вы столкнулись с ошибкой дублирования в списке сотрудников, действуйте по следующему алгоритму:
ОсновныеСотрудникиФизическихЛиц с помощью консоли запросов.Соблюдение этой последовательности позволит быстро локализовать проблему и вернуть работоспособность справочника без потери данных.