8.х Необязательная связь

Тема в разделе "Система компоновки данных (СКД)", создана пользователем Speaker1982, 15 апр 2015.

  1. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    НУ все 6 описывать.и различные варианты учитывать.
    А почему на неопределено проверяете? Вроде же на NULL надо Вы же при соединени таблиц пишите ЕстьNULL(,)
  2. TopicStarter Overlay
    Speaker1982
    Offline

    Speaker1982 Опытный в 1С

    Регистрация:
    12 май 2011
    Сообщения:
    223
    Симпатии:
    5
    Баллы:
    29
    Засада, пытался описать 16 условий - выдает ошибку -

    Вложения:

  3. TopicStarter Overlay
    Speaker1982
    Offline

    Speaker1982 Опытный в 1С

    Регистрация:
    12 май 2011
    Сообщения:
    223
    Симпатии:
    5
    Баллы:
    29
    Так все по нулям выдает:
    Код:
    ВЫБРАТЬ
        ПодразделенияУПРСписокПодразделений.Ссылка КАК ПодразделениеУПР,
        ПодразделенияУПРСписокПодразделений.Подразделение КАК ПодразделениеБУХ,
        ПодразделенияУПРСписокСчетов.Статья КАК СтатьяУПР,
        ПодразделенияУПРСписокСчетов.СчетДТ,
        ПодразделенияУПРСписокСчетов.СчетКТ,
        ПодразделенияУПРСписокСчетов.СубконтоДт1,
        ПодразделенияУПРСписокСчетов.СубконтоДт2,
        ПодразделенияУПРСписокСчетов.СубконтоКт1,
        ПодразделенияУПРСписокСчетов.СубконтоКт2,
        ВЫБОР
            КОГДА ПодразделенияУПРСписокСчетов.СубконтоДт1 <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                    И ПодразделенияУПРСписокСчетов.СубконтоДт1 <> НЕОПРЕДЕЛЕНО
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ КАК ПроверкаДт1,
        ВЫБОР
            КОГДА ПодразделенияУПРСписокСчетов.СубконтоДт2 <> NULL
                    ИЛИ ПодразделенияУПРСписокСчетов.СубконтоДт2 <> НЕОПРЕДЕЛЕНО
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ КАК ПроверкаДт2,
        ВЫБОР
            КОГДА ПодразделенияУПРСписокСчетов.СубконтоКт1 <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
                    И ПодразделенияУПРСписокСчетов.СубконтоКт1 <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                    И ПодразделенияУПРСписокСчетов.СубконтоКт1 <> ЗНАЧЕНИЕ(Справочник.НоменклатурныеГруппы.ПустаяСсылка)
                    И ПодразделенияУПРСписокСчетов.СубконтоКт1 <> НЕОПРЕДЕЛЕНО
                    И ПодразделенияУПРСписокСчетов.СубконтоКт1 <> ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.ПустаяСсылка)
                    И ПодразделенияУПРСписокСчетов.СубконтоКт1 <> ЗНАЧЕНИЕ(Перечисление.ВидыНачисленийОплатыТрудаПоСт255НК.ПустаяСсылка)
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ КАК ПроверкаКт1,
        ВЫБОР
            КОГДА ПодразделенияУПРСписокСчетов.СубконтоКт2 <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
                    И ПодразделенияУПРСписокСчетов.СубконтоКт2 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
                    И ПодразделенияУПРСписокСчетов.СубконтоКт2 <> НЕОПРЕДЕЛЕНО
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ КАК ПроверкаКт2
    ПОМЕСТИТЬ Фильтр
    ИЗ
        Справочник.ПодразделенияУПР.СписокПодразделений КАК ПодразделенияУПРСписокПодразделений
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодразделенияУПР.СписокСчетов КАК ПодразделенияУПРСписокСчетов
            ПО ПодразделенияУПРСписокПодразделений.Ссылка = ПодразделенияУПРСписокСчетов.Ссылка
    ГДЕ
        ПодразделенияУПРСписокПодразделений.Ссылка В ИЕРАРХИИ(&ПодразделениеУПР)
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        Фильтр.ПодразделениеУПР,
        Фильтр.СтатьяУПР,
        ХозрасчетныйОборотыДтКт.СуммаОборот
    ИЗ
        Фильтр КАК Фильтр
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , , , , , ) КАК ХозрасчетныйОборотыДтКт
            ПО Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                И Фильтр.СчетКТ = ХозрасчетныйОборотыДтКт.СчетКт
                И Фильтр.ПодразделениеБУХ = ХозрасчетныйОборотыДтКт.ПодразделениеДт
                И (ВЫБОР
                        КОГДА НЕ Фильтр.ПроверкаДт1
                                И НЕ Фильтр.ПроверкаДт2
                                И НЕ Фильтр.ПроверкаКт1
                                И НЕ Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА НЕ Фильтр.ПроверкаДт1
                                И НЕ Фильтр.ПроверкаДт2
                                И НЕ Фильтр.ПроверкаКт1
                                И Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаКт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА НЕ Фильтр.ПроверкаДт1
                                И НЕ Фильтр.ПроверкаДт2
                                И Фильтр.ПроверкаКт1
                                И НЕ Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаКт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА НЕ Фильтр.ПроверкаДт1
                                И НЕ Фильтр.ПроверкаДт2
                                И Фильтр.ПроверкаКт1
                                И Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаКт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
                                    И Фильтр.ПроверкаКт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА НЕ Фильтр.ПроверкаДт1
                                И Фильтр.ПроверкаДт2
                                И НЕ Фильтр.ПроверкаКт1
                                И НЕ Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт2 = ХозрасчетныйОборотыДтКт.СубконтоДт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА НЕ Фильтр.ПроверкаДт1
                                И Фильтр.ПроверкаДт2
                                И НЕ Фильтр.ПроверкаКт1
                                И Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт2 = ХозрасчетныйОборотыДтКт.СубконтоДт2
                                    И Фильтр.ПроверкаКт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА НЕ Фильтр.ПроверкаДт1
                                И Фильтр.ПроверкаДт2
                                И Фильтр.ПроверкаКт1
                                И НЕ Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт2 = ХозрасчетныйОборотыДтКт.СубконтоДт2
                                    И Фильтр.ПроверкаКт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА НЕ Фильтр.ПроверкаДт1
                                И Фильтр.ПроверкаДт2
                                И Фильтр.ПроверкаКт1
                                И Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт2 = ХозрасчетныйОборотыДтКт.СубконтоДт2
                                    И Фильтр.ПроверкаКт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
                                    И Фильтр.ПроверкаКт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА Фильтр.ПроверкаДт1
                                И НЕ Фильтр.ПроверкаДт2
                                И НЕ Фильтр.ПроверкаКт1
                                И НЕ Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА Фильтр.ПроверкаДт1
                                И НЕ Фильтр.ПроверкаДт2
                                И НЕ Фильтр.ПроверкаКт1
                                И Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
                                    И Фильтр.ПроверкаКт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА Фильтр.ПроверкаДт1
                                И НЕ Фильтр.ПроверкаДт2
                                И Фильтр.ПроверкаКт1
                                И НЕ Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
                                    И Фильтр.ПроверкаКт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА Фильтр.ПроверкаДт1
                                И НЕ Фильтр.ПроверкаДт2
                                И Фильтр.ПроверкаКт1
                                И Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
                                    И Фильтр.ПроверкаКт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
                                    И Фильтр.ПроверкаКт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА Фильтр.ПроверкаДт1
                                И Фильтр.ПроверкаДт2
                                И НЕ Фильтр.ПроверкаКт1
                                И НЕ Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
                                    И Фильтр.ПроверкаДт2 = ХозрасчетныйОборотыДтКт.СубконтоДт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА Фильтр.ПроверкаДт1
                                И Фильтр.ПроверкаДт2
                                И НЕ Фильтр.ПроверкаКт1
                                И Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
                                    И Фильтр.ПроверкаДт2 = ХозрасчетныйОборотыДтКт.СубконтоДт2
                                    И Фильтр.ПроверкаКт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА Фильтр.ПроверкаДт1
                                И Фильтр.ПроверкаДт2
                                И Фильтр.ПроверкаКт1
                                И НЕ Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
                                    И Фильтр.ПроверкаДт2 = ХозрасчетныйОборотыДтКт.СубконтоДт2
                                    И Фильтр.ПроверкаКт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
                        ИНАЧЕ Фильтр.СчетДТ = ХозрасчетныйОборотыДтКт.СчетДт
                    КОНЕЦ
                    И ВЫБОР
                        КОГДА Фильтр.ПроверкаДт1
                                И Фильтр.ПроверкаДт2
                                И Фильтр.ПроверкаКт1
                                И Фильтр.ПроверкаКт2
                            ТОГДА Фильтр.ПроверкаДт1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
                                    И Фильтр.ПроверкаДт2 = ХозрасчетныйОборотыДтКт.СубконтоДт2
                                    И Фильтр.ПроверкаКт1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
                                    И Фильтр.ПроверкаКт2 = ХозрасчетныйОборотыДтКт.СубконтоКт2
                    КОНЕЦ)
  4. TopicStarter Overlay
    Speaker1982
    Offline

    Speaker1982 Опытный в 1С

    Регистрация:
    12 май 2011
    Сообщения:
    223
    Симпатии:
    5
    Баллы:
    29
    Я решил проблемку вот так, подскажите плиз, лучше ее оптимизировать никак?

    Вложения:

Поделиться этой страницей