Как исправить ошибку "Обнаружено дублирование ключевых показателей в колонках ссылка" при подборе товара в 1С:УТ 11.4?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе в системе 1С:Управление торговлей (УТ) версии 11.4 пользователи могут столкнуться с достаточно неприятной ошибкой: "Обнаружено дублирование ключевых показателей в колонках ссылка. Отображение данных в списке невозможно". Эта ошибка обычно проявляется в динамических списках, особенно при подборе товара, и чаще всего возникает после использования полнотекстового поиска и попытки пролистать или отфильтровать полученный список. Давайте вместе разберем, почему возникает эта ошибка и какие шаги мы можем предпринять для ее устранения.

Понимание сути ошибки "Обнаружено дублирование ключевых показателей"

Прежде чем перейти к решениям, нам критически важно понять, что именно означает эта ошибка. В системе 1С, особенно при работе с управляемыми формами и динамическими списками, каждый элемент в списке должен быть уникально идентифицируем. Это достигается за счет использования ключевых показателей или, как их еще называют, ключевых полей. Когда динамический список формируется запросом, он ожидает, что для каждой строки будет свое уникальное ключевое значение. Если же запрос возвращает две или более записи с одинаковым значением ключевого поля (например, ссылкой на один и тот же объект), платформа не может однозначно отобразить эти данные и выдает ошибку о дублировании.

Как правило, проблема кроется либо в самих исходных данных (например, дублирующие записи в регистрах), либо в некорректной работе механизма, который эти данные собирает (запрос динамического списка, полнотекстовый поиск).

Основные причины возникновения ошибки и методы диагностики

