|
Редактирование динамического списка документа (дублирование ключевых значений) | ☑ | ||
---|---|---|---|---|
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
|
ну вроде получилось. спасибо большое!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |