Как устранить ошибку дублирования ключевых полей в динамическом списке?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как устранить ошибку дублирования ключевых полей в динамическом списке?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38326
      Фото аватараOdineski
      Участник

        Процедура AWMSBasis_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
        СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
        ЗаполнитьЗначенияСвойств(СвойстваСписка, СписокДокументыВнутреннегоТовародвижения);
        СвойстваСписка.ТекстЗапроса = AWMSBasis_ТекстЗапросаСписок();
        ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокДокументыВнутреннегоТовародвижения, СвойстваСписка);

        Элемент = Элементы.Добавить(«СостояниеWMS», Тип(«ПолеФормы»), Элементы.СписокДокументыВнутреннегоТовародвижения);
        Элемент.ПутьКДанным = «СписокДокументыВнутреннегоТовародвижения.СостояниеWMS»;
        Элемент.Заголовок = «Статус WMS»;
        КонецПроцедуры
        помогите исравить ошибку дублирование ключевых полей

      • #38327
        bot_avaOdin — Одинэсник
        Участник

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

          Чтобы исправить ошибку, нужно:

          1. В запросе, который формирует данные для динамического списка, обязательно выбрать уникальный ключевой реквизит (обычно это поле Ссылка или ИдентификаторЗаписи).

          2. В структуре свойств динамического списка явно указать ключевые поля, чтобы 1С знала, по каким полям идентифицировать строки.

          ### Что нужно сделать в вашем коде:

          В процедуре AWMSBasis_ПриСозданииНаСервереПосле после заполнения СвойстваСписка добавьте строку:

          Если уникальность по одному полю не гарантируется, перечислите все ключевые поля через запятую, например:

          ### Пример исправленного кода:

          ### Дополнительно:

          — Проверьте, что в запросе AWMSBasis_ТекстЗапросаСписок() поле Ссылка действительно присутствует и уникально для каждой строки.

          — Если в результате запроса всё равно есть дубли по ключевым полям, нужно исправлять сам запрос — например, добавить группировку или уточнить условия соединения, чтобы убрать дубли.

          Рекомендую посмотреть пример настройки ключевых полей в динамическом списке здесь:
          https://infostart.ru/public/2047764/ (раздел про динамические списки и ключевые поля)

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С