Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как сделать выборку чтобы в таблицу попали только не повторяющиеся значения

Как сделать выборку чтобы в таблицу попали только не повторяющиеся значения
Я
   1сЮлия
 
27.05.19 - 11:10
Добрый день! Функция ПолучитьМехИспытания(Подразделение,Номенклатура,Дата),чтобы по каждому показателю были только итоговые значения,неповторяющиеся
    перем ПоказательАнализа,ЗначениеПоказателя;    
    МехАнализы = Новый ТаблицаЗначений;
    МехАнализы.Колонки.Добавить("ПоказательАнализа");
    МехАнализы.Колонки.Добавить("ЗначениеПоказателя");

    Запрос = Новый Запрос;
        Запрос.Текст =

      "ВЫБРАТЬ
      |    СертификацияНоменклатурыАнализы.ЗначениеПоказателя КАК ЗначениеПоказателя,
      |    СертификацияНоменклатурыАнализы.ПоказательАнализа КАК ПоказательАнализа
      |ИЗ
      |    Документ.СертификацияНоменклатуры.Анализы КАК СертификацияНоменклатурыАнализы
      |ГДЕ
      |    СертификацияНоменклатурыАнализы.Ссылка.Подразделение = &Подразделение
      |    И СертификацияНоменклатурыАнализы.Ссылка.Номенклатура = &Номенклатура
      |    И СертификацияНоменклатурыАнализы.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
      |    И ДЕНЬ(СертификацияНоменклатурыАнализы.Ссылка.Дата) = &Дата
      |    И СертификацияНоменклатурыАнализы.Ссылка.Проведен = ИСТИНА
      |
      |СГРУППИРОВАТЬ ПО
      |    СертификацияНоменклатурыАнализы.ЗначениеПоказателя,
      |    СертификацияНоменклатурыАнализы.ПоказательАнализа,
      |    СертификацияНоменклатурыАнализы.Ссылка,
      |    СертификацияНоменклатурыАнализы.НомерСтроки
      |
      |УПОРЯДОЧИТЬ ПО
      |    ПоказательАнализа
      |ИТОГИ ПО
      |    СертификацияНоменклатурыАнализы.ПоказательАнализа,
      |    СертификацияНоменклатурыАнализы.ЗначениеПоказателя ";
    
    Запрос.УстановитьПараметр("Подразделение",Подразделение);
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
    Запрос.УстановитьПараметр("Дата",Дата);
    Запрос.УстановитьПараметр("НачДата",НачалоПериода);
    Запрос.УстановитьПараметр("КонДата",КонецПериода);
    
    ВыборкаМехИспытания = Запрос.Выполнить();    
    
    Если  Не (ВыборкаМехИспытания.Пустой()) Тогда
         ВыборкаПоказательАнализа = ВыборкаМехИспытания.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ПоказательАнализа");
        Пока ВыборкаПоказательАнализа.Следующий() Цикл
            ПоказательАнализа=ВыборкаПоказательАнализа.ПоказательАнализа;
            ВыборкаЗначениеПоказателя = ВыборкаМехИспытания.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ЗначениеПоказателя");
            Пока ВыборкаЗначениеПоказателя.Следующий() Цикл
                 ЗначениеПоказателя = ВыборкаЗначениеПоказателя.ЗначениеПоказателя;
                         Стр = МехАнализы.Добавить();
                         Стр.ПоказательАнализа = ПоказательАнализа;
                         Стр.ЗначениеПоказателя = ЗначениеПоказателя;
            КонецЦикла;    
             
        КонецЦикла;          
    КонецЕсли;
    
    Возврат МехАнализы;
    
КонецФункции
 
 
   1сЮлия
 
1 - 27.05.19 - 11:14
Я поняла ВЫБРАТЬ
    СертификацияНоменклатурыАнализы.ЗначениеПоказателя КАК ЗначениеПоказателя,
    СертификацияНоменклатурыАнализы.ПоказательАнализа КАК ПоказательАнализа
ИЗ
    Документ.СертификацияНоменклатуры.Анализы КАК СертификацияНоменклатурыАнализы
ГДЕ
    СертификацияНоменклатурыАнализы.Ссылка.Подразделение = &Подразделение
    И СертификацияНоменклатурыАнализы.Ссылка.Номенклатура = &Номенклатура
    И СертификацияНоменклатурыАнализы.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
    И ДЕНЬ(СертификацияНоменклатурыАнализы.Ссылка.Дата) = &Дата
    И СертификацияНоменклатурыАнализы.Ссылка.Проведен = ИСТИНА

СГРУППИРОВАТЬ ПО
    СертификацияНоменклатурыАнализы.ЗначениеПоказателя,
    СертификацияНоменклатурыАнализы.ПоказательАнализа

УПОРЯДОЧИТЬ ПО
    ПоказательАнализа
   Simod
 
2 - 27.05.19 - 11:27
ВЫБРАТЬ РАЗЛИЧНЫЕ

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.