Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 мая 2024, 06:56

Дублирование строк в запросе

Автор fryco, 06 июл 2018, 14:19

0 Пользователей и 1 гость просматривают эту тему.

fryco

Добрый день. Помогите решить проблему начинающему разработчику.
Создал отчет на скд. обьединяю 3 таблицы левым соединением по полю. При этом при соединении с одной из таблиц дублируются строки, при этом итоги считаются так, будто никакого дублирования не происходит. Отчет и скрины прилагаю

MuI_I_Ika

Да в левом соединении обычно так и происходит.

Если хотите соединить таблицы для отчета лучше использовать полное объединение.

Если не получится, то лучше выкладывайте текст запроса. Быстрее посмотреть текст, чем открывать отчет, написанный для непонятной конфигурации.

fryco

ВЫБРАТЬ
   АО_ЗаявкаПокупателя.Работы.(
      ВидРаботы,
      Исполнитель КАК Исполнитель,
      ВремяДобавленияРаботы
   ),
   ОС_НормативСрезПоследних.КоличествоНормочасов КАК Нормочасы,
   ОС_СтоимостьНормочасаСрезПоследних.Стоимость,
   АО_ЗаявкаПокупателя.Ссылка
ИЗ
   Документ.АО_ЗаявкаПокупателя КАК АО_ЗаявкаПокупателя
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОС_Норматив.СрезПоследних КАК ОС_НормативСрезПоследних
      ПО АО_ЗаявкаПокупателя.Работы.ВидРаботы = ОС_НормативСрезПоследних.ВидРаботы
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОС_СтоимостьНормочаса.СрезПоследних КАК ОС_СтоимостьНормочасаСрезПоследних
      ПО АО_ЗаявкаПокупателя.Работы.Исполнитель = ОС_СтоимостьНормочасаСрезПоследних.Исполнитель
ГДЕ
   АО_ЗаявкаПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

MuI_I_Ika

АО_ЗаявкаПокупателя.Работы.(
      ВидРаботы,
      Исполнитель КАК Исполнитель,
      ВремяДобавленияРаботы
   ),


вот так вообще моветон выбирать табличную часть. вы уверены, что она нужна вам в этом отчете?

fryco

Да именно эта табличная часть мне и нужна

alex0402

здесь
Цитата: fryco от 09 июл 2018, 10:10ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОС_Норматив.СрезПоследних КАК ОС_НормативСрезПоследних
      ПО АО_ЗаявкаПокупателя.Работы.ВидРаботы = ОС_НормативСрезПоследних.ВидРаботы
или здесь
Цитата: fryco от 09 июл 2018, 10:10ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОС_СтоимостьНормочаса.СрезПоследних КАК ОС_СтоимостьНормочасаСрезПоследних
      ПО АО_ЗаявкаПокупателя.Работы.Исполнитель = ОС_СтоимостьНормочасаСрезПоследних.Исполнитель

больше одной строки, соответствующих условию!

какие измерения у регистров сведений?
Спасибо за Сказать спасибо

fryco

Цитата: alex0402 от 09 июл 2018, 10:18
здесь
Цитата: fryco от 09 июл 2018, 10:10ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОС_Норматив.СрезПоследних КАК ОС_НормативСрезПоследних
      ПО АО_ЗаявкаПокупателя.Работы.ВидРаботы = ОС_НормативСрезПоследних.ВидРаботы
или здесь
Цитата: fryco от 09 июл 2018, 10:10ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОС_СтоимостьНормочаса.СрезПоследних КАК ОС_СтоимостьНормочасаСрезПоследних
      ПО АО_ЗаявкаПокупателя.Работы.Исполнитель = ОС_СтоимостьНормочасаСрезПоследних.Исполнитель

больше одной строки, соответствующих условию!

какие измерения у регистров сведений?
У регистра ОС_Норматив измерение ВидРаботы и у регистра ОС_СтоимостьНормочаса измерение Исполнитель, то есть соединяю я по измерениям. Проблемы у меня конкретно при соединении с регистром ОС_Норматив
Добавлено: 10 июл 2018, 11:01


Небольшая поправка, для двух строк в таблице он делает 4 записи для 3 - 9 для 4 -16 и тд, то есть как будто полное соединение... Хммм

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск