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

1С 8.3. Дубли строк в ЛЕВОМ СОЕДИНЕНИИ запроса

Автор gulnyr, 28 фев 2024, 08:41

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

gulnyr

Написал такой запрос:

ВЫБРАТЬ НоменклатураДоп.Ссылка,
Цены.Цена
ИЗ
Справочник.Номенклатура КАК НоменклатураДоп
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены
ПО НоменклатураДоп.Ссылка = Цены.Номенклатура
ГДЕ НоменклатураДоп.Ссылка = &Номенклатура

Выходит такой результат:

Фильтр Салонный Mazda1 050
Фильтр Салонный Mazda910
Фильтр Салонный Mazda649
Фильтр Салонный Mazda649
Фильтр Салонный Mazda910
Фильтр Салонный Mazda910
Фильтр Салонный Mazda608
Фильтр Салонный Mazda608
Фильтр Салонный Mazda910
Фильтр Салонный Mazda539,24
Фильтр Салонный Mazda539,24

Почему так происходит?
Если сгруппировать по цене, то дубли убираются. Пробовал сделать больше условий, например по типу цен, но там много строк теряется.
Как правильнее сделать, без группировки?

Максим75

gulnyr, так происходит потому, что Вы соединяете номенклатуру со ВСЕМ регистром сведений цены. Конечно все правильно делает, создает столько раз записи в выборке, сколько есть в регистре сведений записей по этой номенклатуре.
Что вообще надо? Получить максимальную, минимальную, последнюю цену или что?
Если регистр периодический и надо последнюю цену на определенную дату - то курить надо СрезПоследних.
У Вас вообще какая-то мания тупо игнорировать виртуальные таблицы регистров. Их же умные люди для чего-то создавали и разрабавывали.

Возьмите вот откройте регистр сведений, отфильтруйте по нужной номенклатуре и посмотрите сколько в регистре записей по этой номенклатуре. И все поймете.
Да и вообще, нужную номенклатуру и цену из регистра можно сразу из регистра получить, а не использовать справочник, условие в нем и соединение с регистром.

Теги:

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

Рейтинг@Mail.ru

Поиск