Имя: Пароль:
1C
 
Динамический список БП 3.0
0 Droning1C
 
24.12.19
08:34
Доброе утро! Не так давно начал работу с УФ, в связи с чем появляется куча вопросов) Вот текст запроса динамического списка на форме обработки:





ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    АРМ_СделкиСПокупателямиСоставСделки.ДоговорКонтрагента КАК ДоговорКонтрагента,
    АРМ_СделкиСПокупателямиСоставСделки.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
    АРМ_СделкиСПокупателямиСоставСделки.ПроцентПредоплаты КАК ПроцентПредоплаты,
    АРМ_СделкиСПокупателямиСоставСделки.НомерСтроки КАК НомерСтроки,
    АРМ_СделкиСПокупателямиСоставСделки.ВидДоговора КАК ВидДоговора
ПОМЕСТИТЬ втДоговорыКонтрагентов
ИЗ
    Справочник.АРМ_СделкиСПокупателями.СоставСделки КАК АРМ_СделкиСПокупателямиСоставСделки
ГДЕ
    ВЫБОР
            КОГДА &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ТОГДА ЛОЖЬ
            ИНАЧЕ АРМ_СделкиСПокупателямиСоставСделки.Ссылка.Владелец = &Контрагент
        КОНЕЦ
    И ВЫБОР
            КОГДА &СделкаПокупателя = ЗНАЧЕНИЕ(Справочник.АРМ_СделкиСПокупателями.ПустаяСсылка)
                ТОГДА ИСТИНА
            ИНАЧЕ АРМ_СделкиСПокупателямиСоставСделки.Ссылка = &СделкаПокупателя
        КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВТДоговорыКонтрагентов.ДоговорКонтрагента КАК ДоговорКонтрагента,
    СУММА(ХозрасчетныйОборотыДтКт.СуммаОборот) КАК СуммаОплаты,
    СУММА(ВЫБОР
            КОГДА ХозрасчетныйОборотыДтКт.ВалютаКт ЕСТЬ NULL
                ТОГДА ХозрасчетныйОборотыДтКт.СуммаОборот
            ИНАЧЕ ХозрасчетныйОборотыДтКт.ВалютнаяСуммаОборотКт
        КОНЕЦ) КАК ВалютнаяСуммаОплаты
ПОМЕСТИТЬ втОплатыПоДоговору
ИЗ
    втДоговорыКонтрагентов КАК ВТДоговорыКонтрагентов
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(, &ДатаОстатков, , СчетДт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.КассаОрганизации), ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета), ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПродажиПоПлатежнымКартам), ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками)), , СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками)), &ВидыСубконто, Организация = &Организация) КАК ХозрасчетныйОборотыДтКт
        ПО ВТДоговорыКонтрагентов.ДоговорКонтрагента = ХозрасчетныйОборотыДтКт.СубконтоКт2

СГРУППИРОВАТЬ ПО
    ВТДоговорыКонтрагентов.ДоговорКонтрагента
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВТДоговорыКонтрагентов.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОтгрузки
ПОМЕСТИТЬ втОтгрузкиПоДоговору
ИЗ
    втДоговорыКонтрагентов КАК ВТДоговорыКонтрагентов
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(, &ДатаОстатков, , СчетДт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками)), &ВидыСубконто, СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Выручка)), , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт
        ПО ВТДоговорыКонтрагентов.ДоговорКонтрагента = ХозрасчетныйОборотыДтКт.СубконтоДт2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТДоговорыКонтрагентов.ДоговорКонтрагента.Ссылка КАК ДоговорКонтрагента,
    ВТДоговорыКонтрагентов.ВидДоговора КАК ВидДоговора,
    ВТДоговорыКонтрагентов.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
    ВТДоговорыКонтрагентов.ПроцентПредоплаты КАК ПроцентПредоплаты,
    СчетНаОплатуПокупателю.Ссылка КАК Счет,
    СчетНаОплатуПокупателю.СуммаДокумента КАК СуммаСчета,
    ЕСТЬNULL(ВТОтгрузкиПоДоговору.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
    ЕСТЬNULL(ВТОплатыПоДоговору.СуммаОплаты, 0) КАК СуммаОплаты,
    ЕСТЬNULL(ВТОтгрузкиПоДоговору.СуммаОтгрузки, 0) - ЕСТЬNULL(ВТОплатыПоДоговору.СуммаОплаты, 0) КАК Баланс,
    СчетНаОплатуПокупателю.СуммаДокумента - ЕСТЬNULL(ВТОплатыПоДоговору.ВалютнаяСуммаОплаты, 0) КАК ОстатокПоДоговору
ИЗ
    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втДоговорыКонтрагентов КАК ВТДоговорыКонтрагентов
            ЛЕВОЕ СОЕДИНЕНИЕ втОплатыПоДоговору КАК ВТОплатыПоДоговору
            ПО ВТДоговорыКонтрагентов.ДоговорКонтрагента = ВТОплатыПоДоговору.ДоговорКонтрагента
            ЛЕВОЕ СОЕДИНЕНИЕ втОтгрузкиПоДоговору КАК ВТОтгрузкиПоДоговору
            ПО ВТДоговорыКонтрагентов.ДоговорКонтрагента = ВТОтгрузкиПоДоговору.ДоговорКонтрагента
        ПО СчетНаОплатуПокупателю.ДоговорКонтрагента = ВТДоговорыКонтрагентов.ДоговорКонтрагента



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

2- В качестве основной таблицы я могу выбрать только Документ.СчетНаОплатуПокупателю, а хотелось бы Справочник.ДоговорКонтрагента, возможно ли это сделать?
1 Droning1C
 
24.12.19
08:41
я правильно понимаю, что в качестве основной таблицы система дает выбрать только счет на оплату, потому что остальные таблицы в запросе временные?
2 Droning1C
 
24.12.19
08:54
Не проснулся. Разобрался.

Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втДоговорыКонтрагентов КАК ВТДоговорыКонтрагентов

Потому и не получаю договора без счетов.