Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Нужна помощь с запросом (http://forums.kuban.ru/f1040/nuzhna_pomosh-_s_zaprosom-2811747.html)

gematogen 10.07.2012 07:55

Нужна помощь с запросом
 
Надо выбрать все документы, в которых каждая строчка табличной части содержит реквизит равный заданному условию.

101 10.07.2012 07:56

бухгалтерия 6.0 ??

roma n 10.07.2012 08:00

И в чём проблема?
Варианты:
1) Отбираешь все документы, у которых есть хотя бы одна строка с нужным значением в один список, все документы, у которых есть хотя бы одна строка со значением отличным от нужного в другой список. Соединяешь. Результат анализируешь (Вариант: выбираешь из первого списка всех, отсутствующих во втором)
2)Отбираешь все документы, у которых есть хотя бы одна строка с нужным значением в один список. Выбираешь из ТЧ отобранных документов поле с искомым значением и группируешь по ссылке с агрегатной функцией КоличествоРазличных по твоему полю. Сгруппированный презультат анализируешь

gematogen 10.07.2012 08:01

Конфа самописная.
Пока у меня только два варианта:
1. Сравнивать количество строк
2. Выбрать все документы, которые не удовлетворяют заданному условию, и затем соединять с документами указываю что выбрать не равные этим.

gematogen 10.07.2012 08:02

2-roma n >а "пошустрее" запрос возможен?

roma n 10.07.2012 08:03

1-101 > раздел v8.
====
OFF интересно, кто-нить ещё надеется на нормальное отображение разделов в списке/теме?

roma n 10.07.2012 08:12

4-gematogen > какой из вариантов будет шустрее зависит от конкретного наполнения базы.

Исходя из контекста задачи может оказаться уместным пойти на дополнительную избыточность данных: например, перед записью документа если все его строки содержат одно и то же значение писать это значение в служебный реквизит документа. Тогда никакие ухищрения с подсчётом/анализом всех строк будут не нужны...

gematogen 10.07.2012 08:15

6-roma n > ясно, спасибо за участие
Как раз задача и стояла реализовать эту избыточность, но надо заполнить уже в существующих документах реквизит. В принципе задача разовая, но ради спортивного интереса поинтересовался о более "интересном" варианте реализации задачи.

Lexusss 10.07.2012 08:18

(5) "Бес шансоффф"
(0)
ВЫБРАТЬ Список.Ссылка
ИЗ
(
ВЫБРАТЬ РАЗЛИЧНЫЕ Список.Ссылка
ИЗ Документ.ХХХ.Табчасть
ГДЕ Реквизит = &Условие
) КАК Список
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ХХХ.Табчасть КАК Поиск
ПО
Список.Ссылка = Поиск.Ссылка
И Поиск.Реквизит <> &Условие
ГДЕ
Поиск.Ссылка ЕСТЬ NULL


Текущее время: 03:07. Часовой пояс GMT +3.