|
Отбор по значению дополнительных реквизитов | ☑ | ||
---|---|---|---|---|
0
falselight
23.10.17
✎
07:54
|
Здравствуйте! Подскажите пожалуйста по особенно важному вопросу.
Есть запрос. Состоит из нескольких пакетов. В нем подсчитывается количество и сумма по различным условиям. Сейчас задача отобрать запись этого запроса по источнику. Источник хранится в табличной части Дополнительные реквизиты в значении. Как можно установить в данном запросе условие на отбор значения в таблице дополнительные реквизиты? // ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиента.Ссылка) КАК ИтогПоКоличествуЗаказов ПОМЕСТИТЬ ВТ_ИтогПоКоличествуЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказКлиента.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСТЬNULL(ЗаказКлиента.Ссылка, 0)) КАК КоличествоЗаказов, СУММА(ЕСТЬNULL(ЗаказКлиента.СуммаДокумента, 0)) КАК СуммаЗаказов ПОМЕСТИТЬ ВТ_КоличествоИСуммаЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА СГРУППИРОВАТЬ ПО ЗаказКлиента.Менеджер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СостоянияЗаказовКлиентов.Заказ.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Заказ.Ссылка, 0)) КАК КоличествоОтгруженныхЗаказов, СУММА(ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0)) КАК СуммаОтгрузки ПОМЕСТИТЬ ВТ_ОтгруженныеЗаказы ИЗ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов ГДЕ СостоянияЗаказовКлиентов.Заказ.Дата МЕЖДУ &НачДата И &КонДата И СостоянияЗаказовКлиентов.Состояние = &Закрыт И СостоянияЗаказовКлиентов.ПроцентОтгрузки = 100 И СостоянияЗаказовКлиентов.Заказ.ПометкаУдаления = ЛОЖЬ И СостоянияЗаказовКлиентов.Заказ.Проведен = ИСТИНА СГРУППИРОВАТЬ ПО СостоянияЗаказовКлиентов.Заказ.Менеджер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СостоянияЗаказовКлиентов.Заказ.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СостоянияЗаказовКлиентов.Заказ.Ссылка) КАК ЕщёВРаботе ПОМЕСТИТЬ ВТ_ЗаказыЕщёВРаботе ИЗ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов ГДЕ СостоянияЗаказовКлиентов.Заказ.Дата МЕЖДУ &НачДата И &КонДата И СостоянияЗаказовКлиентов.Состояние <> &ЗАКРЫТ И СостоянияЗаказовКлиентов.Заказ.ПометкаУдаления = ЛОЖЬ И СостоянияЗаказовКлиентов.Заказ.Проведен = ИСТИНА СГРУППИРОВАТЬ ПО СостоянияЗаказовКлиентов.Заказ.Менеджер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ИтогПоКоличествуЗаказов.ИтогПоКоличествуЗаказов КАК ИтогПоКоличествуЗаказов, ВТ_КоличествоИСуммаЗаказов.Менеджер, ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.КоличествоЗаказов, 0) КАК КоличествоЗаказов, ВЫРАЗИТЬ(ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.КоличествоЗаказов, 0) / ВТ_ИтогПоКоличествуЗаказов.ИтогПоКоличествуЗаказов * 100 КАК ЧИСЛО(15, 2)) КАК ПроцентОтОбщегоКоличества, ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.СуммаЗаказов, 0) КАК СуммаЗаказов, ЕСТЬNULL(ВТ_ОтгруженныеЗаказы.КоличествоОтгруженныхЗаказов, 0) КАК КоличествоОтгруженныхЗаказов, ВЫРАЗИТЬ(ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.КоличествоЗаказов, 0) - ЕСТЬNULL(ВТ_ОтгруженныеЗаказы.КоличествоОтгруженныхЗаказов, 0) / ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.КоличествоЗаказов, 0) КАК ЧИСЛО(15, 2)) КАК КПД, ЕСТЬNULL(ВТ_ОтгруженныеЗаказы.СуммаОтгрузки, 0) КАК СуммаОтгруженныхЗаказов, ЕСТЬNULL(ВТ_ЗаказыЕщёВРаботе.ЕщёВРаботе, 0) КАК Поле1 ИЗ ВТ_ИтогПоКоличествуЗаказов КАК ВТ_ИтогПоКоличествуЗаказов, ВТ_КоличествоИСуммаЗаказов КАК ВТ_КоличествоИСуммаЗаказов ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтгруженныеЗаказы КАК ВТ_ОтгруженныеЗаказы ПО ВТ_КоличествоИСуммаЗаказов.Менеджер = ВТ_ОтгруженныеЗаказы.ЗаказМенеджер ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗаказыЕщёВРаботе КАК ВТ_ЗаказыЕщёВРаботе ПО ВТ_КоличествоИСуммаЗаказов.Менеджер = ВТ_ЗаказыЕщёВРаботе.ЗаказМенеджер |
|||
1
falselight
23.10.17
✎
07:59
|
(0+) Нет ссылки в запросе для связи с таблицей дополнительные реквизиты. Не соображу как её прицепить к нему(
|
|||
2
riks05
23.10.17
✎
08:00
|
(0) сначала отдельным запросом отобрази все доп реквизиты, определись с нужным допреквизитом после "свойство" если я не ошибаюсь допустим оно будет "источник" в условии получится
Где допреквизиты.свойство="источник" и допреквизиты.значение=&НужноеЗначение както так. |
|||
3
1dvd
23.10.17
✎
08:01
|
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО ЗаказКлиентаДополнительныеРеквизиты.Ссылка = ЗаказКлиента.Ссылка |
|||
4
Fram
23.10.17
✎
08:03
|
И СостоянияЗаказовКлиентов.Заказ.ПометкаУдаления = ЛОЖЬ
И СостоянияЗаказовКлиентов.Заказ.Проведен = ИСТИНА подстраховался на всякий случай? |
|||
5
falselight
23.10.17
✎
08:05
|
(2) Важно кажется задавать только значение.
Да все правильно у вас. Но вот этот запрос в (0), как сделать отбор по значению дополнительных реквизитов в нем? Не пойму как прицепить к нему эти доп реквизиты. (3) Это правильно. Но видите у меня в пакетных запросах подсчитывается количество. Получается отбор нужно накладывать на каждый пакет, т.к. нужно видеть данные с отбором по источнику. Но возможно ли это сделать в запросе (0) Ссылки на заказ то в пакетах нет, что бы связывать с таблицей дополнительные реквизиты. |
|||
6
falselight
23.10.17
✎
08:06
|
(4) Ну вроде это нужно делать. Не знаю стоит ли устанавлявать ложи на пометку удаления? Так как проведен в истину и так отберет же только проведенные. А проведенные не могут быть помеченными на удаление?!
|
|||
7
1dvd
23.10.17
✎
08:08
|
(5) нифига не понял что тебе не нравится. В пакетных запросах ссылка есть. соединяй с ТЧ и фильтруй. Не вижу никаких проблем
|
|||
8
catena
23.10.17
✎
08:11
|
(6)"ложи" - нет такого слова, есть слово "клади".
|
|||
9
falselight
23.10.17
✎
08:15
|
(8) Не сильно за грамматикой сейчас слежу.
(7) Есть группировка по менеджеру, ссылка используется для подсчета количества, и сумма. Может я чего то не понимаю, но как вот в этих к примеру двух пакетах наложить отбор на значение таблицы дополнительных реквизитов? Как её прицепить к ним, что бы наложить отбор? |
|||
10
falselight
23.10.17
✎
08:15
|
(9+)
ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиента.Ссылка) КАК ИтогПоКоличествуЗаказов ПОМЕСТИТЬ ВТ_ИтогПоКоличествуЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказКлиента.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСТЬNULL(ЗаказКлиента.Ссылка, 0)) КАК КоличествоЗаказов, СУММА(ЕСТЬNULL(ЗаказКлиента.СуммаДокумента, 0)) КАК СуммаЗаказов ПОМЕСТИТЬ ВТ_КоличествоИСуммаЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА СГРУППИРОВАТЬ ПО ЗаказКлиента.Менеджер ; //////////////////////////////////////////////////////////////////////////////// |
|||
11
1dvd
23.10.17
✎
08:18
|
(9)
ВЫБРАТЬ ЗаказКлиента.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСТЬNULL(ЗаказКлиента.Ссылка, 0)) КАК КоличествоЗаказов, СУММА(ЕСТЬNULL(ЗаказКлиента.СуммаДокумента, 0)) КАК СуммаЗаказов ПОМЕСТИТЬ ВТ_КоличествоИСуммаЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО ЗаказКлиентаДополнительныеРеквизиты.Ссылка = ЗаказКлиента.Ссылка ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА И ЗаказКлиентаДополнительныеРеквизиты.Свойство = &Свойство И ЗаказКлиентаДополнительныеРеквизиты.Значение = &Значение СГРУППИРОВАТЬ ПО ЗаказКлиента.Менеджер Дальше сам думай |
|||
12
falselight
23.10.17
✎
08:21
|
(11) А так нельзя?
ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиента.Ссылка) КАК ИтогПоКоличествуЗаказов ПОМЕСТИТЬ ВТ_ИтогПоКоличествуЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА И ЗаказКлиента.ДополнительныеРеквизиты.Значение = &Знач ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказКлиента.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСТЬNULL(ЗаказКлиента.Ссылка, 0)) КАК КоличествоЗаказов, СУММА(ЕСТЬNULL(ЗаказКлиента.СуммаДокумента, 0)) КАК СуммаЗаказов ПОМЕСТИТЬ ВТ_КоличествоИСуммаЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА И ЗаказКлиента.ДополнительныеРеквизиты.Значение = &Знач СГРУППИРОВАТЬ ПО ЗаказКлиента.Менеджер ; |
|||
13
catena
23.10.17
✎
08:24
|
(12)Тебе можно, но 1С будет ругаться.
|
|||
14
1dvd
23.10.17
✎
08:24
|
(12) попробуй, может и можно
|
|||
15
falselight
23.10.17
✎
08:32
|
Подскажите пожалуйста по итоговому запросу, я попытался добавить таблицу. Все ли в нем верно?
|| ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиента.Ссылка) КАК ИтогПоКоличествуЗаказов ПОМЕСТИТЬ ВТ_ИтогПоКоличествуЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО ЗаказКлиента.Ссылка = ЗаказКлиентаДополнительныеРеквизиты.Ссылка ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА И ЗаказКлиента.ДополнительныеРеквизиты.Значение = &Знач ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказКлиента.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСТЬNULL(ЗаказКлиента.Ссылка, 0)) КАК КоличествоЗаказов, СУММА(ЕСТЬNULL(ЗаказКлиента.СуммаДокумента, 0)) КАК СуммаЗаказов ПОМЕСТИТЬ ВТ_КоличествоИСуммаЗаказов ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО ЗаказКлиента.Ссылка = ЗаказКлиентаДополнительныеРеквизиты.Ссылка ГДЕ ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ И ЗаказКлиента.Проведен = ИСТИНА И ЗаказКлиента.ДополнительныеРеквизиты.Значение = &Знач СГРУППИРОВАТЬ ПО ЗаказКлиента.Менеджер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СостоянияЗаказовКлиентов.Заказ.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Заказ.Ссылка, 0)) КАК КоличествоОтгруженныхЗаказов, СУММА(ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0)) КАК СуммаОтгрузки ПОМЕСТИТЬ ВТ_ОтгруженныеЗаказы ИЗ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО СостоянияЗаказовКлиентов.Заказ.Ссылка = ЗаказКлиентаДополнительныеРеквизиты.Ссылка ГДЕ СостоянияЗаказовКлиентов.Заказ.Дата МЕЖДУ &НачДата И &КонДата И СостоянияЗаказовКлиентов.Состояние = &Закрыт И СостоянияЗаказовКлиентов.ПроцентОтгрузки = 100 И СостоянияЗаказовКлиентов.Заказ.ПометкаУдаления = ЛОЖЬ И СостоянияЗаказовКлиентов.Заказ.Проведен = ИСТИНА И ЗаказКлиентаДополнительныеРеквизиты.Значение = &Знач СГРУППИРОВАТЬ ПО СостоянияЗаказовКлиентов.Заказ.Менеджер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СостоянияЗаказовКлиентов.Заказ.Менеджер, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СостоянияЗаказовКлиентов.Заказ.Ссылка) КАК ЕщёВРаботе ПОМЕСТИТЬ ВТ_ЗаказыЕщёВРаботе ИЗ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО СостоянияЗаказовКлиентов.Заказ.Ссылка = ЗаказКлиентаДополнительныеРеквизиты.Ссылка ГДЕ СостоянияЗаказовКлиентов.Заказ.Дата МЕЖДУ &НачДата И &КонДата И СостоянияЗаказовКлиентов.Состояние <> &ЗАКРЫТ И СостоянияЗаказовКлиентов.Заказ.ПометкаУдаления = ЛОЖЬ И СостоянияЗаказовКлиентов.Заказ.Проведен = ИСТИНА И ЗаказКлиентаДополнительныеРеквизиты.Значение = &Знач СГРУППИРОВАТЬ ПО СостоянияЗаказовКлиентов.Заказ.Менеджер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ИтогПоКоличествуЗаказов.ИтогПоКоличествуЗаказов КАК ИтогПоКоличествуЗаказов, ВТ_КоличествоИСуммаЗаказов.Менеджер, ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.КоличествоЗаказов, 0) КАК КоличествоЗаказов, ВЫРАЗИТЬ(ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.КоличествоЗаказов, 0) / ВТ_ИтогПоКоличествуЗаказов.ИтогПоКоличествуЗаказов * 100 КАК ЧИСЛО(15, 2)) КАК ПроцентОтОбщегоКоличества, ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.СуммаЗаказов, 0) КАК СуммаЗаказов, ЕСТЬNULL(ВТ_ОтгруженныеЗаказы.КоличествоОтгруженныхЗаказов, 0) КАК КоличествоОтгруженныхЗаказов, ВЫРАЗИТЬ(ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.КоличествоЗаказов, 0) - ЕСТЬNULL(ВТ_ОтгруженныеЗаказы.КоличествоОтгруженныхЗаказов, 0) / ЕСТЬNULL(ВТ_КоличествоИСуммаЗаказов.КоличествоЗаказов, 0) КАК ЧИСЛО(15, 2)) КАК КПД, ЕСТЬNULL(ВТ_ОтгруженныеЗаказы.СуммаОтгрузки, 0) КАК СуммаОтгруженныхЗаказов, ЕСТЬNULL(ВТ_ЗаказыЕщёВРаботе.ЕщёВРаботе, 0) КАК ЕщёВРаботе ИЗ ВТ_ИтогПоКоличествуЗаказов КАК ВТ_ИтогПоКоличествуЗаказов, ВТ_КоличествоИСуммаЗаказов КАК ВТ_КоличествоИСуммаЗаказов ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтгруженныеЗаказы КАК ВТ_ОтгруженныеЗаказы ПО ВТ_КоличествоИСуммаЗаказов.Менеджер = ВТ_ОтгруженныеЗаказы.ЗаказМенеджер ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗаказыЕщёВРаботе КАК ВТ_ЗаказыЕщёВРаботе ПО ВТ_КоличествоИСуммаЗаказов.Менеджер = ВТ_ЗаказыЕщёВРаботе.ЗаказМенеджер |
|||
16
catena
23.10.17
✎
08:36
|
(14)Ну и как? Что ощущаешь после провалившейся акции милосердия?))
|
|||
17
Масянька
23.10.17
✎
08:37
|
Как у вас дела? Получилось донести до ТС мысли?
|
|||
18
falselight
23.10.17
✎
08:39
|
(16) ну вот запрос итоговый в (15) я сделал как подсказывали, он нормальный?
|
|||
19
falselight
23.10.17
✎
08:39
|
(16) Подскажите пожалуйста!
|
|||
20
catena
23.10.17
✎
08:40
|
(18)Нет, ты сделал НЕ как подсказывали. Помнишь детскую игру "найди три отличия"? Сиди, сверяй.
|
|||
21
catena
23.10.17
✎
08:41
|
(17)У него переполнение стека, то и дело всё выплескивается.
|
|||
22
falselight
23.10.17
✎
08:42
|
(20) вы про то что не хватает этого?
И ЗаказКлиентаДополнительныеРеквизиты.Свойство = &Свойство это у меня на форме, и там только нужные значения уже, то есть я считал что = &Знач достаточно! |
|||
23
Масянька
23.10.17
✎
08:44
|
(21) И смех, и грех (С)
|
|||
24
falselight
23.10.17
✎
08:44
|
(20) Подскажите что именно не так в запросе?
|
|||
25
1dvd
23.10.17
✎
08:45
|
(24) всё норм. не парься
|
|||
26
falselight
23.10.17
✎
08:47
|
(25) Спасибо большое за поддержку! Пойду вставлять в отчет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |