Имя: Пароль:
1C
1С v8
Редактирование динамического списка документа (дублирование ключевых значений)
0 ac13
 
11.05.17
13:11
УФ (УНФ 1.6) Форма списка документа, на форме динамический список.
Редактирую его вручную, добавляю левое соединение.
При открытии списка документов выдает ошибку, что
Обнаружено дублирование ключевых значений в колонках "Ссылка".
Ничего не нахожу, что за фигня ...

Такая ошибка появляется, если в списке содержится например две одинаковые ссылки на справочник?
Так я делал через вложенный запрос, туда засунул таблицу КонтрагентыКонтактнаяИнформация. Не помогло
1 catena
 
11.05.17
13:15
(0)Вытащи запрос в конструктор и посмотри, где дубль.
2 ac13
 
11.05.17
13:25
(1) так вот не нахожу ж
3 Ц_У
 
11.05.17
13:26
(2) Запрос в студию
4 SSSSS_AAAAA
 
11.05.17
13:29
(2) Такая ошибка выдается, когда ссылка из основной таблицы списка в результате выполнения запроса появляется более одного раза. То есть к одной записи основной таблицы присоединяется две и более записей из другой. Вот и ищи такое задвоение.
5 ac13
 
11.05.17
13:32
ВЫБРАТЬ
    ДокументПриемИПередачаВРемонт.Ссылка,
    ДокументПриемИПередачаВРемонт.ПометкаУдаления,
    ДокументПриемИПередачаВРемонт.Номер,
    ДокументПриемИПередачаВРемонт.Дата,
    ДокументПриемИПередачаВРемонт.Проведен,
    ДокументПриемИПередачаВРемонт.Автор,
    ДокументПриемИПередачаВРемонт.ВалютаДокумента,
    ДокументПриемИПередачаВРемонт.ВариантЗавершенияРемонта,
    ДокументПриемИПередачаВРемонт.ВариантРемонта,
    ДокументПриемИПередачаВРемонт.ВыдачаИзРемонта,
    ДокументПриемИПередачаВРемонт.Гарантийный,
    ДокументПриемИПередачаВРемонт.ГарантияНаРемонт,
    ДокументПриемИПередачаВРемонт.ДатаВыдачаИзРемонта,
    ДокументПриемИПередачаВРемонт.ДатаОкончанияРемонта,
    ДокументПриемИПередачаВРемонт.ДатаПередачаВСервисныйЦентр,
    ДокументПриемИПередачаВРемонт.ДатаРемонтВыполнен,
    ДокументПриемИПередачаВРемонт.Договор,
    ДокументПриемИПередачаВРемонт.ДокументОприходования,
    ДокументПриемИПередачаВРемонт.ДокументПродажи,
    ДокументПриемИПередачаВРемонт.ДокументРаботы,
    ДокументПриемИПередачаВРемонт.Комментарий,
    ДокументПриемИПередачаВРемонт.Комплектация,
    ДокументПриемИПередачаВРемонт.Контрагент,
    ДокументПриемИПередачаВРемонт.Кратность,
    ДокументПриемИПередачаВРемонт.Курс,
    ДокументПриемИПередачаВРемонт.НалогообложениеНДС,
    ДокументПриемИПередачаВРемонт.НаправлениеДеятельности,
    ДокументПриемИПередачаВРемонт.НДСВключатьВСтоимость,
    ДокументПриемИПередачаВРемонт.Номенклатура,
    ДокументПриемИПередачаВРемонт.ОписаниеМеханическихПовреждений,
    ДокументПриемИПередачаВРемонт.ОписаниеНеисправности,
    ДокументПриемИПередачаВРемонт.ОписаниеРемонта,
    ДокументПриемИПередачаВРемонт.Организация,
    ДокументПриемИПередачаВРемонт.Ответственный,
    ДокументПриемИПередачаВРемонт.ПередачаВСервисныйЦентр,
    ДокументПриемИПередачаВРемонт.РезультатРемонта,
    ДокументПриемИПередачаВРемонт.РемонтВыполнен,
    ДокументПриемИПередачаВРемонт.СервисЦентр,
    ДокументПриемИПередачаВРемонт.СерийныйНомер,
    ДокументПриемИПередачаВРемонт.СостояниеРемонта,
    ДокументПриемИПередачаВРемонт.СрокДействияГарантии,
    ДокументПриемИПередачаВРемонт.СтавкаНДС,
    ДокументПриемИПередачаВРемонт.СтруктурнаяЕдиница,
    ДокументПриемИПередачаВРемонт.СуммаВключаетНДС,
    ДокументПриемИПередачаВРемонт.СуммаДокумента,
    ДокументПриемИПередачаВРемонт.СуммаНДС,
    ДокументПриемИПередачаВРемонт.УсловияГарантии,
    ДокументПриемИПередачаВРемонт.УсловияПриемки,
    ДокументПриемИПередачаВРемонт.Характеристика,
    ДокументПриемИПередачаВРемонт.ХозяйственнаяОперация,
    ДокументПриемИПередачаВРемонт.Доставка,
    ДокументПриемИПередачаВРемонт.Офис,
    ДокументПриемИПередачаВРемонт.Выезд,
    ДокументПриемИПередачаВРемонт.Источник,
    ДокументПриемИПередачаВРемонт.Проверено,
    ДокументПриемИПередачаВРемонт.ТипУстройства,
    ДокументПриемИПередачаВРемонт.Модель,
    ДокументПриемИПередачаВРемонт.Примечание,
    ДокументПриемИПередачаВРемонт.Производитель,
    ДокументПриемИПередачаВРемонт.Телефон,
    ДокументПриемИПередачаВРемонт.Предоплата.(
        Ссылка,
        НомерСтроки,
        Документ,
        СуммаРасчетов,
        Курс,
        Кратность,
        СуммаПлатежа
    ),
    ДокументПриемИПередачаВРемонт.ДополнительныеРеквизиты.(
        Ссылка,
        НомерСтроки,
        Свойство,
        Значение,
        ТекстоваяСтрока
    ),
    ДокументПриемИПередачаВРемонт.МоментВремени
