Имя: Пароль:
1C
 
Обнаружено дублирование ключевых значений в колонках: "Ссылка".
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) Ага, противоречие с основной таблицей