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

Условие даты в запросе

Автор RoDi, 01 авг 2016, 14:56

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

RoDi

Здравствуйте, очередной глупый вопрос, который я уверен легко решается, но не мной, столкнулся с проблемой, что в запросе не работает условие даты вот код: Процедура КнопкаВыполнитьНажатие(Кнопка)


МассивКлассовМетаданных = Новый Массив;
МассивКлассовМетаданных.Добавить("Документы");
Для каждого КлассМетаданных Из МассивКлассовМетаданных Цикл

Для Каждого ОбъектМетаданных Из Метаданные[КлассМетаданных] Цикл

   
    Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Дата",'20160101');

          Запрос = Новый Запрос;
 
Запрос.Текст =
"ВЫБРАТЬ

| "+ОбъектМетаданных.Имя+".Ссылка
|ИЗ
| Документ."+ОбъектМетаданных.Имя+" КАК "+ОбъектМетаданных.Имя+"
|ГДЕ
|    "+ОбъектМетаданных.Имя+".Дата>&Дата и
| "+ОбъектМетаданных.Имя+".Номер В
| (ВЫБРАТЬ
| Список.Номер
| ИЗ
| (ВЫБРАТЬ
| "+ОбъектМетаданных.Имя+".Номер КАК Номер,
| КОЛИЧЕСТВО("+ОбъектМетаданных.Имя+".Номер) КАК Количество
| ИЗ
| Документ."+ОбъектМетаданных.Имя+" КАК "+ОбъектМетаданных.Имя+"
| СГРУППИРОВАТЬ ПО
| "+ОбъектМетаданных.Имя+".Номер
| ) КАК Список
| ГДЕ
| Список.Количество > 1)";

Запрос.УстановитьПараметр("Дата",'20160101');
Результат = Запрос.Выполнить().Выгрузить();


   

Таблица = ЭлементыФормы.ТЗ;
Таблица.Значение = Результат;
Таблица.СоздатьКолонки();
Для каждого ТекущаяСтрока из ТЗ цикл

Сообщить((ОбъектМетаданных.Имя)+" "+(ТекущаяСтрока.Ссылка.Номер));

КонецЦикла 
КонецЦикла;
КонецЦикла;

КонецПроцедуры
Тоесть программа находит документы с одинаковыми номерами, но не только за 2016 год, а за все года

vitasw

У вас запрос выбирает документы за 2016 год, но при этом номера определяются за весь период.

RoDi

Не подскажите как поступить в данной ситуации?

Klyacksa

Я же вам писала запрос целиком в другой ветке!
Вам нужно во вложенном запросе тоже ограничение по дате поставить.
И вместо двойного вложения используйте конструкцию ИМЕЮЩИЕ (в моем ответе используется)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

RoDi

если ты мне найдешь это сообщение, тоя я больше никогда не буду заниматься 1С, просто потому что вы его не писали!!!
Добавлено: 01 авг 2016, 15:32


я не нахожу вашего сообщения нигде обсалютно

Kironten

Цитата: RoDi от 01 авг 2016, 15:29
если ты мне найдешь это сообщение, тоя я больше никогда не буду заниматься 1С, просто потому что вы его не писали!!!
Добавлено: 01 авг 2016, 15:32


я не нахожу вашего сообщения нигде обсалютно

Цитата: Klyacksa от 01 авг 2016, 10:37
cska-fanat-kz, лучше бы заметил, что во внешнем запросе тоже надо отбор по дате ставить, иначе могут попасться документы других периодов.
ВЫБРАТЬ
"+НужныйДокумент+".Ссылка
ИЗ
Документ."+ НужныйДокумент+" КАК "+ НужныйДокумент+"   
ГДЕ
"+ НужныйДокумент+".Номер В
          (ВЫБРАТЬ
               "+ НужныйДокумент+".Номер КАК Номер,
              КОЛИЧЕСТВО("+ НужныйДокумент+".Номер) КАК Количество
              ИЗ  Документ."+ НужныйДокумент+" КАК "+ НужныйДокумент+"
              ГДЕ
                  "+ НужныйДокумент+".Дата >= ДатаВремя(2016,1,1)
                  и "+ НужныйДокумент+".Дата <= ДатаВремя(2016,12,31)
             СГРУППИРОВАТЬ ПО
             "+ НужныйДокумент+".Номер
            ИМЕЮЩИЕ
            КОЛИЧЕСТВО("+ НужныйДокумент+".Номер)>1)
и
  "+ НужныйДокумент+".Дата >= ДатаВремя(2016,1,1)
и "+ НужныйДокумент+".Дата <= ДатаВремя(2016,12,31)


Klyacksa

Kironten, :ooifh:
Ну зачем, теперь человек не будет никогда 1С заниматься.
RoDi, зачем столько агрессии? У вас почти правильный запрос, немного условий на периоды добавить и все будет корректно работать. Можно и с вложенными запросами оставить.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

RoDi

Вооооот вот это я понимаю, спасибо всё прописал код с датой в нужные места теперь всё идеально работает)
Добавлено: 01 авг 2016, 15:48


клякса, это не вы мне писали запрос

Klyacksa

Цитата: RoDi от 01 авг 2016, 15:47
клякса, это не вы мне писали запрос
Да лааааадно! Чо, правда, что ли? А внимательней посмотреть?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Kironten

Цитата: RoDi от 01 авг 2016, 15:47
клякса, это не вы мне писали запрос
:xfbnsdfb: Эм.... Ну воообще то это она писала.
Ну да ладно. Не хотите - не верьте. Я не настаиваю :D

Теги:

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

Рейтинг@Mail.ru

Поиск