ИЗ
    Документ.ПриемИПередачаВРемонт КАК ДокументПриемИПередачаВРемонт
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
        ПО ДокументПриемИПередачаВРемонт.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
6 ac13
 
11.05.17
13:33
Мое левое соединение в самом низу. Мне нужна таблица Контактная информация
7 catena
 
11.05.17
13:37
(6)Ну значит у кого-то несколько строк в контактной информации.
8 Feunoir
 
11.05.17
13:41
Феерично!!! Такой структуры БД я давно не встречал!

(6) Представь себе, что у тебя на одного контрагента есть две записи в контактной информации. В результате в динамическом списке будет:

Документ1.Ссылка - Документ1.Контрагент1 - Адрес
Документ1.Ссылка - Документ1.Контрагент1 - Телефон

Вот тебе и дублирование ссылки.
9 ac13
 
11.05.17
13:48
(8) ну так мне и надо - адрес и телефон )
а как быть в такой ситуации?

дело в том, что я пока просто одно левое соединение добавил, даже поля никакие не брал из контактной информации. а ошибку выдает
10 catena
 
11.05.17
13:52
(9)Ему наплевать, брал ты или не брал. Он соединяет в любом случае.

<а как быть в такой ситуации?>
1. Убрать основную таблицу дин.списка.
2. Соединять два раза - по адресу и по телефону.
11 SSSSS_AAAAA
 
11.05.17
13:52
(9) "а как быть в такой ситуации?"
Сначала их сгруппировать в 1(ОДНУ) запись, а уж потом ее присоединять к основной таблице.
12 ildary
 
11.05.17
13:53
(10) первый вариант - не айс, т.к. документ все равно будет дублироваться (хоть и 1С перестанет на это ругаться).
13 catena
 