Мы рассмотрим несколько распространенных причин, по которым может возникать эта ошибка, и предложим пошаговые инструкции для их устранения.

  1. Дублирующие записи в регистрах сведений

    Очень часто причиной ошибки являются дублирующие записи в служебных регистрах сведений, к которым обращается динамический список при формировании данных для номенклатуры. Например, для номенклатуры это может быть регистр СведенияОНоменклатуреГСВС или другие регистры, связанные с характеристиками, дополнительными свойствами, штрихкодами или единицами измерения. Если в таких регистрах для одного и того же объекта (например, одной и той же номенклатуры) по каким-то причинам созданы несколько записей с одинаковым набором измерений, то запрос, который выбирает данные из этого регистра, может вернуть дублирующиеся "ключевые показатели".

    Что мы можем сделать:

    1. Активируем команду "Все функции" (при необходимости). Если эта команда у вас неактивна, зайдем в меню "Сервис" — "Параметры" (или "Главное меню" — "Сервис" — "Параметры") и установим флажок "Отображать команду 'Все функции'". Это даст нам доступ к служебным объектам конфигурации.

    2. Откроем регистры сведений. Через "Все функции" найдем раздел "Регистры сведений" и последовательно откроем регистры, которые могут быть связаны с номенклатурой и её свойствами. Особое внимание уделим регистрам, название которых содержит слова "номенклатура", "свойства", "характеристики", "цены", "штрихкоды", "единицы измерения" и т.п.

    3. Ищем и удаляем дубли. В каждом потенциально проблемном регистре нам нужно внимательно просмотреть записи. Нас интересуют записи, где значения всех измерений (ключевых полей регистра) абсолютно одинаковы, но при этом могут быть разные значения ресурсов. Такие записи и приводят к дублированию. Обнаружив дубли, мы должны удалить лишние. Будьте осторожны при удалении данных, особенно в продуктивной базе. Желательно предварительно сделать резервную копию или протестировать на копии базы.

    Иногда дубли могут появляться после некорректных обменов данными, загрузок из внешних источников или ошибок при ручном вводе.

  2. Проблемы с полнотекстовым поиском данных (ППД)

    Пользователи в сообщениях отмечают, что ошибка возникает "при пролистывании списка, после поиска". Это прямо указывает на возможную связь с полнотекстовым поиском данных. Если полнотекстовый поиск работает некорректно, он может возвращать в результат выборки ссылки на один и тот же объект несколько раз, что и приводит к ошибке при попытке динамического списка отобразить эти данные.

    Что мы можем сделать:

    1. Обновим индексы полнотекстового поиска. Устаревшие или поврежденные индексы ППД — частая причина некорректного поведения поиска. Давайте обновим их:

      1. Перейдем в раздел "Администрирование" — "Настройки программы" — "Общие настройки".
      2. Убедимся, что флажок "Полнотекстовый поиск данных" установлен.
      3. Нажмем на гиперссылку "Настроить" рядом с этим флажком.
      4. В открывшемся окне сначала нажмем кнопку "Очистить индекс", а затем "Обновить индекс". Процесс обновления может занять некоторое время в зависимости от объема данных.
      5. Дождемся, пока статус индекса не станет "Обновление не требуется", а дата актуальности — текущей. Это будет означать, что индексы актуальны и готовы к работе.
    2. Проанализируем поисковые запросы со специальными символами. Один из пользователей форума подметил, что ошибка проявляется, когда в поисковом запросе присутствует точка (например, "с. в" вызывает ошибку, а "с в" — нет). Это очень важная зацепка, указывающая на то, что механизм полнотекстового поиска может по-разному обрабатывать запросы со специальными символами, некорректно формируя результат. Мы можем попробовать временно избегать использования таких символов в поиске или провести эксперименты, чтобы точно убедиться в этой зависимости.

    3. Временное отключение полнотекстового поиска. Как крайняя мера для диагностики, мы можем попробовать временно отключить полнотекстовый поиск (снять флажок в "Общих настройках"). Если после этого ошибка исчезнет, это однозначно укажет на проблему с ППД. Однако это не является полноценным решением, поскольку функционал поиска будет недоступен.

  3. Некорректный запрос динамического списка или ошибки платформы/конфигурации

    Сама формулировка ошибки "Обнаружено дублирование ключевых показателей в колонках ссылка" прямо указывает на то, что запрос, формирующий динамический список, возвращает дублирующиеся ключевые показатели. Даже в типовых конфигурациях, несмотря на все тесты, могут обнаруживаться ошибки в релизах, особенно при определенных комбинациях данных или специфических сценариях использования. Ошибка может быть в самом коде запроса, который выбирает данные для списка.

    Что мы можем сделать:

    1. Используем отладчик в режиме конфигуратора. Это самый точный и надежный метод для выявления причины ошибки. Если у вас есть доступ к конфигуратору и навыки отладки, то:

      1. Откроем конфигурацию в режиме Конфигуратора.
      2. Найдем форму подбора товара, в которой возникает ошибка.
      3. Установим точку останова в методе, который формирует или обновляет динамический список (часто это обработчики событий формы, такие как ПриСозданииНаСервере, ПриОбновлении или связанные с поиском).
      4. Запустим сеанс отладки и воспроизведем ошибку. Отладчик остановится в точке останова, и мы сможем пошагово проанализировать, какой запрос выполняется, какие данные он возвращает и на каком именно этапе происходит дублирование. Нас интересует текст запроса, который присваивается свойству ОсновнойЗапросДинамическогоСписка или аналогичному, и результат его выполнения. Мы можем выполнить этот запрос вручную в консоли запросов и увидеть, какие именно записи дублируются.

      Это позволит точно установить, какая строка запроса или какой набор данных приводит к проблеме.

    2. Сбросим пользовательские настройки формы. Иногда ошибка может возникать из-за индивидуальных пользовательских настроек формы, которые были сохранены и теперь конфликтуют с текущей логикой работы или данными. Если кто-то из пользователей, например, редактировал динамический список или сохранял особые настройки отображения, это могло привести к ошибке. Давайте попробуем сбросить их:

      1. Зайдем в форму подбора товара, где возникает ошибка.
      2. Нажмем кнопку "Ещё" (или похожую, обычно справа сверху формы).
      3. Найдем пункт "Изменить форму" или "Настроить список" и в нем опцию "Установить стандартные настройки" или "Сбросить настройки".
      4. Выполним сброс. Эту операцию лучше выполнить для всех пользователей, у кого наблюдается проблема.
    3. Проверим актуальность релиза конфигурации и платформы. Несмотря на то, что в одном из сообщений форума упоминается, что обновление до последнего релиза не решило проблему, это всегда является первым шагом в диагностике. Разработчики 1С регулярно выпускают обновления, в которых исправляют найденные ошибки. Мы должны убедиться, что используем самую актуальную версию как конфигурации (УТ 11.4), так и самой технологической платформы 1С:Предприятие 8.3. Возможно, ошибка уже была исправлена в более позднем релизе, просто она не была явно упомянута в списке изменений, или исправление касалось смежной функциональности.

    4. Проверим конфигурацию на наличие доработок. Если конфигурация не является полностью типовой, и в ней были внесены доработки, особенно касающиеся форм подбора или регистров сведений, нам нужно внимательно проанализировать эти изменения. Вполне возможно, что именно доработки привели к появлению дублирующих записей или некорректному формированию запросов.

    Общие рекомендации и заключение

    В целом, ошибка "Обнаружено дублирование ключевых показателей в колонках ссылка" в 1С при работе с динамическими списками почти всегда указывает на наличие дублей в исходных данных, используемых запросом списка. Это могут быть записи в регистрах сведений или другие справочные данные, которые ошибочно дублируются, или некорректная обработка данных полнотекстовым поиском, приводящая к таким дублям в результатах. Начинать диагностику всегда следует с простых шагов, таких как обновление индексов ППД и сброс пользовательских настроек, а затем переходить к более сложным, требующим анализа данных и отладки в конфигураторе.

    Надеемся, что предложенные нами шаги помогут вам успешно диагностировать и устранить ошибку при подборе товара в 1С:УТ 11.4 и вернуться к комфортной и эффективной работе.

← На главную