Имя: Пароль:
1C
 
Динамический список
0 reznik911
 
24.03.17
11:42
Добрый день всем! Конфигурация не типовая. Платформа 8.3.7
В списке документов Расходная накладная сортировка по колонкам по нажатию на шапку колонок не работает сортировка.
На форме списка в динамическом списке был написан произвольный. Почитав в интернете думал решить проблему скрыв СГРУППИРОВАТЬ ПО во вложенный запрос. Теперь сортировка работает, но сам документ где стоит курсор не открывается. Незнаю дальше куда копать. Вот сам код:

ВЫБРАТЬ
    ВложенныйЗапрос.Ссылка,
    ВложенныйЗапрос.Номер,
    ВложенныйЗапрос.Дата,
    ВложенныйЗапрос.Автомобиль,
    ВложенныйЗапрос.Автор,
    ВложенныйЗапрос.АдресПоставки,
    ВложенныйЗапрос.ВалютаДокумента,
    ВложенныйЗапрос.ВидОперации,
    ВложенныйЗапрос.ДоговорКонтрагента,
    ВложенныйЗапрос.ДокументОснованиеДопСоглашениеДоговора,
    ВложенныйЗапрос.ДокументОснованиеНомерЗаказаSAP,
    ВложенныйЗапрос.ДокументЗагруженИзSAP,
    ВложенныйЗапрос.ДокументОснование,
    ВложенныйЗапрос.КоличествоДокумента,
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.НомерЖдНакладной,
    ВложенныйЗапрос.Подразделение,
    ВложенныйЗапрос.Склад,
    ВложенныйЗапрос.СуммаДокумента,
    ВложенныйЗапрос.ПометкаУдаления,
    ВложенныйЗапрос.Проведен,
    ВложенныйЗапрос.СчетФактураПроведен
ИЗ
    (ВЫБРАТЬ
        ДокументРасходнаяНакладная.Ссылка КАК Ссылка,
        ДокументРасходнаяНакладная.Номер КАК Номер,
        ДокументРасходнаяНакладная.Дата КАК Дата,
        ДокументРасходнаяНакладная.Автомобиль КАК Автомобиль,
        ДокументРасходнаяНакладная.Автор КАК Автор,
        ДокументРасходнаяНакладная.АдресПоставки КАК АдресПоставки,
        ДокументРасходнаяНакладная.ВалютаДокумента КАК ВалютаДокумента,
        ДокументРасходнаяНакладная.ВидОперации КАК ВидОперации,
        ДокументРасходнаяНакладная.ДоговорКонтрагента КАК ДоговорКонтрагента,
        ДокументРасходнаяНакладная.ДокументОснование.ДопСоглашениеДоговора КАК ДокументОснованиеДопСоглашениеДоговора,
        ДокументРасходнаяНакладная.ДокументОснование.НомерЗаказаSAP КАК ДокументОснованиеНомерЗаказаSAP,
        ДокументРасходнаяНакладная.ДокументЗагруженИзSAP КАК ДокументЗагруженИзSAP,
        ДокументРасходнаяНакладная.ДокументОснование КАК ДокументОснование,
        ДокументРасходнаяНакладная.КоличествоДокумента КАК КоличествоДокумента,
        ДокументРасходнаяНакладная.Контрагент КАК Контрагент,
        ДокументРасходнаяНакладная.НомерЖдНакладной КАК НомерЖдНакладной,
        ДокументРасходнаяНакладная.Подразделение КАК Подразделение,
        ДокументРасходнаяНакладная.Склад КАК Склад,
        ДокументРасходнаяНакладная.СуммаДокумента КАК СуммаДокумента,
        ДокументРасходнаяНакладная.ПометкаУдаления КАК ПометкаУдаления,
        ДокументРасходнаяНакладная.Проведен КАК Проведен,
        СУММА(ВЫБОР
                КОГДА ЕСТЬNULL(СчетФактура.Проведен, ЛОЖЬ)
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ) КАК СчетФактураПроведен
    ИЗ
        Документ.РасходнаяНакладная КАК ДокументРасходнаяНакладная
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактура КАК СчетФактура
            ПО ДокументРасходнаяНакладная.Ссылка = СчетФактура.ДокументОснование
    
    СГРУППИРОВАТЬ ПО
        ДокументРасходнаяНакладная.Ссылка,
        ДокументРасходнаяНакладная.Номер,
        ДокументРасходнаяНакладная.Дата,
        ДокументРасходнаяНакладная.Автомобиль,
        ДокументРасходнаяНакладная.Автор,
        ДокументРасходнаяНакладная.АдресПоставки,
        ДокументРасходнаяНакладная.ВалютаДокумента,
        ДокументРасходнаяНакладная.ВидОперации,
        ДокументРасходнаяНакладная.ДоговорКонтрагента,
        ДокументРасходнаяНакладная.ДокументОснование.ДопСоглашениеДоговора,
        ДокументРасходнаяНакладная.ДокументОснование.НомерЗаказаSAP,
        ДокументРасходнаяНакладная.ДокументЗагруженИзSAP,
        ДокументРасходнаяНакладная.ДокументОснование,
        ДокументРасходнаяНакладная.КоличествоДокумента,
        ДокументРасходнаяНакладная.Контрагент,
        ДокументРасходнаяНакладная.НомерЖдНакладной,
        ДокументРасходнаяНакладная.Подразделение,
        ДокументРасходнаяНакладная.Склад,
        ДокументРасходнаяНакладная.СуммаДокумента,
        ДокументРасходнаяНакладная.ПометкаУдаления,
        ДокументРасходнаяНакладная.Проведен) КАК ВложенныйЗапрос
1 FIXXXL
 
24.03.17
11:48
(0) основная таблица? своя обработка двойного клика?
2 reznik911
 
24.03.17
11:54
(1) не понял о чем вы?
3 Cumpuciy
 
24.03.17
11:55
в свойствах динамического списка должна быть указана основная таблица.
Надо её поставить.
Если нет возможности, то пишите свою обработку открытия.
4 reznik911
 
24.03.17
11:59
(3) когда галочка стоит произвольный запрос разве не исчезает выбор Основной таблицы?
5 reznik911
 
24.03.17
12:11
(3) основная таблица Документ РасходнаяНакладная, извините за невнимательность
6 toypaul
 
гуру
24.03.17
12:11
сгруппировать тут точно не нужно. и даже вредно
7 toypaul
 
гуру
24.03.17
12:12
вложенный запрос тоже не нужен
8 reznik911
 
24.03.17
12:13
(6) В запросе используется левое соединение, чтобы получить подчиненный документ Счет-фактура.
Мне пришлось сделать группировку, потому что выдавало ошибку (в Актобе), когда на основании Расходной накладной было две Счет-фактуры, одна из них была помечена на удаление, из-за этого в динамическом списке появлялось две одинаковых документа Расходная накладная, что недопустимо.
9 Вафель
 
24.03.17
12:14
соединяй сразу с условием не пометка удаления
10 toypaul
 
гуру
24.03.17
12:19
(8) для этого таблицу СФ нужно сначала сгруппировать по документ основания. а уж потом соединять.

к сожалению в 1С до сих пор нед подзапросов в списке SELECT. это был бы идеальный вариант для таких ситуаций
11 reznik911
 
24.03.17
12:29
(10) сгруппировать СФ поместив в ВТ а потом соединить?
12 toypaul
 
гуру
24.03.17
12:31
без ВТ
13 reznik911
 
24.03.17
12:33
(12) а как без ВТ, только вложенным
14 toypaul
 
гуру
24.03.17
12:42
а в чем проблема-то? ВТ и ДС несовместимы
15 luter-89
 
24.03.17
13:00
(14) Совместимы уже
16 reznik911
 
24.03.17
13:06
(14) проблема в том что я не представляю без ВТ и без вложенного запроса где будет лежать предварительно сгруппированные СФ чтобы их потом соединять
17 toypaul
 
гуру
24.03.17
13:27
(15) давно? я не так давно пробовал - не получалось
18 luter-89
 
24.03.17
13:31
(17) В какой-то 8.3.9 появилось
19 toypaul
 
гуру
24.03.17
13:31
(18) понял. буду иметь ввиду
20 Cumpuciy
 
24.03.17
13:37
(4) ну её можно указать в настройках списка, в конфигураторе
21 reznik911
 
24.03.17
14:05
(17) а в чем тогда разница будет с моим изначальным кодом, если здесь также сначала сгруппировать по СФ, а после соединиться с Расходной накладной
22 toypaul
 
гуру
24.03.17
14:22
есть курсы по запросам. там расскажут. в (10) я все разжевал. осталось только в рот положить.
23 reznik911
 
27.03.17
10:15
(22) заработало + условие добавил

ВЫБРАТЬ
    ДокументРасходнаяНакладная.Ссылка,
    ДокументРасходнаяНакладная.Номер,
    ДокументРасходнаяНакладная.Дата,
    ДокументРасходнаяНакладная.Автомобиль,
    ДокументРасходнаяНакладная.Автор,
    ДокументРасходнаяНакладная.АдресПоставки,
    ДокументРасходнаяНакладная.ВалютаДокумента,
    ДокументРасходнаяНакладная.ВидОперации,
    ДокументРасходнаяНакладная.ДоговорКонтрагента,
    ДокументРасходнаяНакладная.ДокументОснование.ДопСоглашениеДоговора,
    ДокументРасходнаяНакладная.ДокументОснование.НомерЗаказаSAP,
    ДокументРасходнаяНакладная.ДокументЗагруженИзSAP,
    ДокументРасходнаяНакладная.ДокументОснование,
    ДокументРасходнаяНакладная.КоличествоДокумента,
    ДокументРасходнаяНакладная.Контрагент,
    ДокументРасходнаяНакладная.НомерЖдНакладной,
    ДокументРасходнаяНакладная.Подразделение,
    ДокументРасходнаяНакладная.Склад,
    ДокументРасходнаяНакладная.СуммаДокумента,
    ДокументРасходнаяНакладная.ПометкаУдаления,
    ДокументРасходнаяНакладная.Проведен,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВложенныйЗапрос.Проведен, ЛОЖЬ)
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ КАК СчетФактураПроведен
ИЗ
    Документ.РасходнаяНакладная КАК ДокументРасходнаяНакладная
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СчетФактура.ДокументОснование КАК ДокументОснование,
            СчетФактура.Проведен КАК Проведен
        ИЗ
            Документ.СчетФактура КАК СчетФактура
        ГДЕ
            НЕ СчетФактура.ПометкаУдаления
        
        СГРУППИРОВАТЬ ПО
            СчетФактура.ДокументОснование,
            СчетФактура.Проведен) КАК ВложенныйЗапрос
        ПО ДокументРасходнаяНакладная.Ссылка = ВложенныйЗапрос.ДокументОснование
ГДЕ
    ДокументРасходнаяНакладная.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И ДокументРасходнаяНакладная.Подразделение = &Подразделение
24 Вафель
 
27.03.17
10:18
(23) вложенный запрос не нужен.
Соединять можно по нескольким полям/выражениям
25 1sanekmaloi1
 
27.03.17
10:19
(23)Сделай 2 Сф проведенную и не проведенную к одному доку, посмотри на результат
26 toypaul
 
гуру
27.03.17
10:29
(23) угу
27 reznik911
 
27.03.17
10:52
(24) не понял
28 Вафель
 
27.03.17
10:57
левое соединение .. по таб.ссылка = таб2.основание И таб2.пометкаудаления = ложь
29 reznik911
 
27.03.17
11:56
(28) В этом случае не отображаются расходники у которых нет счета фактур
30 1sanekmaloi1
 
27.03.17
12:52
(29)Написали же что " И таб2.пометкаудаления = ложь" это в условия соединения нужно перенести, если избавляешься от вложенного запроса, если оставишь в разделе "ГДЕ" то ясен пень у тебя левоесоединение превращается во внутреннее соединение.
31 undertaker
 
27.03.17
17:40
(23) я бы еще РАЗЛИЧНЫЕ во влож запрос добавил. Не знаю, бывает ли у вас такие ситуации, когда к одной накладной несколько с-ф, но у нас было

ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            СчетФактураПолученный.ДокументОснование КАК ДокументОснование
        ИЗ
            Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученный
        ГДЕ
            НЕ СчетФактураПолученный.Ссылка.ПометкаУдаления) КАК СчетФактураПолученный
        ПО (СчетФактураПолученный.ДокументОснование = ДокументПоступлениеТоваровУслуг.Ссылка)