Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 13:17
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Выборка в запросе  (Прочитано 1976 раз)

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

Оффлайн retker

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-09
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день, имеется документы в нем указаны люди проживающие в квартире - скрин 1, документ формирует движения - скрин 2.
Мне надо запросом вытаскивать кол-во проживающих на указанную дату в запросе. Вот запрос, но он не корректно выводит, я думал по срезупоследних выводить, но он выводит нето, скрин 3. Т.е. какую я бы дату не выбрал, он выводит, что прописан 1 человек, а к примеру в 2013 году прописано 2ое. Подскажите, как его доделать, спасибо. Я сделал пока чтобы он просто выводил ФИО, чтобы нагляднее было.
Запрос:
ВЫБРАТЬ
   СведенияПроживающих.ЛицевойСчет КАК КоличествоПроживающих,
   Различные(СведенияПроживающих.Проживающий),
   СведенияПроживающих.Значение
ИЗ
   РегистрСведений.ВДГБ_СведенияПроживающих.СрезПоследних(
         &Период,
         ЛицевойСчет = &ЛицевойСчет)   
         КАК СведенияПроживающих


Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Собственно, не вижу ничего противоречивого. Пробуйте указать в запросе дату "01.01.2013 12:00:08".

Оффлайн retker

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-09
  • Сайт: 
  • Профессия: Ученик 1С
Собственно, не вижу ничего противоречивого. Пробуйте указать в запросе дату "01.01.2013 12:00:08".
если указать эту дату, то он выводит 2 фамилии, тут верно. Но проблема в том, что мне нужно подставлять дату, которой будет формироваться квитанция. Т.е. если я сейчас формирую квитанцию на 30.04.2014, то 1 фамилию - так как проживает 1 человек, но если квитанция формируется, к примеру, 30.04.2013 то на то время было два человека прописано, причем совершенно других. Т.е. вопрос как это правильно выбирать запросом.

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Странные какие-то движения. Необходимо, чтобы дата формирования квитанции была между "ДатаНачала" и "ДатаОкончания" (т.е. передаваемый параметр был в этом диапазоне дат). Попробуй задавать не параметрами виртуальной таблицы, а обычным условием.

Оффлайн retker

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-09
  • Сайт: 
  • Профессия: Ученик 1С
Странные какие-то движения. Необходимо, чтобы дата формирования квитанции была между "ДатаНачала" и "ДатаОкончания" (т.е. передаваемый параметр был в этом диапазоне дат). Попробуй задавать не параметрами виртуальной таблицы, а обычным условием.
Написав вот такой запрос и сравнив его со скрином где показаны движения по регистру понял,что дату формирования отчета нужно проверять как вы и пишите между (ДатаИзменения и Значние = да) и (ДатаИзменения и Значние = нет), если да то проживающего считаем. Но что-то не могу сообразить как это программно реализовать...




ВЫБРАТЬ РАЗЛИЧНЫЕ
   ВДГБ_СведенияПроживающих.ЛицевойСчет КАК ЛицевойСчет,
   ВДГБ_СведенияПроживающих.Проживающий КАК Проживающий,
   ВДГБ_СведенияПроживающих.Значение КАК Значение,
   ВДГБ_СведенияПроживающих.ДатаИзменения КАК ДатаИзменения
ИЗ
   РегистрСведений.ВДГБ_СведенияПроживающих КАК ВДГБ_СведенияПроживающих
ГДЕ
   ВДГБ_СведенияПроживающих.ЛицевойСчет = &ЛицевойСчет

Результат запроса, скрин 4.

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ВДГБ_СведенияПроживающих.ЛицевойСчет КАК ЛицевойСчет,
   ВДГБ_СведенияПроживающих.Проживающий КАК Проживающий,
   ВДГБ_СведенияПроживающих.Значение КАК Значение,
   ВДГБ_СведенияПроживающих.ДатаИзменения КАК ДатаИзменения
ИЗ
   РегистрСведений.ВДГБ_СведенияПроживающих КАК ВДГБ_СведенияПроживающих
ГДЕ
   ВДГБ_СведенияПроживающих.ЛицевойСчет = &ЛицевойСчет
    И ВДГБ_СведенияПроживающих.ДатаИзменения <= &ДатаФормированияКвитанции
    И ВДГБ_СведенияПроживающих.Значение

Покажет всех, кто прописан и зарегистрировался ранее указанной даты.

Оффлайн retker

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-09
  • Сайт: 
  • Профессия: Ученик 1С
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ВДГБ_СведенияПроживающих.ЛицевойСчет КАК ЛицевойСчет,
   ВДГБ_СведенияПроживающих.Проживающий КАК Проживающий,
   ВДГБ_СведенияПроживающих.Значение КАК Значение,
   ВДГБ_СведенияПроживающих.ДатаИзменения КАК ДатаИзменения
ИЗ
   РегистрСведений.ВДГБ_СведенияПроживающих КАК ВДГБ_СведенияПроживающих
ГДЕ
   ВДГБ_СведенияПроживающих.ЛицевойСчет = &ЛицевойСчет
    И ВДГБ_СведенияПроживающих.ДатаИзменения <= &ДатаФормированияКвитанции
    И ВДГБ_СведенияПроживающих.Значение

Покажет всех, кто прописан и зарегистрировался ранее указанной даты.

Понимаете в чем проблема, Сухин и Проживающий2 были прописаны до 31.03.2014, потом они выписались Сухина же прописалась с 01.04.2014. Получается до 31.03.2014 - 2 человека,  и запрос отрабатывает этот случай, но вот второй случай с 01.04.2014 - 1 человек, он не отрабатывает и выводит 3их, т.е. когда мы формируем квитанцию 30.04.2014 за апрель.
Добавлено: 15 Май 2014, 14:03

Решил переделать запрос, двумя вложенными запросами формирую сначала таблицу всех людей проживающих, по значению = ДА, потом таблице тех которые не проживают по значению = НЕТ. и потом количественно вычитаю количественный показатель проживающих и не проживающих и получаю, число проживающих на данный момент.
Но если непроживающих НЕТ, то начинаются проблемы так как вторая таблица не формируется, полей то с значемнием Нет нету.

Вопрос как правильно прописать условие что если таблица вложенного запроса пустая то в поле которую онадолжна выводить писалось бы число 0.
Вот запрос, которые при значении = Нет, ничего не будет выводить, как в него прописать, подскажите.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ВДГБ_СведенияПроживающих.Проживающий КАК Проживающий   
ИЗ
   РегистрСведений.ВДГБ_СведенияПроживающих КАК ВДГБ_СведенияПроживающих
ГДЕ
   ВДГБ_СведенияПроживающих.ЛицевойСчет = &ЛицевойСчет
   И ВДГБ_СведенияПроживающих.Значение = ЛОЖЬ

Добавлено: 15 Май 2014, 14:37

Решил задачу, так сейчас буду проверять.
Сам запрос:
ВЫБРАТЬ
   ЗапросИСТИНА.Проживающий КАК ПроживающийИстина,
   ЗапросЛОЖЬ.Проживающий КАК ПроживавшийЛожь,
   ЗапросИСТИНА.Проживающий - ЗапросЛОЖЬ.Проживающий КАК КоличествоПроживающих
ИЗ
   (ВЫБРАТЬ
      КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВДГБ_СведенияПроживающих.Проживающий) КАК Проживающий
   ИЗ
      РегистрСведений.ВДГБ_СведенияПроживающих КАК ВДГБ_СведенияПроживающих
   ГДЕ
      ВДГБ_СведенияПроживающих.ЛицевойСчет = &ЛицевойСчет
      И ВДГБ_СведенияПроживающих.Значение = ЛОЖЬ) КАК ЗапросЛОЖЬ,
   (ВЫБРАТЬ
      КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВДГБ_СведенияПроживающих.Проживающий) КАК Проживающий
   ИЗ
      РегистрСведений.ВДГБ_СведенияПроживающих КАК ВДГБ_СведенияПроживающих
   ГДЕ
      ВДГБ_СведенияПроживающих.ЛицевойСчет = &ЛицевойСчет
      И ВДГБ_СведенияПроживающих.Значение = ИСТИНА) КАК ЗапросИСТИНА

Последний раз редактировалось: retker; 15 Май 2014, 14:37. Причина: Объединение сообщений


 

Получить номер недели в месяце в запросе [номер недели]

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 4153
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
РС "СостояниеОСОрганизаций" в запросе

Автор ILLUMIРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1122
Последний ответ 07 Янв 2015, 05:33
от ILLUMI
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2127
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Поле не найдено" в запросе, но оно есть.

Автор ferrari314Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2690
Последний ответ 27 Окт 2015, 10:29
от vitasw
Временная таблица во вложенном запросе+Группировка VS Таблица значений + Свернуть

Автор TsaigerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 595
Последний ответ 14 Июл 2017, 23:10
от Tsaiger

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
56 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 254
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal