![]() |
![]() |
|
Обнаружено дублирование ключевых значений в колонках: "Ссылка". | ☑ | ||
---|---|---|---|---|
0
Cоляпсус
07.08.25
✎
14:33
|
Добрый день. Помогите пожалуйста разобраться. УТ 11.5 Форма списка документов изменил динамический запрос программно в процедуре ПриСозданииНаСервереПосле. И при открытии формы выходит такая ошибка. Всё посмотрел и не пойму где в запросе поправить. Ссылок вроде только одна. Может не нравится соединение. Главную таблицу указал тоже в коде как написано в рекомендациях на ИТС.
"ВЫБРАТЬ | ДокументОтборРазмещениеТоваровПереопределяемый.Ссылка КАК Ссылка, | ДокументОтборРазмещениеТоваровПереопределяемый.ПометкаУдаления КАК ПометкаУдаления, | ДокументОтборРазмещениеТоваровПереопределяемый.Номер КАК Номер, | ДокументОтборРазмещениеТоваровПереопределяемый.Дата КАК Дата, | ДокументОтборРазмещениеТоваровПереопределяемый.Проведен КАК Проведен, | ДокументОтборРазмещениеТоваровПереопределяемый.Комментарий КАК Комментарий, | ДокументОтборРазмещениеТоваровПереопределяемый.ВидОперации КАК ВидОперации, | ДокументОтборРазмещениеТоваровПереопределяемый.ЗонаОтгрузки КАК ЗонаОтгрузки, | ДокументОтборРазмещениеТоваровПереопределяемый.ЗонаПриемки КАК ЗонаПриемки, | ДокументОтборРазмещениеТоваровПереопределяемый.Исполнитель КАК Исполнитель, | ДокументОтборРазмещениеТоваровПереопределяемый.РабочийУчасток КАК РабочийУчасток, | ДокументОтборРазмещениеТоваровПереопределяемый.Распоряжение КАК Распоряжение, | ДокументОтборРазмещениеТоваровПереопределяемый.Статус КАК Статус, | ДокументОтборРазмещениеТоваровПереопределяемый.МоментВремени КАК МоментВремени, | ЗаказКлиента.Номер КАК НомерЗаказа, | ЗаказКлиента.Партнер КАК КлиентЗаказа |ИЗ | Документ.ОтборРазмещениеТоваров КАК ДокументОтборРазмещениеТоваровПереопределяемый | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям КАК РасходныйОрдерНаТоварыТоварыПоРаспоряжениям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента | ПО (РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Распоряжение = ЗаказКлиента.Ссылка) | ПО (ДокументОтборРазмещениеТоваровПереопределяемый.Распоряжение = РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Ссылка)" Заранее благодарен. |
|||
1
Cоляпсус
07.08.25
✎
14:34
|
Форма списка документов конечно: Документ отбор (размещение) товаров
|
|||
2
rozer76
07.08.25
✎
14:35
|
соединения плодят дубли Ссылка
|
|||
3
Cоляпсус
07.08.25
✎
15:11
|
А как исправить?
|
|||
4
Fish
гуру
07.08.25
✎
15:22
|
(3) Загони запрос в консоль запросов и отбери ссылки, имеющие количество больше 1.
Поймёшь, почему задвоение |
|||
5
Cоляпсус
07.08.25
✎
15:28
|
(4) Извиняюсь, не совсем понял.
|
|||
6
Ненавижу 1С
гуру
07.08.25
✎
15:33
|
можно конечно добавить РАЗЛИЧНЫЕ, но теоретически может быть ордер по нескольким заказам клиентам
|
|||
7
Cоляпсус
07.08.25
✎
15:36
|
(6) да, точно может быть.
|
|||
8
Cоляпсус
07.08.25
✎
15:40
|
(6) Да и различным "Комментарий" не нравится.
|
|||
9
rozer76
07.08.25
✎
16:00
|
(8) комментарий сделай через Выразить если там неограниченная длина
|
|||
10
Cоляпсус
08.08.25
✎
09:42
|
(9) Да так и сделал. Всё равно та же тема. Ошибка
|
|||
11
Fish
гуру
07.08.25
✎
16:11
|
(5) Что такое консоль запросов знаешь?
|
|||
12
PR
07.08.25
✎
16:57
|
(3) Убери из запроса
| ЗаказКлиента.Номер КАК НомерЗаказа, | ЗаказКлиента.Партнер КАК КлиентЗаказа Убери из запроса | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям КАК РасходныйОрдерНаТоварыТоварыПоРаспоряжениям | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента | ПО (РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Распоряжение = ЗаказКлиента.Ссылка) | ПО (ДокументОтборРазмещениеТоваровПереопределяемый.Распоряжение = РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Ссылка) |
|||
13
Cоляпсус
07.08.25
✎
17:46
|
(12) Но это я тогда вернусь к типовому динамическому запросу. А мне нужно добавить на форму две колонки с номерами и клиентами, поэтому и пришлось добавлять в запрос два соединения.
|
|||
14
Cоляпсус
07.08.25
✎
17:47
|
(11) Что в ней сделать я не пойму.
|
|||
15
PR
07.08.25
✎
18:35
|
(13) Все верно, вернешься
А потом ты включишь мозг и подумаешь, как в одно поле ты хочешь упихнуть несколько значений НомерЗаказа и то же самое с КлиентЗаказа и что ты вообще в принципе хочешь До того момента, как придумаешь, не трогай конфигуратор рабочей базы |
|||
16
PR
07.08.25
✎
18:37
|
Ключевая мысль, которую тебе нужно помнить
Твой запрос должен выдавать ровно одну строку для каждого значения поля Ссылка Если у тебя в результате соединений получается больше, ты накосячил, делай одну |
|||
17
Ненавижу 1С
гуру
08.08.25
✎
08:09
|
(7) если будет несколько, то в запросе это не вывести, используйте событие ПриПолученииДанныхНаСервере
|
|||
18
Fish
гуру
08.08.25
✎
09:24
|
(14) Смотри (4)
|
|||
19
Chameleon1980
08.08.25
✎
10:10
|
только если сделать максимум
| ЗаказКлиента.Номер КАК НомерЗаказа, | ЗаказКлиента.Партнер КАК КлиентЗаказа но тебе нужно же не так. тебе объясняют, что у тебя разные номерзаказа и клиент заказа для одного и того же ОтборРазмещениеТоваров.ссылка |
|||
20
СвинТуз
08.08.25
✎
10:14
|
Попытка сделать из формы списка документа обработку
закончилась неудачей. |
|||
21
craxx
08.08.25
✎
23:04
|
(7) Бинго. Вот тебе и дубли.
Твоя форма списка не пойдет для таких целей. Делай обработку с динамическим списком без ключевых полей. |
|||
22
timurhv
09.08.25
✎
01:13
|
Занятно, человек не понимает почему ссылки дублируются.
Однако, про основную таблицу ДС не забыл, что странно (спецы в 99% про это забудут). Обычно наоборот, может другие изменения делал все это время конечно... |
|||
23
craxx
09.08.25
✎
07:02
|
(22) Выше же написал, типовой модифицирует.
|
|||
24
Garykom
гуру
09.08.25
✎
09:39
|
Назначена основная таблица = Не должно быть больше записей чем есть в ней (дублей по ключевым полям)
Надо переписать запрос так чтобы дублей не было, например через левое и все связи по основной таблице |
|||
25
Garykom
гуру
09.08.25
✎
09:40
|
(19) Ага, противоречие с основной таблицей
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |