Нужно в списке доукментов вывести 2 колонки с валютой и суммами, Если в Документе "Заявка на расходование денежных средств" Валюта взаиморасчетов отличается от валюты платежей (Соответственно и суммы будут отличаться).
Список динамический, если в запросе выбираю валюту и сумму взаиморасчетов, то выдает ошибку "Обнаружено дублирование ключевых значений в колонках: "Ссылка".
Отображение данных в списке невозможно".

Как тогда можно организовать решение этого вопроса, помогите, пжл, разобраться.
На скрине как хотели бы видеть.
---
Вы берете данные табличной части. В табличной части может быть несколько строк. Как минимум надо группировать по ссылке и валюте и суммировать СуммуВзаиморасчетов.
Ну и заполнять надо в цикле, а не после цикла.

```1c
    ПОка РезультатЗапроса.Следующий() Цикл
    ВалютаВзаиморасчетов = РезультатЗапроса.ВалютаВзаиморасчетов;
    СуммаВзаиморасчетов = РезультатЗапроса.СуммаВзаиморасчетов;
    СТрокаСписка = Строки[РезультатЗапроса.Ссылка];
    СТрокаСписка.Данные.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
    СТрокаСписка.Данные.СуммаВзаиморасчетов = СуммаВзаиморасчетов;
    КонецЦикла;
```
---
и что нам делать с этой информацией? Возьмите консоль, там посмотрите
---
Если знаете, чем помочь, то ответить по сути)
Консоль нормально все отработала и показала список, как хотелось бы.

Но при открытии списка, вылетает ошибка...
---
ну ответ в самом сообщении - Вы так модифицировали запрос, что теперь 1 или более строк документа показывается несколькими строками.

Не зная, физического устройства запроса - помочь сложно
---
ВЫБРАТЬ РАЗЛИЧНЫЕ
 Заявка.Ссылка КАК Ссылка,
 Заявка.ПометкаУдаления КАК ПометкаУдаления,
 Заявка.Номер КАК Номер,
 Заявка.Дата КАК Дата,
 Заявка.Проведен КАК Проведен,
 Заявка.Организация КАК Организация,
 Заявка.Статус КАК Статус,
 ВЫБОР
  КОГДА Заявка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыплатаЗарплаты)
   ТОГДА Заявка.ХозяйственнаяОперацияПоЗарплате
  ИНАЧЕ Заявка.ХозяйственнаяОперация
 КОНЕЦ КАК ХозяйственнаяОперация,
 Заявка.СуммаДокумента КАК СуммаДокумента,
 Заявка.Валюта КАК Валюта,
 Заявка.БанковскийСчет КАК БанковскийСчет,
 Заявка.Касса КАК Касса,
 Заявка.ЖелательнаяДатаПлатежа КАК ДатаПлатежа,
 ВЫБОР
  КОГДА Заявка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику)
   ТОГДА Заявка.ПодотчетноеЛицо
  КОГДА Заявка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию)
    ИЛИ Заявка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию)
    ИЛИ Заявка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств)
   ТОГДА Заявка.ОрганизацияПолучатель
  ИНАЧЕ Заявка.Контрагент
 КОНЕЦ КАК Получатель,
 Заявка.Контрагент КАК Контрагент,
 Заявка.Подразделение КАК Подразделение,
 Заявка.КтоЗаявил КАК Заявитель,
 Заявка.Представление КАК Представление,
 Заявка.ПриоритетОплаты КАК ПриоритетОплаты,
 Заявка.СверхЛимита КАК СверхЛимита,
 Заявка.Автор КАК Автор,
 ВЫБОР
  КОГДА Заявка.ПриоритетОплаты В
    (ВЫБРАТЬ ПЕРВЫЕ 1
     Приоритеты.Ссылка КАК Приоритет
    ИЗ
     Справочник.ПриоритетыОплаты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
     Приоритеты.РеквизитДопУпорядочивания)
   ТОГДА 0
  КОГДА Заявка.ПриоритетОплаты В
    (ВЫБРАТЬ ПЕРВЫЕ 1
     Приоритеты.Ссылка КАК Приоритет
    ИЗ
     Справочник.ПриоритетыОплаты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
     Приоритеты.РеквизитДопУпорядочивания УБЫВ)
   ТОГДА 2
  ИНАЧЕ 1
 КОНЕЦ КАК КартинкаПриоритета,
 ВЫБОР
  КОГДА ЕСТЬNULL(ДенежныеСредства.СуммаОстаток, 0) <= 0
    И Заявка.Проведен
    И Заявка.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаРасходованиеДенежныхСредств.Отклонена)
   ТОГДА ИСТИНА
  ИНАЧЕ ЛОЖЬ
 КОНЕЦ КАК ЗаявкаОплачена,
 ВЫБОР
  КОГДА НаличиеПрисоединенныхФайлов.ЕстьФайлы ЕСТЬ NULL
   ТОГДА 1
  КОГДА НаличиеПрисоединенныхФайлов.ЕстьФайлы
   ТОГДА 0
  ИНАЧЕ 1
 КОНЕЦ КАК ЕстьФайлы,
 СостоянияЭД.СостояниеЭДО КАК СостояниеЭДО,
 СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
 ВЫБОР
  КОГДА Заявка.Валюта = ЗаявкаРасшифровкаПлатежа.ВалютаВзаиморасчетов
   ТОГДА ""
  ИНАЧЕ ЗаявкаРасшифровкаПлатежа.ВалютаВзаиморасчетов
 КОНЕЦ КАК ВалютаВзаиморасчетов,
 ВЫБОР
  КОГДА Заявка.СуммаДокумента = ЗаявкаРасшифровкаПлатежа.СуммаВзаиморасчетов
   ТОГДА ""
  ИНАЧЕ ЗаявкаРасшифровкаПлатежа.СуммаВзаиморасчетов
 КОНЕЦ КАК СуммаВзаиморасчетов

ИЗ
 Документ.ЗаявкаНаРасходованиеДенежныхСредств КАК Заявка
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДенежныеСредстваКВыплате.Остатки КАК ДенежныеСредства
  ПО (ДенежныеСредства.ЗаявкаНаРасходованиеДенежныхСредств = Заявка.Ссылка)
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеПрисоединенныхФайлов
  ПО Заявка.Ссылка = НаличиеПрисоединенныхФайлов.ОбъектСФайлами
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
  ПО (СостоянияЭД.СсылкаНаОбъект = Заявка.Ссылка)
  ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств.РасшифровкаПлатежа КАК ЗаявкаРасшифровкаПлатежа
  ПО (ЗаявкаРасшифровкаПлатежа.Ссылка = Заявка.Ссылка)

Вот запрос, добавила в него только 2 новых значения для выборки ВалютаВзаиморасчетов и суммавзаиморасчетов.
---
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств.РасшифровкаПлатежа КАК ЗаявкаРасшифровкаПлатежа
ПО (ЗаявкаРасшифровкаПлатежа.Ссылка = Заявка.Ссылка)

Соединение с табличной частью - если в ТЧ более 1 строки будет такая ошибка.

Вы можете выводить эти данные в событии ПриПолученииДанныхНаСервере, если отбор/сортировка по этим полям не нужны.
---
ПриПолученииДанныхНаСервере используется для небольших списков?

Я так пробовала, работает.
Но выводит данные для документов через 10 строк, т.е. заполнил значение для одного документа, затем строк 10-12 пустые, затем опять заполнил.

Почему-то строки не попорядку, как в списке документов, заполняет.
---
ПриПолученииДанныхНаСервере используется для небольших списков?
Для любых.

Но выводит данные для документов через 10 строк, т.е. заполнил значение для одного документа, затем строк 10-12 пустые, затем опять заполнил.

Значит не правильно заполняете.
---
&НаСервереБезКонтекста
Процедура С_СписокПриПолученииДанныхНаСервереПосле(ИмяЭлемента, Настройки, Строки)

  Запрос = НОвый Запрос;
  Запрос.Текст =
  "ВЫБРАТЬ
 | ЗаявкаНаРасходованиеДенежныхСредствРасшифровкаПлатежа.Ссылка КАК Ссылка,
 | ЗаявкаНаРасходованиеДенежныхСредствРасшифровкаПлатежа.Сумма КАК Сумма,
 | ЗаявкаНаРасходованиеДенежныхСредствРасшифровкаПлатежа.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
 | ЗаявкаНаРасходованиеДенежныхСредствРасшифровкаПлатежа.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов
 |ИЗ
 | Документ.ЗаявкаНаРасходованиеДенежныхСредств.РасшифровкаПлатежа КАК ЗаявкаНаРасходованиеДенежныхСредствРасшифровкаПлатежа";
 |ГДЕ
 | ЗаявкаНаРасходованиеДенежныхСредствРасшифровкаПлатежа.Ссылка В(&Ссылка)";

 Запрос.УстановитьПараметр("Ссылка", СТроки.ПолучитьКлючи());

 РезультатЗапроса = Запрос.Выполнить().Выбрать();

 ПОка РезультатЗапроса.Следующий() Цикл
    ВалютаВзаиморасчетов = РезультатЗапроса.ВалютаВзаиморасчетов;
    СуммаВзаиморасчетов = РезультатЗапроса.СуммаВзаиморасчетов;
 КонецЦикла;

 СТрокаСписка = Строки[РезультатЗапроса.Ссылка];
 СТрокаСписка.Данные.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
 СТрокаСписка.Данные.СуммаВзаиморасчетов = СуммаВзаиморасчетов;

КонецПроцедуры
---
Можете посмотреть, где и что не так?
Совсем ничего не получается...
---
Вы берете данные табличной части. В табличной части может быть несколько строк. Как минимум надо группировать по ссылке и валюте и суммировать СуммуВзаиморасчетов.
Ну и заполнять надо в цикле, а не после цикла.

```1c
    ПОка РезультатЗапроса.Следующий() Цикл
    ВалютаВзаиморасчетов = РезультатЗапроса.ВалютаВзаиморасчетов;
    СуммаВзаиморасчетов = РезультатЗапроса.СуммаВзаиморасчетов;
    СТрокаСписка = Строки[РезультатЗапроса.Ссылка];
    СТрокаСписка.Данные.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
    СТрокаСписка.Данные.СуммаВзаиморасчетов = СуммаВзаиморасчетов;
    КонецЦикла;
```
---
Что делать, если в ТЧ документа будет несколько валют, вы должны выяснить у постановщика задачи.
---
СтрокиСписка в цикле хорошо заработали, заполняется список.
Про несколько валют, тут надо уточнить.
Спасибо!
---
пару вариантов:
1) нужно более строгое условие при левом соединении
2) выбрать различные
3) сгруппировать
4) п.2и3. можно делать как над всем запросом так и соединение со сгруппированным запросом

PS либо избавиться от самого факта существования "ключевого поля"
---
Проверьте запрос.
В выборке НЕ должно быть более одной строки по каждому документу.