|
v7: Запрос | ☑ | ||
---|---|---|---|---|
0
galanUprCom
19.03.13
✎
11:36
|
Имеются 2 объекта
1. Справочник договоров 2. Приходная с реквизитом Договор. Необходимо получить список договор по которым не было создано Приходных(т.е. договоров которые не встречаются в Приходной). Использрвать компоненту 1с++. Как сделать встроенным языком запросом? |
|||
1
galanUprCom
19.03.13
✎
11:37
|
Имеются 2 объекта
1. Справочник договоров 2. Приходная с реквизитом Договор. Необходимо получить список договоров по которым не было создано Приходных(т.е. договоров которые не встречаются в Приходной). Использрвать компоненту 1с++ нельзя! . Как сделать встроенным языком запросом? |
|||
2
GLazNik
19.03.13
✎
11:39
|
(0) одним встроенным запросом похоже не обойтись. думается мне что нужно получить отдельно договора, отдельно договора в документах.
|
|||
3
galanUprCom
19.03.13
✎
11:46
|
(2) Это получается 2-ной цикл(по договорам и протом по документам). Есть другие варианты.
|
|||
4
Ёпрст
19.03.13
✎
11:47
|
2 запроса и привет, самое простое
|
|||
5
Ёпрст
19.03.13
✎
11:47
|
можно и одним чорным обойтись.
|
|||
6
galanUprCom
19.03.13
✎
11:49
|
(5) Через 1c++ нельзя. А 2 запроса не предполагает потом 2-ной цикл?
|
|||
7
Ёпрст
19.03.13
✎
11:50
|
(6) про прямой запрос речь никто не ведёт.
Никаких циклов нет |
|||
8
galanUprCom
19.03.13
✎
11:56
|
(7) Это как?
|
|||
9
Ёпрст
19.03.13
✎
12:00
|
Чего как ?
Если двумя запросами - то, первый - запрос по документам с группировкой по договору, второй - запрос по справочнику с фильтром по результатам первого если всё в одном - то запрос по справочнику с фильтром по внешней функции, или так попробовать соединить и условие на пустое значение договора в документе, не помню ужо, работает ли так чорный запрос или нет |
|||
10
galanUprCom
19.03.13
✎
12:04
|
(9) второй - запрос по справочнику с фильтром по результатам первого? Это как?
|
|||
11
Ёпрст
19.03.13
✎
12:13
|
результат запроса выгрузить в ТЗ, ТЗ в СП, СП использовать в качестве фильтра
|
|||
12
galanUprCom
19.03.13
✎
12:43
|
Спасибо, получислоь след.:
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ДоговораИспользуемые) |Период с ДатаНач по ДатаКон; |ТекущийДокументДоговор = Документ.РасходнаяАвто.Договор; |Группировка ТекущийДокументДоговор; |УСЛОВИЕ(ТекущийДокументДоговор.ДатаОкончания<ДатаПо); |" ;//}}ЗАПРОС // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТаблЗн=СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТаблЗн); СписокЗн=СоздатьОбъект("СписокЗначений"); ТаблЗн.Выгрузить(СписокЗн); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ДоговораНеИспользуемые) |Договор = Справочник.Договора.ТекущийЭлемент; |Группировка Договор; |//УСЛОВИЕ(Договор.ДатаОкончания<ДатаПо); |УСЛОВИЕ(СписокЗн.Принадлежит(Договор) = 0); |" ;//}}ЗАПРОС // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТаблЗн.Очистить(); Запрос.Выгрузить(ТаблЗн); ТаблЗн.ВыбратьСтроки(); Пока ТаблЗн.ПолучитьСтроку()=1 Цикл Таб.ВывестиСекцию("Договор"); КонецЦикла; |
|||
13
Ёпрст
19.03.13
✎
12:46
|
(12)
|УСЛОВИЕ(ТекущийДокументДоговор.ДатаОкончания<ДатаПо); вот это условие тормозит в разы выполнение запроса |
|||
14
galanUprCom
19.03.13
✎
12:49
|
А как сделать одним запросом?
|
|||
15
galanUprCom
19.03.13
✎
12:50
|
(13) В первом запросе это лишнее
|
|||
16
Ёпрст
19.03.13
✎
12:51
|
(14)
// |УСЛОВИЕ(ТекущийДокументДоговор.ДатаОкончания<ДатаПо); |ДатаОкончания = Документ.РасходнаяАвто.Договор.ДатаОкончания; |УСЛОВИЕ(ДатаОкончания<ДатаПо); ЗЫ: в одном запросе, будет медленнее.. если условие делать во внешней функции если тупо соединять запрос по справочнику и документу, не факт что проканает такое вообще (скорее нет, чем да) |
|||
17
galanUprCom
19.03.13
✎
12:51
|
мне надо одним запросом, пусть медленнее но как?
|
|||
18
Ёпрст
19.03.13
✎
13:03
|
(17)
так, например: ТекстЗапроса = " |Период с ДатаНач по ДатаКон; |ТекущийДокументДоговор =Документ.РасходнаяАвто.Договор,Справочник.Договоры.ТекущийЭлемент; |Договор = Документ.РасходнаяАвто.Договор; |Группировка ТекущийДокументДоговор Все; |УСЛОВИЕ(ПустоеЗначение(Договор)=1); |" ; |
|||
19
galanUprCom
19.03.13
✎
13:27
|
(18) выдает все договора
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |