При работе в системе 1С:Управление торговлей (УТ) версии 11.4 пользователи могут столкнуться с достаточно неприятной ошибкой: "Обнаружено дублирование ключевых показателей в колонках ссылка. Отображение данных в списке невозможно". Эта ошибка обычно проявляется в динамических списках, особенно при подборе товара, и чаще всего возникает после использования полнотекстового поиска и попытки пролистать или отфильтровать полученный список. Давайте вместе разберем, почему возникает эта ошибка и какие шаги мы можем предпринять для ее устранения.
Прежде чем перейти к решениям, нам критически важно понять, что именно означает эта ошибка. В системе 1С, особенно при работе с управляемыми формами и динамическими списками, каждый элемент в списке должен быть уникально идентифицируем. Это достигается за счет использования ключевых показателей или, как их еще называют, ключевых полей. Когда динамический список формируется запросом, он ожидает, что для каждой строки будет свое уникальное ключевое значение. Если же запрос возвращает две или более записи с одинаковым значением ключевого поля (например, ссылкой на один и тот же объект), платформа не может однозначно отобразить эти данные и выдает ошибку о дублировании.
Как правило, проблема кроется либо в самих исходных данных (например, дублирующие записи в регистрах), либо в некорректной работе механизма, который эти данные собирает (запрос динамического списка, полнотекстовый поиск).
Мы рассмотрим несколько распространенных причин, по которым может возникать эта ошибка, и предложим пошаговые инструкции для их устранения.
Очень часто причиной ошибки являются дублирующие записи в служебных регистрах сведений, к которым обращается динамический список при формировании данных для номенклатуры. Например, для номенклатуры это может быть регистр СведенияОНоменклатуреГСВС или другие регистры, связанные с характеристиками, дополнительными свойствами, штрихкодами или единицами измерения. Если в таких регистрах для одного и того же объекта (например, одной и той же номенклатуры) по каким-то причинам созданы несколько записей с одинаковым набором измерений, то запрос, который выбирает данные из этого регистра, может вернуть дублирующиеся "ключевые показатели".
Активируем команду "Все функции" (при необходимости). Если эта команда у вас неактивна, зайдем в меню "Сервис" — "Параметры" (или "Главное меню" — "Сервис" — "Параметры") и установим флажок "Отображать команду 'Все функции'". Это даст нам доступ к служебным объектам конфигурации.
Откроем регистры сведений. Через "Все функции" найдем раздел "Регистры сведений" и последовательно откроем регистры, которые могут быть связаны с номенклатурой и её свойствами. Особое внимание уделим регистрам, название которых содержит слова "номенклатура", "свойства", "характеристики", "цены", "штрихкоды", "единицы измерения" и т.п.
Ищем и удаляем дубли. В каждом потенциально проблемном регистре нам нужно внимательно просмотреть записи. Нас интересуют записи, где значения всех измерений (ключевых полей регистра) абсолютно одинаковы, но при этом могут быть разные значения ресурсов. Такие записи и приводят к дублированию. Обнаружив дубли, мы должны удалить лишние. Будьте осторожны при удалении данных, особенно в продуктивной базе. Желательно предварительно сделать резервную копию или протестировать на копии базы.
Иногда дубли могут появляться после некорректных обменов данными, загрузок из внешних источников или ошибок при ручном вводе.
Пользователи в сообщениях отмечают, что ошибка возникает "при пролистывании списка, после поиска". Это прямо указывает на возможную связь с полнотекстовым поиском данных. Если полнотекстовый поиск работает некорректно, он может возвращать в результат выборки ссылки на один и тот же объект несколько раз, что и приводит к ошибке при попытке динамического списка отобразить эти данные.
Обновим индексы полнотекстового поиска. Устаревшие или поврежденные индексы ППД — частая причина некорректного поведения поиска. Давайте обновим их:
Проанализируем поисковые запросы со специальными символами. Один из пользователей форума подметил, что ошибка проявляется, когда в поисковом запросе присутствует точка (например, "с. в" вызывает ошибку, а "с в" — нет). Это очень важная зацепка, указывающая на то, что механизм полнотекстового поиска может по-разному обрабатывать запросы со специальными символами, некорректно формируя результат. Мы можем попробовать временно избегать использования таких символов в поиске или провести эксперименты, чтобы точно убедиться в этой зависимости.
Временное отключение полнотекстового поиска. Как крайняя мера для диагностики, мы можем попробовать временно отключить полнотекстовый поиск (снять флажок в "Общих настройках"). Если после этого ошибка исчезнет, это однозначно укажет на проблему с ППД. Однако это не является полноценным решением, поскольку функционал поиска будет недоступен.
Сама формулировка ошибки "Обнаружено дублирование ключевых показателей в колонках ссылка" прямо указывает на то, что запрос, формирующий динамический список, возвращает дублирующиеся ключевые показатели. Даже в типовых конфигурациях, несмотря на все тесты, могут обнаруживаться ошибки в релизах, особенно при определенных комбинациях данных или специфических сценариях использования. Ошибка может быть в самом коде запроса, который выбирает данные для списка.
Используем отладчик в режиме конфигуратора. Это самый точный и надежный метод для выявления причины ошибки. Если у вас есть доступ к конфигуратору и навыки отладки, то:
ПриСозданииНаСервере, ПриОбновлении или связанные с поиском).ОсновнойЗапросДинамическогоСписка или аналогичному, и результат его выполнения. Мы можем выполнить этот запрос вручную в консоли запросов и увидеть, какие именно записи дублируются.Это позволит точно установить, какая строка запроса или какой набор данных приводит к проблеме.
Сбросим пользовательские настройки формы. Иногда ошибка может возникать из-за индивидуальных пользовательских настроек формы, которые были сохранены и теперь конфликтуют с текущей логикой работы или данными. Если кто-то из пользователей, например, редактировал динамический список или сохранял особые настройки отображения, это могло привести к ошибке. Давайте попробуем сбросить их:
Проверим актуальность релиза конфигурации и платформы. Несмотря на то, что в одном из сообщений форума упоминается, что обновление до последнего релиза не решило проблему, это всегда является первым шагом в диагностике. Разработчики 1С регулярно выпускают обновления, в которых исправляют найденные ошибки. Мы должны убедиться, что используем самую актуальную версию как конфигурации (УТ 11.4), так и самой технологической платформы 1С:Предприятие 8.3. Возможно, ошибка уже была исправлена в более позднем релизе, просто она не была явно упомянута в списке изменений, или исправление касалось смежной функциональности.
Проверим конфигурацию на наличие доработок. Если конфигурация не является полностью типовой, и в ней были внесены доработки, особенно касающиеся форм подбора или регистров сведений, нам нужно внимательно проанализировать эти изменения. Вполне возможно, что именно доработки привели к появлению дублирующих записей или некорректному формированию запросов.
В целом, ошибка "Обнаружено дублирование ключевых показателей в колонках ссылка" в 1С при работе с динамическими списками почти всегда указывает на наличие дублей в исходных данных, используемых запросом списка. Это могут быть записи в регистрах сведений или другие справочные данные, которые ошибочно дублируются, или некорректная обработка данных полнотекстовым поиском, приводящая к таким дублям в результатах. Начинать диагностику всегда следует с простых шагов, таких как обновление индексов ППД и сброс пользовательских настроек, а затем переходить к более сложным, требующим анализа данных и отладки в конфигураторе.
Надеемся, что предложенные нами шаги помогут вам успешно диагностировать и устранить ошибку при подборе товара в 1С:УТ 11.4 и вернуться к комфортной и эффективной работе.