11.05.17
13:54
(12)Все зависит от задачи.
14 ac13
 
11.05.17
13:59
Нельзя группировать по полям внешних таблица при наличии вложенных
15 ac13
 
11.05.17
14:00
(11) как я их сгруппирую в одну запись?
16 ildary
 
11.05.17
14:02
(11) либо через промежуточную ВТ (если версия 1С позволяет), либо через 2 последовательных левых соединения к одной таблице
17 ac13
 
11.05.17
14:09
(16) ну смотрите, вот сократил запрос да этого:

ВЫБРАТЬ
    ДокументПриемИПередачаВРемонт.Ссылка,
    ДокументПриемИПередачаВРемонт.Контрагент
ИЗ
    Документ.ПриемИПередачаВРемонт КАК ДокументПриемИПередачаВРемонт
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
        ПО ДокументПриемИПередачаВРемонт.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
18 ac13
 
11.05.17
14:10
мне выдает ошибку о дублировании ключевых значений в колонках "Ссылка"
19 catena
 
11.05.17
14:10
(18)Тебе ж объяснили уже всё...
20 ac13
 
11.05.17
14:11
промежуточную ВТ там нельзя сделать.

2 последовательных левых соединения к одной таблице - что имеется ввиду?
21 ac13
 
11.05.17
14:11
раз левое соединение и два левое соединение, так?
22 catena
 
11.05.17
14:13
(21)раз елвое соединение по контрагент и вид и два левое соединение по контрагент и другойвид
23 ac13
 
11.05.17
14:15
(22) простите, я не очень понимаю. вид чего?
24 catena
 
11.05.17
14:17
(23)Контактной информации. Она у вас там делится же как-то.
25 singlych
 
11.05.17
14:18
Вид не спасет, тк могут быть два телефона у одного контрагента.
26 ac13
 
11.05.17
14:19
(24) хорошо, а с чем соединять то?
то есть я оставляю это соединение и добавляю еще соединение по виду?

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
        ПО ДокументПриемИПередачаВРемонт.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
27 ac13
 
11.05.17
14:19
(25) так что, тут нет вариантов?
28 ac13
 
11.05.17
14:19
(26) ну а если, допустим только по одному телефону
29 catena
 
11.05.17
14:20
(28)А нужно оба телефона? Нарисуй, как оно в итоге должно быть, потом пиши.
30 catena
 
11.05.17
14:21
(26)Да, в ПО еще условие добавляешь. Но если там еще и виду несколько, тогда надо как-то собраться и сгруппировать.
31 ac13
 
11.05.17
14:22
нет, нужен один телефон.
есть динамический список документов Прием и передача в ремонт.
Надо дополнительными двумя колонками вывести Телефон и Адрес.
32 ac13
 
11.05.17
14:23
Вот как я получаю телефон:

ВЫБОР КОГДА ПриемИПередачаВРемонт.Телефон = НЕОПРЕДЕЛЕНО И ПриемИПередачаВРемонт.Договор.ДругойПлательщик = ИСТИНА ТОГДА ПриемИПередачаВРемонт.Договор.Телефон ИНАЧЕ ВЫБОР КОГДА ПриемИПередачаВРемонт.Телефон = НЕОПРЕДЕЛЕНО И ПриемИПередачаВРемонт.Договор.ДругойПлательщик = ЛОЖЬ ТОГДА КонтрагентыКонтактнаяИнформация.НомерТелефона ИНАЧЕ ПриемИПередачаВРемонт.Телефон КОНЕЦ КОНЕЦ
33 Kondarat
 
11.05.17
14:28
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
        ПО ДокументПриемИПередачаВРемонт.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
И КонтрагентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИформации.ТелефонКонтрагента)
34 ac13
 
11.05.17
14:39
вот эту строку куда вписать?

И КонтрагентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИформации.ТелефонКонтрагента)
35 ac13
 
11.05.17
14:43
сейчас я попробую
36 ac13
 
11.05.17
15:03
ну вроде получилось. спасибо большое!!!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn