Здравствуйте, при запуске справочника "Роли исполнителей" в ERP 2 выдал такую ошибку "Обнаружено дублирование ключевых значений в колонках: "Ссылка". Отображение данных в списке невозможно." почитал эту статью и следовал по нему https://infostart.ru/1c/articles/1586832/ но не могу найти в консоль запроса дублирующие значений в колонке ссылка, как изменить запрос чтобы найти неуникальные ссылки?
ВЫБРАТЬ РАЗЛИЧНЫЕ
ИсполнителиЗадачПереопределяемый.РольИсполнителя КАК РольИсполнителя
ПОМЕСТИТЬ Исполнители
ИЗ
РегистрСведений.ИсполнителиЗадач КАК ИсполнителиЗадачПереопределяемый
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК СправочникРолиИсполнителейПереопределяемый
ПО ИсполнителиЗадачПереопределяемый.РольИсполнителя = СправочникРолиИсполнителейПереопределяемый.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СправочникРолиИсполнителейПереопределяемый.Ссылка КАК Ссылка,
СправочникРолиИсполнителейПереопределяемый.ПометкаУдаления КАК ПометкаУдаления,
СправочникРолиИсполнителейПереопределяемый.Предопределенный КАК Предопределенный,
СправочникРолиИсполнителейПереопределяемый.Код КАК Код,
СправочникРолиИсполнителейПереопределяемый.Наименование КАК Наименование,
СправочникРолиИсполнителейПереопределяемый.ИспользуетсяБезОбъектовАдресации КАК ИспользуетсяБезОбъектовАдресации,
СправочникРолиИсполнителейПереопределяемый.ИспользуетсяСОбъектамиАдресации КАК ИспользуетсяСОбъектамиАдресации,
СправочникРолиИсполнителейПереопределяемый.ТипыОсновногоОбъектаАдресации КАК ТипыОсновногоОбъектаАдресации,
СправочникРолиИсполнителейПереопределяемый.ТипыДополнительногоОбъектаАдресации КАК ТипыДополнительногоОбъектаАдресации,
СправочникРолиИсполнителейПереопределяемый.Комментарий КАК Комментарий,
ВЫБОР
КОГДА СправочникРолиИсполнителейПереопределяемый.ИспользуетсяСОбъектамиАдресации
ТОГДА ИСТИНА
КОГДА СправочникРолиИсполнителейПереопределяемый.Ссылка В
(ВЫБРАТЬ
Исполнители.РольИсполнителя
ИЗ
Исполнители
ГДЕ
Исполнители.РольИсполнителя = СправочникРолиИсполнителейПереопределяемый.Ссылка)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЕстьИсполнители,
СправочникРолиИсполнителейПереопределяемый.ВнешняяРоль КАК ВнешняяРоль,
СправочникРолиИсполнителейПереопределяемый.КраткоеПредставление КАК КраткоеПредставление
ИЗ
Справочник.РолиИсполнителей.Назначение КАК РолиИсполнителейНазначениеПереопределяемый
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК СправочникРолиИсполнителейПереопределяемый
ПО РолиИсполнителейНазначениеПереопределяемый.Ссылка = СправочникРолиИсполнителейПереопределяемый.Ссылка
ГДЕ
РолиИсполнителейНазначениеПереопределяемый.ТипПользователей = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СправочникРолиИсполнителейПереопределяемый.Ссылка) > 1
ВЫБРАТЬ
СправочникРолиИсполнителейПереопределяемый.Ссылка КАК Ссылка
ИЗ
Справочник.РолиИсполнителей КАК СправочникРолиИсполнителейПереопределяемый
Имеющие
Количество(СправочникРолиИсполнителейПереопределяемый.ссылка) > 1
Пишет: Поле не входит в группу "СправочникРолиИсполнителейПереопределяемый.Ссылка"
<<?>>СправочникРолиИсполнителейПереопределяемый.Ссылка КАК Ссылка
(10) В (6) я вам ерунду написал, посыпаю голову пеплом...
Табличная часть справочника соединяется со справочником владельцем и у вас двойная ссылка в итоге. По всей видимости, ответ в (2), проблема в БД, одна табличная часть на 2 элемента справочника, либо наоборот.
Попробуйте в консоли изменить запрос так:
Сделал, в этот раз вместе (Записей в результате:104) показывает (Записей в результате:103)
ВЫБРАТЬ РАЗЛИЧНЫЕ
ИсполнителиЗадачПереопределяемый.РольИсполнителя КАК РольИсполнителя
ПОМЕСТИТЬ Исполнители
ИЗ
РегистрСведений.ИсполнителиЗадач КАК ИсполнителиЗадачПереопределяемый
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК СправочникРолиИсполнителейПереопределяемый
ПО (ИсполнителиЗадачПереопределяемый.РольИсполнителя = СправочникРолиИсполнителейПереопределяемый.Ссылка)
;
ВЫБРАТЬ
СправочникРолиИсполнителейПереопределяемый.Ссылка,
СправочникРолиИсполнителейПереопределяемый.ПометкаУдаления,
СправочникРолиИсполнителейПереопределяемый.Предопределенный,
СправочникРолиИсполнителейПереопределяемый.Код,
СправочникРолиИсполнителейПереопределяемый.Ссылка.Код,
РолиИсполнителейНазначениеПереопределяемый.Ссылка.Код,
СправочникРолиИсполнителейПереопределяемый.ПометкаУдаления,
СправочникРолиИсполнителейПереопределяемый.Предопределенный,
СправочникРолиИсполнителейПереопределяемый.Наименование,
СправочникРолиИсполнителейПереопределяемый.ИспользуетсяБезОбъектовАдресации,
СправочникРолиИсполнителейПереопределяемый.ИспользуетсяСОбъектамиАдресации,
СправочникРолиИсполнителейПереопределяемый.ТипыОсновногоОбъектаАдресации,
СправочникРолиИсполнителейПереопределяемый.ТипыДополнительногоОбъектаАдресации,
СправочникРолиИсполнителейПереопределяемый.Комментарий,
ВЫБОР
КОГДА СправочникРолиИсполнителейПереопределяемый.ИспользуетсяСОбъектамиАдресации
ТОГДА ИСТИНА
КОГДА СправочникРолиИсполнителейПереопределяемый.Ссылка В
(ВЫБРАТЬ
Исполнители.РольИсполнителя
ИЗ
Исполнители
ГДЕ
Исполнители.РольИсполнителя = СправочникРолиИсполнителейПереопределяемый.Ссылка)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЕстьИсполнители,
СправочникРолиИсполнителейПереопределяемый.ВнешняяРоль,
СправочникРолиИсполнителейПереопределяемый.КраткоеПредставление
ИЗ
Справочник.РолиИсполнителей.Назначение КАК РолиИсполнителейНазначениеПереопределяемый
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК СправочникРолиИсполнителейПереопределяемый
ПО РолиИсполнителейНазначениеПереопределяемый.Ссылка = СправочникРолиИсполнителейПереопределяемый.Ссылка
ГДЕ
РолиИсполнителейНазначениеПереопределяемый.ТипПользователей = Значение(Справочник.Пользователи.ПустаяСсылка)
(15) У нас он работает из коробки, в нем 13 записей:
Координатор выполнения задач
Согласующий заявки на возврат товаров от клиентов
Согласующий коммерческие условия закупок
Согласующий коммерческие условия продаж
Согласующий логистические условия закупок
Согласующий логистические условия продаж
Согласующий установки цен номенклатуры
Согласующий финансовые условия закупок
Согласующий финансовые условия продаж
Согласующий ценовые условия закупок
Согласующий ценовые условия продаж
Менеджер по закупке импортного товара
Бухгалтер.
Что выдает у вас такой запрос:
ВЫБРАТЬ
РолиИсполнителейНазначение.ТипПользователей КАК ТипПользователей,
РолиИсполнителейНазначение.Ссылка КАК Ссылка
ИЗ
Справочник.РолиИсполнителей.Назначение КАК РолиИсполнителейНазначение
У нас конфигурация: Объединенное решение: Модуль 1С:CRM 3 (3.1.24.15) +
1С:ERP Управление предприятием 2 (2.5.10.74)
Справочник.РолиИсполнителей из коробки не работает
Можете вы свой запрос прикрепить? Запрос из типовой конфигурации?
ВЫБРАТЬ
РолиИсполнителейНазначение.ТипПользователей КАК ТипПользователей,
РолиИсполнителейНазначение.Ссылка КАК Ссылка
ИЗ
Справочник.РолиИсполнителей.Назначение КАК РолиИсполнителейНазначение
(17)Да, я видел, что у вас объединенное решение. У нас чистая ЕРП. Теперь вы видите свою проблему? У вас в ТЧ "Назначение" для некоторых элементов заполнена куча строк с "Справочник.Пользователи.ПустаяСсылка". Я бы попробовал оставить в ТЧ только по одному элементу в копии базы.
У нас сейчас такой запрос:
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РолиИсполнителейНазначение.ТипПользователей) КАК КоличествовТЧ,
РолиИсполнителейНазначение.Ссылка КАК Ссылка
ИЗ
Справочник.РолиИсполнителей.Назначение КАК РолиИсполнителейНазначение
СГРУППИРОВАТЬ ПО
РолиИсполнителейНазначение.Ссылка
Выдает такой результат:
КоличествовТЧ Ссылка
1 Координатор выполнения задач
1 Согласующий заявки на возврат товаров от клиентов
1 Согласующий коммерческие условия закупок
1 Согласующий коммерческие условия продаж
1 Согласующий логистические условия закупок
1 Согласующий логистические условия продаж
1 Согласующий установки цен номенклатуры
1 Согласующий финансовые условия закупок
1 Согласующий финансовые условия продаж
1 Согласующий ценовые условия закупок
1 Согласующий ценовые условия продаж
1 Менеджер по закупке импортного товара
1 Бухгалтер
(22) Например так, но это тупо оставляет первую строку, без дополнительных проверок.
Если у вас роли, уже использовались в системе и уже имеют назначения, то можно выгрузить в массив и вызвать функцию БСП удаление повторяющиеся элементы массива, и потом загрузить обратно.
Стр = Справочники.РолиИсполнителей.Выбрать();
Пока Стр.Следующий() Цикл
Об = Стр.Ссылка.ПолучитьОбъект();
Если Об.Назначение.Количество()>1 Тогда
ТипПользователей = Об.Назначение[0].ТипПользователей;
Об.Назначение.Очистить();
НовСтр = Об.Назначение.Добавить();
НовСтр.ТипПользователей = ТипПользователей;
Об.Записать();
КонецЕсли;
КонецЦикла;