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

Убрать дубликаты из ТЧ

Автор Sasha1C, 10 окт 2023, 14:50

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

Sasha1C

Этот запрос выполняется, но дубликаты остаются.Запрос.Текст  = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                | РезервыНоменклатурыОстатки.Основание КАК Основание,
                | РезервыНоменклатурыОстатки.Номенклатура КАК Номенклатура,
                | РезервыНоменклатурыОстатки.РезервОстаток КАК РезервОстаток,
                | Счет.Дата КАК Дата
                |ИЗ
                | РегистрНакопления.РезервыНоменклатуры.Остатки КАК РезервыНоменклатурыОстатки
                | ЛЕВОЕ СОЕДИНЕНИЕ Документ.Счет КАК Счет
                | ПО РезервыНоменклатурыОстатки.Основание = Счет.Ссылка";
Выборка =Запрос.Выполнить().Выбрать()
Возможно ли, что дело не в запросе, а в последующем отборе?

Ивашка

Цитата: Sasha1C от 10 окт 2023, 18:28Этот запрос выполняется, но дубликаты остаются.Запрос.Текст  = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                | РезервыНоменклатурыОстатки.Основание КАК Основание,
                | РезервыНоменклатурыОстатки.Номенклатура КАК Номенклатура,
                | РезервыНоменклатурыОстатки.РезервОстаток КАК РезервОстаток,
                | Счет.Дата КАК Дата
                |ИЗ
                | РегистрНакопления.РезервыНоменклатуры.Остатки КАК РезервыНоменклатурыОстатки
                | ЛЕВОЕ СОЕДИНЕНИЕ Документ.Счет КАК Счет
                | ПО РезервыНоменклатурыОстатки.Основание = Счет.Ссылка";
Выборка =Запрос.Выполнить().Выбрать()
Возможно ли, что дело не в запросе, а в последующем отборе?
может так, если я правильно понял, не?

Запрос.Текст  = "ВЫБРАТЬ
                | РезервыНоменклатурыОстатки.Номенклатура КАК Номенклатура,
                | сумма(РезервыНоменклатурыОстатки.РезервОстаток) КАК РезервОстаток,
                | Счет.Дата КАК Дата
                |ИЗ
                | РегистрНакопления.РезервыНоменклатуры.Остатки КАК РезервыНоменклатурыОстатки
                | ЛЕВОЕ СОЕДИНЕНИЕ Документ.Счет КАК Счет
                | ПО РезервыНоменклатурыОстатки.Основание = Счет.Ссылка
                    |сгруппировать по
                    |РезервыНоменклатурыОстатки.Номенклатура";
Выборка =Запрос.Выполнить().Выбрать()

GetNight

Цитата: Sasha1C от 10 окт 2023, 18:28запрос выполняется, но дубликаты остаются
По вашим скринам не понятна полная картина.

Если у вас в регистре есть номенклатура, а в списке должен быть только счёт, то в запросе не должно быть детализаций по другим полям
    Запрос.Текст  = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                    |    РезервыНоменклатурыОстатки.Основание КАК Основание
                    |ИЗ
                    |    РегистрНакопления.РезервыНоменклатуры.Остатки КАК РезервыНоменклатурыОстатки
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Счет КАК Счет
                    |        ПО РезервыНоменклатурыОстатки.Основание = Счет.Ссылка";
    Выборка =Запрос.Выполнить().Выбрать()

Sasha1C, проверьте личные сообщения (НАД жёлтым заголовком страницы с надписью "Форум")

Sasha1C

Ивашка, Но надо еще вытащить Реквизит "основание" у регистра накопления и Дату из документа "Счет", это нужно что бы сделать дальнейшее сравнение реквизитов для отбора по условию задания. Задание прилагаю.

Ивашка

Sasha1C, может есть отпечатки
Запрос =Новый Запрос;
    Запрос.Текст  = "ВЫБРАТЬ
                    |    РезервыНоменклатурыОстатки.Основание КАК Основание,
                    |    РезервыНоменклатурыОстатки.Номенклатура КАК Номенклатура,
                    |    Сумма(естьnull(РезервыНоменклатурыОстатки.РезервОстаток,0)) КАК РезервОстаток,
                    |    Началопериода(Счет.Дата,день) КАК Дата
                    |ИЗ
                    |    РегистрНакопления.РезервыНоменклатуры.Остатки КАК РезервыНоменклатурыОстатки
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Счет КАК Счет
                    |        ПО РезервыНоменклатурыОстатки.Основание = Счет.Ссылка
                    |ГДЕ
                    |    РезервыНоменклатурыОстатки.РезервОстаток > 0
                    |сгруппировать по
                    |РезервыНоменклатурыОстатки.Номенклатура
                    |Началопериода(Счет.Дата,день),
                    |РезервыНоменклатурыОстатки.Основание";
    Выборка =Запрос.Выполнить().Выбрать();
   
    ТекДата = ТекущаяДата();
   
    Пока Выборка.Следующий() Цикл
       
        Если КонецДня(Выборка.Дата) < КонецДня(ТекДата) Тогда
       
            НовСтр = Объект.Счет.Добавить();
            НовСтр.Счет = Выборка.Основание;
   
        КонецЕсли;
               
    КонецЦикла

Sasha1C

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

Теги: ТЧ запросы 

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

Рейтинг@Mail.ru

Поиск