Имя: Пароль:
1C
 
Отбор нужных документов по табличной части
0 Sergio447
 
31.05.23
19:59
Доброго всем дня.
Может кто подскажет, в общем задача такая, нужно чтобы запрос отдавал только те документы у которых табличная часть содержит операцию Фасовка и в которой нет операции Отправка. Делаю запрос, вытянул из документа Выполнение работ табличную часть Операции. Прописал условие Операция.Наименование = "Фасовка" И НЕ Операция.Наименование = "Отправка", но ничего не отрабатывает. Пробовал через Подобно та же картина.
1 Мультук
 
гуру
31.05.23
20:24
(0)

1) Если конфигурация и документ - типовые лучше написать название, версию конфигурации и имя документа.
2) Где текст запроса ?
2 Sergio447
 
31.05.23
20:30
документ и конфигурация нетиповые.
3 Доминошник
 
31.05.23
20:39
Если в ТЧ будет две строки - "Фасовка" и "Отправка", то такой запрос (по первой строке) отберёт документ.

Как мне кажется, сначала надо найти все документы, которые содержат "Отправку" во "временную таблицу", а потом выбрать все документы, у которых есть "Фасовка" и не входящие во "временную таблицу".
4 Sergio447
 
31.05.23
20:44
(1) ВЫБРАТЬ
    ВыполнениеРаботОперации.Ссылка КАК Ссылка,
    ВыполнениеРаботОперации.Операция.Наименование КАК Операция,
    ВыполнениеРаботОперации.Автор КАК Автор
ИЗ
    Документ.ВыполнениеРабот.Операции КАК ВыполнениеРаботОперации
ГДЕ
    ВыполнениеРаботОперации.Операция.Наименование = "Фасовка"
            И НЕ ВыполнениеРаботОперации.Операция.Наименование = "Отправка"
5 Donkey_hot
 
31.05.23
20:51
(4) Ответ в (3)
6 H A D G E H O G s
 
31.05.23
21:14
ВЫБРАТЬ
    ВыполнениеРаботОперации.Ссылка КАК Ссылка,
ИЗ
    Документ.ВыполнениеРабот.Операции КАК ВыполнениеРаботОперации

СГРУППИРОВАТЬ ПО
    ВыполнениеРаботОперации.Ссылка

ИМЕЮЩИЕ
    МИНИМУМ(ВыполнениеРаботОперации.Операция.Наименование = "Фасовка"
            ИЛИ ВыполнениеРаботОперации.Операция.Наименование <> "Отправка") = ИСТИНА
7 Sergio447
 
31.05.23
21:48
(6) с таким условием оно мне вообще все что есть в табличной части вытащило по всем документам + лишние документы где операции фасовка вообще нет.
8 RomanYS
 
31.05.23
21:52
(6) фигня же
9 RomanYS
 
31.05.23
22:06
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ТЧ.Ссылка КАК Ссылка
ИЗ
    Документ.Документ1.ТабличнаяЧасть1 КАК ТЧ
ГДЕ
    ТЧ.Реквизит1 В
            (ВЫБРАТЬ
                Спр.Ссылка КАК Ссылка
            ИЗ
                Справочник.Справочник1 КАК Спр
            ГДЕ
                Спр.Наименование = "Фасовка")
    И НЕ ТЧ.Ссылка В
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    ТЧ.Ссылка КАК Ссылка
                ИЗ
                    Документ.Документ1.ТабличнаяЧасть1 КАК ТЧ
                ГДЕ
                    ТЧ.Реквизит1 В
                        (ВЫБРАТЬ
                            Спр.Ссылка КАК Ссылка
                        ИЗ
                            Справочник.Справочник1 КАК Спр
                        ГДЕ
                            Спр.Наименование = "Отправка"))
10 Sergio447
 
31.05.23
22:23
(9) спасибо большое, это работает!
11 H A D G E H O G s
 
31.05.23
22:43
(7) (8) Да, фигня, не все условия учел.
А так

ВЫБРАТЬ
    ВыполнениеРаботОперации.Ссылка КАК Ссылка
ИЗ
    Документ.ВыполнениеРабот.Операции КАК ВыполнениеРаботОперации

СГРУППИРОВАТЬ ПО
    ВыполнениеРаботОперации.Ссылка

ИМЕЮЩИЕ
    СУММА(ВЫБОР
            КОГДА ВыполнениеРаботОперации.Операция.Наименование = "Фасовка"
                ТОГДА 1
            КОГДА ВыполнениеРаботОперации.Операция.Наименование = "Отправка"
                ТОГДА -99999
            ИНАЧЕ 0
        КОНЕЦ) > 0