|
Запрос, выбор нескольких договоров по наименованию | ☑ | ||
---|---|---|---|---|
0
zzzLEXzzz
19.03.13
✎
17:33
|
Приветствую всех, 1С 8.2 Торговля.
Имеется запрос, как изменить или что дописать чтобы запрос выбирал договора по двум наименованием, то есть, сейчас он ищет по наименованию "Основной договор" а надо ещё чтобы искал по наименованию "Договор КП" вот сам текст запроса текст = "ВЫБРАТЬ | ДоговорыКонтрагентов.Владелец КАК Контр, | ДоговорыКонтрагентов.Владелец.Наименование, | ДоговорыКонтрагентов.Ссылка КАК Дог |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.ТорговыйПредставитель = &ТП | И ДоговорыКонтрагентов.Наименование = &НаимДог | И ДоговорыКонтрагентов.ПометкаУдаления = Ложь | |СГРУППИРОВАТЬ ПО | ДоговорыКонтрагентов.Владелец, | ДоговорыКонтрагентов.Владелец.Наименование, | ДоговорыКонтрагентов.Ссылка"; Запрос = новый запрос; Запрос.Текст = Текст; Запрос.УстановитьПараметр("ТП",Агент_.Ссылка); Запрос.УстановитьПараметр("НаимДог","Основной договор"); Кон_ = Запрос.Выполнить().Выбрать(); |
|||
1
acsent
19.03.13
✎
17:35
|
как у договора появилось 2 наименования?
|
|||
2
zzzLEXzzz
19.03.13
✎
17:36
|
(1) у договора не два наименования, просто на одном контрагенте закреплены несколько договоров
|
|||
3
pessok
19.03.13
✎
17:38
|
И ДоговорыКонтрагентов.Наименование В (&СписНаимДог)
Спис = Новый СписокЗначений(); Спис.Добавить("Основной договор"); Спис.добавить("Договор КП") Запрос.УстановитьПараметр("СписНаимДог",Спис); |
|||
4
acsent
19.03.13
✎
17:39
|
а зачем сгруппировать?
|
|||
5
zzzLEXzzz
19.03.13
✎
17:45
|
(3) Спасибо всё получилось
|
|||
6
zzzLEXzzz
19.03.13
✎
17:46
|
Ребят ещё проблема в этом же запросе, помогите щас постараюсь правильно объяснить
|
|||
7
zzzLEXzzz
19.03.13
✎
17:48
|
Можно ли сделать так чтобы когда он перебирал договора, и если одно из наименований уже есть то второй договор он уже не трогал, например если есть "Основной договор" то тогда "Договор КП" он не трогал, а если нету "основной договор" то тогда он подбирал "Договор КП" если не понятно объяснил, извините
|
|||
8
pessok
19.03.13
✎
17:53
|
ВЫБРАТЬ ПЕРВЫЕ 1
|
|||
9
zzzLEXzzz
19.03.13
✎
17:54
|
(8) а можешь показать где это в коде указать
|
|||
10
pessok
19.03.13
✎
17:55
|
(9) в первой строке твоего запроса
|
|||
11
zzzLEXzzz
19.03.13
✎
17:57
|
(10) он тогда берет одного контрагента, и всё, а надо по всем контрагентам, но один договор
|
|||
12
Юный 1С
19.03.13
✎
18:01
|
Может в начала сделать временную таблицу с контрами у которых есть договор "Основной". Потом сделать таблицу с договорами "Договор КП",и исключить из нею контров из первой таблице. И 3-ий шаг объединить эти таблицы.
|
|||
13
zzzLEXzzz
19.03.13
✎
18:03
|
(12) К сожалению для меня это слишком сложно (((( я просто начинающий только
|
|||
14
Юный 1С
19.03.13
✎
18:08
|
"ВЫБРАТЬ
| ДоговорыКонтрагентовОсновные.Владелец КАК Контр, | ДоговорыКонтрагентовОсновные.Владелец.Наименование, | ДоговорыКонтрагентовОсновные.Ссылка КАК Дог |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентовОсновные |ГДЕ | ДоговорыКонтрагентов.ТорговыйПредставитель = &ТП | И ДоговорыКонтрагентовОсновные.Наименование = &НаимДогОсновной | И ДоговорыКонтрагентовОсновные.ПометкаУдаления = ЛОЖЬ | |СГРУППИРОВАТЬ ПО | ДоговорыКонтрагентовОсновные.Владелец, | ДоговорыКонтрагентовОсновные.Владелец.Наименование, | ДоговорыКонтрагентовОсновные.Ссылка | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДоговорыКонтрагентовОстальные.Владелец, | ДоговорыКонтрагентовОстальные.Владелец.Наименование, | ДоговорыКонтрагентовОстальные.Ссылка |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентовОстальные |ГДЕ | ДоговорыКонтрагентов.ТорговыйПредставитель = &ТП | И ДоговорыКонтрагентовОстальные.Наименование = &НаимДог | И ДоговорыКонтрагентовОстальные.ПометкаУдаления = ЛОЖЬ | И НЕ ДоговорыКонтрагентовОстальные.Владелец В | (ВЫБРАТЬ | ДоговорыКонтрагентовОсновные.Владелец | ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентовОсновные | ГДЕ | ДоговорыКонтрагентов.ТорговыйПредставитель = &ТП | И ДоговорыКонтрагентовОсновные.Наименование = &НаимДогОсновной | И ДоговорыКонтрагентовОсновные.ПометкаУдаления = ЛОЖЬ) | |СГРУППИРОВАТЬ ПО | ДоговорыКонтрагентовОстальные.Владелец, | ДоговорыКонтрагентовОстальные.Владелец.Наименование, | ДоговорыКонтрагентовОстальные.Ссылка" |
|||
15
Юный 1С
19.03.13
✎
18:08
|
Вот как то так, только местные гуру не забрасывайте тапками)
|
|||
16
John D
19.03.13
✎
18:16
|
Повторюсь за (4) - зачем группировать, если нет агрегатных функций? Ну и запрос из (14) это, конечно, сильно...
Удачи! |
|||
17
zladenuw
19.03.13
✎
18:39
|
а разве у контрагента нет реквизита Основной Договор ?
|
|||
18
zzzLEXzzz
20.03.13
✎
09:59
|
(17) Есть, но по нему нельзя, т.к пометка на основной договор стоит совсем на других договорах
|
|||
19
zzzLEXzzz
20.03.13
✎
09:59
|
(14) что-то не получается ((
|
|||
20
hhhh
20.03.13
✎
10:04
|
(19) но вообще-то в типовых уже есть точно такая же функция. Всё уже сделано до вас.
|
|||
21
zzzLEXzzz
20.03.13
✎
10:32
|
(20) Можешь подсказать где именно?
|
|||
22
Ткачев
20.03.13
✎
10:35
|
Я бы так сделал
И (ДоговорыКонтрагентов.Наименование = "Основной договор" Или ДоговорыКонтрагентов.Наименование = "Договор КП") |
|||
23
zzzLEXzzz
20.03.13
✎
11:10
|
(22) Попробовал так, он тогда всё равно подхватывает 2 договора
|
|||
24
Ткачев
20.03.13
✎
11:36
|
(23)
ВЫБРАТЬ ДоговорыКонтрагентов.Владелец КАК Контрагент, ДоговорыКонтрагентов.Владелец.Наименование, МАКСИМУМ(ДоговорыКонтрагентов.Ссылка) КАК Договор ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ГДЕ (ДоговорыКонтрагентов.Наименование = "Основной договор" ИЛИ ДоговорыКонтрагентов.Наименование = "Договор КП") И ДоговорыКонтрагентов.ПометкаУдаления = ЛОЖЬ СГРУППИРОВАТЬ ПО ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.Наименование |
|||
25
Ткачев
20.03.13
✎
11:39
|
СГРУППИРОВАТЬ ПО
ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.Наименование = СГРУППИРОВАТЬ ПО ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.Владелец.Наименование |
|||
26
zzzLEXzzz
20.03.13
✎
11:44
|
(24)Выходит эта ошибка, не подскажешь из-за чего?
{Форма.Форма.Форма(942,45)}: Ожидается символ ';' | И(ДоговорыКонтрагентов.Наименование = "<<?>>Основной договор" (Проверка: Толстый клиент (обычное приложение)) {Форма.Форма.Форма(942,54)}: Неопознанный оператор | И(ДоговорыКонтрагентов.Наименование = "Основной <<?>>договор" (Проверка: Толстый клиент (обычное приложение)) |
|||
27
Ткачев
20.03.13
✎
11:47
|
(26)Весь запрос давай;
Скорее всего надо И(ДоговорыКонтрагентов.Наименование = ""Основной договор"" и ДоговорыКонтрагентов.Наименование = ""Договор КП"") |
|||
28
zzzLEXzzz
20.03.13
✎
11:49
|
(27) текст = "ВЫБРАТЬ
| ДоговорыКонтрагентов.Владелец КАК Контр, | ДоговорыКонтрагентов.Владелец.Наименование, | ДоговорыКонтрагентов.Ссылка КАК Дог |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.ТорговыйПредставитель = &ТП | И(ДоговорыКонтрагентов.Наименование = "Основной договор" | ИЛИ ДоговорыКонтрагентов.Наименование = "Договор КП") | И ДоговорыКонтрагентов.ПометкаУдаления = ЛОЖЬ | |СГРУППИРОВАТЬ ПО | ДоговорыКонтрагентов.Владелец, | ДоговорыКонтрагентов.Владелец.Наименование, | ДоговорыКонтрагентов.Ссылка"; Запрос = новый запрос; Запрос.Текст = Текст; Запрос.УстановитьПараметр("ТП",Агент_.Ссылка); Кон_ = Запрос.Выполнить().Выбрать(); |
|||
29
Ткачев
20.03.13
✎
11:50
|
текст = "ВЫБРАТЬ
| ДоговорыКонтрагентов.Владелец КАК Контр, | ДоговорыКонтрагентов.Владелец.Наименование, | ДоговорыКонтрагентов.Ссылка КАК Дог |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.ТорговыйПредставитель = &ТП | И(ДоговорыКонтрагентов.Наименование = ""Основной договор"" | ИЛИ ДоговорыКонтрагентов.Наименование = ""Договор КП"") | И ДоговорыКонтрагентов.ПометкаУдаления = ЛОЖЬ | |СГРУППИРОВАТЬ ПО | ДоговорыКонтрагентов.Владелец, | ДоговорыКонтрагентов.Владелец.Наименование, | ДоговорыКонтрагентов.Ссылка"; Запрос = новый запрос; Запрос.Текст = Текст; Запрос.УстановитьПараметр("ТП",Агент_.Ссылка); Кон_ = Запрос.Выполнить().Выбрать(); |
|||
30
zzzLEXzzz
20.03.13
✎
11:50
|
(27) Я делал в 2-х кавычках, но он тогда опять подбирает 2 договора...
|
|||
31
Ткачев
20.03.13
✎
11:51
|
текст = "ВЫБРАТЬ
| ДоговорыКонтрагентов.Владелец КАК Контр, | ДоговорыКонтрагентов.Владелец.Наименование, | МАКСИМУМ(ДоговорыКонтрагентов.Ссылка) КАК Дог |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.ТорговыйПредставитель = &ТП | И(ДоговорыКонтрагентов.Наименование = ""Основной договор"" | ИЛИ ДоговорыКонтрагентов.Наименование = ""Договор КП"") | И ДоговорыКонтрагентов.ПометкаУдаления = ЛОЖЬ | |СГРУППИРОВАТЬ ПО | ДоговорыКонтрагентов.Владелец, | ДоговорыКонтрагентов.Владелец.Наименование"; Запрос = новый запрос; Запрос.Текст = Текст; Запрос.УстановитьПараметр("ТП",Агент_.Ссылка); Кон_ = Запрос.Выполнить().Выбрать(); |
|||
32
Ткачев
20.03.13
✎
11:51
|
(30)Так максимум не поставил
|
|||
33
zzzLEXzzz
20.03.13
✎
12:00
|
(32) Афигеннно, всё заработало, огромнейшее тебе спасибо, но только за максимум я так и не понял эт что? ))))
|
|||
34
Ткачев
20.03.13
✎
12:04
|
(33)Так скажем в твоем случае это Сортировка договоров по убыванию, МИНИМУМ по возрастанию.
|
|||
35
zzzLEXzzz
20.03.13
✎
12:07
|
(34) Спасибо тебе огромное, сам бы в жизнь не до пёр бы до этого )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |