Редактирование динамического списка документа (дублирование ключевых значений) #797087


#0 by ac13
УФ (УНФ 1.6) Форма списка документа, на форме динамический список. Редактирую его вручную, добавляю левое соединение. При открытии списка документов выдает ошибку, что Обнаружено дублирование ключевых значений в колонках "Ссылка". Ничего не нахожу, что за фигня ... Такая ошибка появляется, если в списке содержится например две одинаковые ссылки на справочник? Так я делал через вложенный запрос, туда засунул таблицу КонтрагентыКонтактнаяИнформация. Не помогло
#1 by catena
Вытащи запрос в конструктор и посмотри, где дубль.
#2 by ac13
так вот не нахожу ж
#3 by Ц_У
Запрос в студию
#4 by SSSSS_AAAAA
Такая ошибка выдается, когда ссылка из основной таблицы списка в результате выполнения запроса появляется более одного раза. То есть к одной записи основной таблицы присоединяется две и более записей из другой. Вот и ищи такое задвоение.
#5 by ac13
ВЫБРАТЬ     ДокументПриемИПередачаВРемонт.ДатаВыдачаИзРемонта,     ДокументПриемИПередачаВРемонт.ДатаОкончанияРемонта,     ДокументПриемИПередачаВРемонт.ДатаПередачаВСервисныйЦентр,     ДокументПриемИПередачаВРемонт.НаправлениеДеятельности,     ДокументПриемИПередачаВРемонт.ОписаниеМеханическихПовреждений,     ДокументПриемИПередачаВРемонт.ОписаниеНеисправности,         СуммаПлатежа     ),     ДокументПриемИПередачаВРемонт.ДополнительныеРеквизиты.(         ТекстоваяСтрока     ),     ДокументПриемИПередачаВРемонт.МоментВремени ИЗ
#6 by ac13
Мое левое соединение в самом низу. Мне нужна таблица Контактная информация
#7 by catena
Ну значит у кого-то несколько строк в контактной информации.
#8 by Feunoir
Феерично!!! Такой структуры БД я давно не встречал! Представь себе, что у тебя на одного контрагента есть две записи в контактной информации. В результате в динамическом списке будет: Вот тебе и дублирование ссылки.
#9 by ac13
ну так мне и надо - адрес и телефон ) а как быть в такой ситуации? дело в том, что я пока просто одно левое соединение добавил, даже поля никакие не брал из контактной информации. а ошибку выдает
#10 by catena
Ему наплевать, брал ты или не брал. Он соединяет в любом случае. <а как быть в такой ситуации?> 1. Убрать основную таблицу дин.списка. 2. Соединять два раза - по адресу и по телефону.
#11 by SSSSS_AAAAA
"а как быть в такой ситуации?" Сначала их сгруппировать в 1(ОДНУ) запись, а уж потом ее присоединять к основной таблице.
#12 by ildary
первый вариант - не айс, т.к. документ все равно будет дублироваться (хоть и 1С перестанет на это ругаться).
#13 by catena
Все зависит от задачи.
#14 by ac13
Нельзя группировать по полям внешних таблица при наличии вложенных
#15 by ac13
как я их сгруппирую в одну запись?
#16 by ildary
либо через промежуточную ВТ (если версия 1С позволяет), либо через 2 последовательных левых соединения к одной таблице
#17 by ac13
ну смотрите, вот сократил запрос да этого:     ДокументПриемИПередачаВРемонт.Контрагент ИЗ
#18 by ac13
мне выдает ошибку о дублировании ключевых значений в колонках "Ссылка"
#19 by catena
Тебе ж объяснили уже всё...
#20 by ac13
промежуточную ВТ там нельзя сделать. 2 последовательных левых соединения к одной таблице - что имеется ввиду?
#21 by ac13
раз левое соединение и два левое соединение, так?
#22 by catena
раз елвое соединение по контрагент и вид и два левое соединение по контрагент и другойвид
#23 by ac13
простите, я не очень понимаю. вид чего?
#24 by catena
Контактной информации. Она у вас там делится же как-то.
#25 by singlych
Вид не спасет, тк могут быть два телефона у одного контрагента.
#26 by ac13
хорошо, а с чем соединять то? то есть я оставляю это соединение и добавляю еще соединение по виду?
#27 by ac13
так что, тут нет вариантов?
#28 by ac13
ну а если, допустим только по одному телефону
#29 by catena
А нужно оба телефона? Нарисуй, как оно в итоге должно быть, потом пиши.
#30 by catena
Да, в ПО еще условие добавляешь. Но если там еще и виду несколько, тогда надо как-то собраться и сгруппировать.
#31 by ac13
нет, нужен один телефон. есть динамический список документов Прием и передача в ремонт. Надо дополнительными двумя колонками вывести Телефон и Адрес.
#32 by ac13
Вот как я получаю телефон: ВЫБОР КОГДА ПриемИПередачаВРемонт.Телефон = НЕОПРЕДЕЛЕНО И ПриемИПередачаВРемонт.Договор.ДругойПлательщик = ИСТИНА ТОГДА ПриемИПередачаВРемонт.Договор.Телефон ИНАЧЕ ВЫБОР КОГДА ПриемИПередачаВРемонт.Телефон = НЕОПРЕДЕЛЕНО И ПриемИПередачаВРемонт.Договор.ДругойПлательщик = ЛОЖЬ ТОГДА КонтрагентыКонтактнаяИнформация.НомерТелефона ИНАЧЕ ПриемИПередачаВРемонт.Телефон КОНЕЦ КОНЕЦ
#33 by Kondarat
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
#34 by ac13
вот эту строку куда вписать? И КонтрагентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИформации.ТелефонКонтрагента)
#35 by ac13
сейчас я попробую
#36 by ac13
ну вроде получилось. спасибо большое!!!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С