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

как модернизировать запрос?

Автор Anjey, 20 окт 2010, 14:45

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

Anjey

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

Результат = Запрос.Выполнить();

Вот запрос который выбирает все ОС принятые к учету, а как сделать так чтобы небыло тех ОС которые списаны или сняты с учета???
Я могу выбрать все ОС или те что сняты с учета, а как выбрать все кроме тех которые сняты с учета? Как я понимаю нужно делать составной запрос, вот его я какраз немогу придумать((. Подскажите кто чем может, заранее спасибо буду очень благодарен за помощ!!!

Anjey

Если по простому у меня есть Запрос1 в котором есть все и Запрос2 в котором все что мне не нужно, каким образом сделать так чтобы было Результат=Запрос1-Запрос2? Мне сказали что можно сделать вложеный запрос, каким образом кто просветит?

вот Запрос2

Запрос.Текст =
   "ВЫБРАТЬ
   |   СостоянияОСОрганизаций.ОсновноеСредство КАК ОсновноеСредство
   |ИЗ
   |   РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций
   |ГДЕ
   |   СостоянияОСОрганизаций.Состояние = &СнятоСУчета";

progmikon

А почему в первом запросе сразу нельзя исключить снятые с учета?

Anjey

| И СостоянияОСОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияОС.СнятоСУчета)

в том и дело снятые с учета исключаются, а принятые в експлуатацию остаются того же ОС, без етого исключения выбирается дважды одно и то же...

progmikon

Вы можете описать задачу, которая вам поставлена?

progmikon

Если говорить про два ваши запроса, то можно попробовать так:
можете первый поместить во временную таблицу, выбрав из нее все, и поставить условие ГДЕ
(НЕ ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство В (Второй вложенный запрос))

Anjey

спс заработало   :lol: то что я и хотел, просто привык все в конструкторе делать, а тут запрос с конструктором не дружит. ))

progmikon


Теги:

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

Рейтинг@Mail.ru

Поиск