Есть запрос
ВЫБРАТЬ
СостоянияОтправленийСрезПоследних.ВнутреннийИДОтправления КАК ВнутреннийИДОтправления
ПОМЕСТИТЬ ВТ_ИДОтправления
ИЗ
РегистрСведений.СостоянияОтправлений.СрезПоследних(&Период, ) КАК СостоянияОтправленийСрезПоследних
ГДЕ
СостоянияОтправленийСрезПоследних.Склад = &Склад
И СостоянияОтправленийСрезПоследних.Ячейка = &Ячейка
И СостоянияОтправленийСрезПоследних.Организация = &Организация
И НЕ СостоянияОтправленийСрезПоследних.ВнутреннийИДОтправления = &ВнутреннийИДОтправления
И СостоянияОтправленийСрезПоследних.ВидОстатка = ЗНАЧЕНИЕ(Перечисление.ВидыОстатковОтправлений.НаСкладе)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ХарактеристикиОтправленийСрезПоследних.Вес КАК Вес,
ХарактеристикиОтправленийСрезПоследних.ТипВажности КАК ТипВажности,
ХарактеристикиОтправленийСрезПоследних.ТипСрочности КАК ТипСрочности,
ХарактеристикиОтправленийСрезПоследних.ВнутреннийИДОтправления КАК ВнутреннийИДОтправления,
ХарактеристикиОтправленийСрезПоследних.ВидОтправления КАК ВидОтправления,
ХарактеристикиОтправленийСрезПоследних.Длина КАК Длина,
ХарактеристикиОтправленийСрезПоследних.Ширина КАК Ширина,
ХарактеристикиОтправленийСрезПоследних.Высота КАК Высота,
ХарактеристикиОтправленийСрезПоследних.ВалютаОценочнойСтоимости КАК ВалютаОценочнойСтоимости,
ХарактеристикиОтправленийСрезПоследних.ОценочнаяСтоимость КАК ОценочнаяСтоимость,
ХарактеристикиОтправленийСрезПоследних.Получатель КАК Получатель,
ХарактеристикиОтправленийСрезПоследних.АдресПолучателя КАК АдресПолучателя,
ХарактеристикиОтправленийСрезПоследних.ИДОтправления КАК ИДОтправления,
ХарактеристикиОтправленийСрезПоследних.СписокПеревозимойВалюты КАК СписокПеревозимойВалюты,
ИндексыОтправлений.ИндексОтправленияКод КАК ИндексОтправленияКод,
СписокВалюты.ВалютаКод КАК ВалютаКод
ИЗ
РегистрСведений.ХарактеристикиОтправлений.СрезПоследних(
&Период,
ВнутреннийИДОтправления В
(ВЫБРАТЬ
Т.ВнутреннийИДОтправления
ИЗ
ВТ_ИДОтправления КАК Т)) КАК ХарактеристикиОтправленийСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИндексыОтправлений КАК ИндексыОтправлений
ПО ХарактеристикиОтправленийСрезПоследних.ВнутреннийИДОтправления = ИндексыОтправлений.ВнутреннийИДОтправления
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СписокВалюты КАК СписокВалюты
ПО ХарактеристикиОтправленийСрезПоследних.ВнутреннийИДОтправления = СписокВалюты.ВнутреннийИДОтправления
ИТОГИ
МАКСИМУМ(Вес),
МАКСИМУМ(ТипВажности),
МАКСИМУМ(ТипСрочности),
МАКСИМУМ(ВидОтправления),
МАКСИМУМ(Длина),
МАКСИМУМ(Ширина),
МАКСИМУМ(Высота),
МАКСИМУМ(ВалютаОценочнойСтоимости),
МАКСИМУМ(ОценочнаяСтоимость),
МАКСИМУМ(Получатель),
МАКСИМУМ(АдресПолучателя),
МАКСИМУМ(ИДОтправления),
МАКСИМУМ(СписокПеревозимойВалюты),
МАКСИМУМ(ИндексОтправленияКод)
ПО
ВнутреннийИДОтправления
Показать
Выборка первого уровня работает нормально, но когда начинаю обходить выборку внутреннюю с Индексами и Валютами мне мешает то что в таблице появляются одинаковые строки и дальше по коду это вызовет ошибку.
Вот цикл обрабатывающий результат внутренней выборки запроса:
ВыборкаВнутренняя = ВыборкаВерхняя.Выбрать();
Пока ВыборкаВнутренняя.Следующий() Цикл
НовСтрокаИндекс = Объект.ИндексыОтправлений.Добавить();
НовСтрокаИндекс.ИДСтроки = НовСтрока.ИдСтроки;
НовСтрокаИндекс.ИндексыОтправлений = ВыборкаВнутренняя.ИндексОтправленияКод;
НовСтрокаВалюта = Объект.СписокВалют.Добавить();
НовСтрокаВалюта.ИДСтроки = НовСтрока.ИдСтроки;
НовСтрокаВалюта.ПеревозимыеВалюты = ВыборкаВнутренняя.ВалютаКод;
КонецЦикла;
Показать
К примеру в внутренней выборке у меня в запросе получилось ИндексыКод:2,3, а ВалютыКод:1,2,3,4. В итоге цикл отработает 4 раза так как кодов валют 4 и сделает строки ИндексКодов так - 2,2,3,3. Нужно как то сгруппировать либо изначально в запросе либо в цикле эти индексы с тем учетом что есть еще колонка ИДСтроки . На скрине будет понятнее наверное
Мне нужно чтобы у Каждого ИДСтроки в моей таблице не было дублирующихся Индексов. Надеюсь смог объяснить проблему. Буду рад любой помощи. Может быть решение прямо передо мной, но я уперся и не могу понять как можно поступить.