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

Выбрать документ в запросе за определённый период

Автор RoDi, 27 июл 2016, 18:49

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

RoDi

Здравствуйте имеется внешння обработка, которая находит документы с одинаковыми номерами, мне необходимо чтобы она находила документы с одинаковыми номерами только за 2016 год, вот код самой обработки: СпДокументовКонфигурации=Новый СписокЗначений();
Для каждого Документ из Метаданные.Документы Цикл
СпДокументовКонфигурации.Добавить(Документ.Имя, Документ.Синоним);
КонецЦикла;
   ЭлДокумент=СпДокументовКонфигурации.ВыбратьЭлемент();
       НужныйДокумент=ЭлДокумент.Значение;

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

Выгрузка = Запрос.Выполнить().Выгрузить();
Таблица = ЭлементыФормы.ТЗ;//табличное поле со значением "таблица значений"
Таблица.Значение = Выгрузка;
Таблица.СоздатьКолонки();   


КонецПроцедуры;

ilnur75

Цитата: RoDi от 27 июл 2016, 18:49Здравствуйте имеется внешння обработка, которая находит документы с одинаковыми номерами
за какой период находит и находит ли вообще, или Вы полагаете что находит?
стандартно прописываете параметры начала и конца периода.


RoDi

в данный момент она находит за все года, а хотелось бы чтобы находила только за 2016
Добавлено: 28 июл 2016, 13:38


Подскажите пожалуйста как в данный запрос вставить параметры начала и конца даты, как не пытался выдаёт ошибку
Добавлено: 28 июл 2016, 13:39


Цитата: RoDi от 28 июл 2016, 10:31
в данный момент она находит за все года, а хотелось бы чтобы находила только за 2016
Добавлено: 28 июл 2016, 13:38


Подскажите пожалуйста как в данный запрос вставить период начала и конца даты, как не пытался выдаёт ошибку

ilnur75

Вашу обработку можно редактировать в СКД как обычный отчет СКД на УФ?
если Да, тогда добавьте в выбранные поля функцию ГОД(Дата), присвойте ему псевдоним "Период"
потом в настройках отчета установите Отбор по этому полю и включите Отбор в пользовательские настройки.
для формирования отчета нужно будет только вводить год, например 2016 .

если нет, можете скинуть мне файл обработки поэкспериментировать?

Klyacksa

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

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

cska-fanat-kz

Klyacksa, псевдоним у таблицы в запросе можно и не менять.
читабельней будет...

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

Klyacksa

cska-fanat-kz, конечно можно не менять, но мне оно как бэ надо, переписывать? ;)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

cska-fanat-kz

Klyacksa, ааа, так это был исходный вариант? ну ок ))
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

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

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

cska-fanat-kz

Klyacksa, +100500 :ooifh:

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

Теги:

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

Рейтинг@Mail.ru

Поиск