8.х Расшифровка по полю ПустаяСсылка

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

  1. TopicStarter Overlay
    vasiliy_oren
    Offline

    vasiliy_oren

    Регистрация:
    18 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток дамы и господа :)
    Прошу помощи в формировании отчета по СКД.
    Вкратце суть такова: По запросу я получаю данные из бух проводок. Получаю следующие реквизиты: 1) Организация, 2) Субконто Дт1, 3) Сумма, 4) Регистратор.

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

    Все остальные реквизиты (реквизитов больше, описал основные для отчета) - в расшифровку. Субконто может быть как заполнено (ссылка на справочник), так и не быть заполненным.
    Так вот, если Субконто заполнено, расшифровка отрабатывает нормально (например расшифровка по регистратору выводит документы, порадившие бух проводки), но если значение Субконто не заполнено, расшифровка ничего не возвращает.

    Что делал:
    1) Добавил условия ЕстьNULL
    2) Добавил условие
    ВЫБОР КОГДА ВТ_ВсеДанные.Субконто<>ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) ТОГДА
    ВТ_ВсеДанные.Субконто
    ИНАЧЕ
    NULL
    КОНЕЦ КАК Субконто
    3) То же самое, что и в 2, но не NULL, а Справочник.Номенклатура.ПустаяСсылка
    4) То же самое, что и в 2, но не NULL, а ""

    Ни один из вариантов не помог :(

    Прошу подсказать (если RTFM, то с удовольствием почитаю если укажите где) как победить данную проблему.

    Заранее спасибо :)
  2. 1с-ник
    Offline

    1с-ник Профессионал в 1С

    Регистрация:
    5 окт 2014
    Сообщения:
    912
    Симпатии:
    152
    Баллы:
    104
    Прикрепите проблемные скриншоты, не совсем понятно.
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.592
    Симпатии:
    876
    Баллы:
    204
    Начнем с того, по каким счетам происходит выборка данных и по какой причине субконто1 получается не заполнено?
  4. TopicStarter Overlay
    vasiliy_oren
    Offline

    vasiliy_oren

    Регистрация:
    18 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Доброе утро.
    Спасибо что откликнулись.

    Выкладываю результат запроса (файл "Результат запроса"). По нему видны все данные (Организация, субконто, сумма начисления, списания, документ-регистратор). Имеется часть записей, у которых стоят значения "Не указана организация" и "Не указано субконто". Такие данные установил условием

    ВЫБОР КОГДА ВТ_ВсеДанные.Организация<>ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) ТОГДА
    ВТ_ВсеДанные.Организация
    ИНАЧЕ
    "Не указана организация"
    КОНЕЦ КАК Организация

    пробовал вместо строки указывать и NULL и пустую ссылку. Так же вместо прямого условия пробовал ЕстьNULL.

    Так же прикладываю настройку СКД (файл "Настройки СКД").
    В результате отчет принимает вид (файл "Отчет")

    Если я формирую расшифровку по реквизиту "ДокументОперации", по строке, где субконто заполнено, расшифровка отрабатывает корректно (файл "заполнено субконто")
    Если формирую по строке "Не указано субконто", не важно, с указанием организации или нет, расшифровка пустая (файл "Расшифровка по пустому значению организации и субконто")
    --- Объединение сообщений, 14 дек 2016 ---
    Дополню:
    Реквизит "Организация" - Справочник.Организации
    Реквизит "Субконто" - Справочник.Договоры

    Вложения:

    Последнее редактирование: 14 дек 2016
  5. 1с-ник
    Offline

    1с-ник Профессионал в 1С

    Регистрация:
    5 окт 2014
    Сообщения:
    912
    Симпатии:
    152
    Баллы:
    104
    Твоя расшифровка тупо открывает новый отчет с доп. отбором. Данных в приведенном примере нет, потому что у тебя конфликт параметров и отбора по организации:
    PS: почему структура настроек в виде таблицы, если колонок нет?
  6. TopicStarter Overlay
    vasiliy_oren
    Offline

    vasiliy_oren

    Регистрация:
    18 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Делал и списком, и таблицей (это я уже варианты перебирал). В списке ситуация такая же.
    Все верно, не менял настройки, поэтому открывает новый отчет с отбором, так как ничего не менял в структуре и коде, отдав все на откуп 1С (кроме заполнения параметров при компоновке результата). Хотел обойтись малой кровью, без дополнительного кодинга.
    Могу я как то реализовать без кодинга, подскажите пожалуйста :)
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.592
    Симпатии:
    876
    Баллы:
    204
    Запрос-то сам как выглядит?
  8. TopicStarter Overlay
    vasiliy_oren
    Offline

    vasiliy_oren

    Регистрация:
    18 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Код:
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ХозрасчетныйОборотыДтКт.СубконтоДт3 КАК Основание,
        ХозрасчетныйОборотыДтКт.Регистратор КАК Документ,
        ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорСпр,
        ХозрасчетныйОборотыДтКт.СуммаОборот КАК Начислено
    ПОМЕСТИТЬ ВТ_ДанныеПоПроводкамНачисление
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
                {(&НачалоПериода)},
                {(&КонецПериода)},
                Регистратор,
                СчетДт = &Сч76,
                ,
                СчетКт = &Сч91,
                ,
                СубконтоДт3 ССЫЛКА Документ.ун_Начисление
                    И ВЫБОР
                        КОГДА &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                            ТОГДА Организация = &Организация
                        ИНАЧЕ ИСТИНА
                    КОНЕЦ) КАК ХозрасчетныйОборотыДтКт
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВЫБОР
            КОГДА ВТ_ДанныеПоПроводкамНачисление.Основание.ДокументОснование ССЫЛКА Документ.ун_Суд
                ТОГДА ВЫРАЗИТЬ(ВТ_ДанныеПоПроводкамНачисление.Основание.ДокументОснование КАК Документ.ун_Суд).ун_Договор
            КОГДА ВТ_ДанныеПоПроводкамНачисление.Основание.ДокументОснование ССЫЛКА Документ.ун_ДелоПоСуду
                ТОГДА ВЫРАЗИТЬ(ВТ_ДанныеПоПроводкамНачисление.Основание.ДокументОснование КАК Документ.ун_ДелоПоСуду).ун_Договор
            ИНАЧЕ ун_Дог.Ссылка
        КОНЕЦ КАК Договор,
        ВТ_ДанныеПоПроводкамНачисление.Документ КАК Документ,
        ВТ_ДанныеПоПроводкамНачисление.Начислено КАК Начислено
    ПОМЕСТИТЬ ВТ_ДанныеСДоговорамиНачисление
    ИЗ
        ВТ_ДанныеПоПроводкамНачисление КАК ВТ_ДанныеПоПроводкамНачисление
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.ун_Дог КАК ун_Дог
                ПО ДоговорыКонтрагентов.ун_Договор = ун_Дог.Ссылка
            ПО ВТ_ДанныеПоПроводкамНачисление.ДоговорСпр = ДоговорыКонтрагентов.Ссылка
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_ДанныеСДоговорамиНачисление.Договор.Организация КАК Организация,
        ВТ_ДанныеСДоговорамиНачисление.Договор,
        ВТ_ДанныеСДоговорамиНачисление.Договор.ТипДоговора.Ссылка КАК ТипДоговора,
        ВТ_Правила.Субконто КАК Субконто,
        ВТ_ДанныеСДоговорамиНачисление.Договор.Контрагент КАК Контрагент,
        ВТ_ДанныеСДоговорамиНачисление.Документ,
        ВТ_ДанныеСДоговорамиНачисление.Начислено
    ПОМЕСТИТЬ ВТ_Начисление
    ИЗ
        ВТ_ДанныеСДоговорамиНачисление КАК ВТ_ДанныеСДоговорамиНачисление
            ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Правила КАК ВТ_Правила
            ПО ВТ_ДанныеСДоговорамиНачисление.Договор.ТипДоговора = ВТ_Правила.ТипДоговора
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВЫБОР
            КОГДА ХозрасчетныйОборотыДтКт.СубконтоКт3 ССЫЛКА Документ.ун_Начисление
                ТОГДА ХозрасчетныйОборотыДтКт.СубконтоКт3.ДокументОснование
            ИНАЧЕ ХозрасчетныйОборотыДтКт.СубконтоКт3
        КОНЕЦ КАК Основание,
        ХозрасчетныйОборотыДтКт.СубконтоКт2 КАК ДоговорСпр,
        ХозрасчетныйОборотыДтКт.НомерСтроки,
        ХозрасчетныйОборотыДтКт.Регистратор КАК Документ,
        ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма
    ПОМЕСТИТЬ ВТ_ДанныеПоПроводкамКасса
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
                {(&НачалоПериода)},
                {(&КонецПериода)},
                Запись,
                СчетДт В ИЕРАРХИИ (&Сч50),
                ,
                СчетКт = &Сч76,
                ,
                СубконтоКт3 ССЫЛКА Документ.ун_Начисление
                    И ВЫБОР
                        КОГДА &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                            ТОГДА Организация = &Организация
                        ИНАЧЕ ИСТИНА
                    КОНЕЦ) КАК ХозрасчетныйОборотыДтКт
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_ДанныеПоПроводкамКасса.Основание,
        ВЫБОР
            КОГДА ВТ_ДанныеПоПроводкамКасса.Основание ССЫЛКА Документ.ун_Суд
                ТОГДА ВЫРАЗИТЬ(ВТ_ДанныеПоПроводкамКасса.Основание КАК Документ.ун_Суд).ун_Договор
            КОГДА ВТ_ДанныеПоПроводкамКасса.Основание ССЫЛКА Документ.ун_ДелоПоСуду
                ТОГДА ВЫРАЗИТЬ(ВТ_ДанныеПоПроводкамКасса.Основание КАК Документ.ун_ДелоПоСуду).ун_Договор
        КОНЕЦ КАК Договор,
        ВЫБОР
            КОГДА ВТ_ДанныеПоПроводкамКасса.Основание ССЫЛКА Документ.ДокументРасчетовСКонтрагентом
                ТОГДА ВЫРАЗИТЬ(ВТ_ДанныеПоПроводкамКасса.Основание КАК Документ.ДокументРасчетовСКонтрагентом).ДоговорКонтрагента
            КОГДА ВТ_ДанныеПоПроводкамКасса.ДоговорСпр <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
                ТОГДА ВТ_ДанныеПоПроводкамКасса.ДоговорСпр
        КОНЕЦ КАК ДоговорСпр,
        ун_Начисления.ТипВзыскания КАК ТипВзыскания,
        ВТ_ДанныеПоПроводкамКасса.Документ,
        ВТ_ДанныеПоПроводкамКасса.Сумма
    ПОМЕСТИТЬ ВТ_ПроводкиСДоговорамиКасса
    ИЗ
        ВТ_ДанныеПоПроводкамКасса КАК ВТ_ДанныеПоПроводкамКасса
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ун_Начисления КАК ун_Начисления
            ПО ВТ_ДанныеПоПроводкамКасса.Документ = ун_Начисления.Регистратор
                И ВТ_ДанныеПоПроводкамКасса.НомерСтроки = ун_Начисления.НомерСтроки
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВЫБОР
            КОГДА ВТ_ПроводкиСДоговорамиКасса.Договор <> ЗНАЧЕНИЕ(Документ.ун_Дог.ПустаяСсылка)
                ТОГДА ВТ_ПроводкиСДоговорамиКасса.Договор
            ИНАЧЕ ун_Дог.Ссылка
        КОНЕЦ КАК Договор,
        ВТ_ПроводкиСДоговорамиКасса.Документ,
        ВТ_ПроводкиСДоговорамиКасса.Сумма
    ПОМЕСТИТЬ ВТ_ДанныеСДоговорамиКасса
    ИЗ
        ВТ_ПроводкиСДоговорамиКасса КАК ВТ_ПроводкиСДоговорамиКасса
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.ун_Дог КАК ун_Дог
                ПО ДоговорыКонтрагентов.ун_Договор = ун_Дог.Ссылка
            ПО ВТ_ПроводкиСДоговорамиКасса.ДоговорСпр = ДоговорыКонтрагентов.Ссылка
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_ДанныеСДоговорамиКасса.Договор.Организация КАК Организация,
        ВТ_ДанныеСДоговорамиКасса.Договор,
        ВТ_ДанныеСДоговорамиКасса.Договор.ТипДоговора.Ссылка КАК ТипДоговора,
        ВТ_Правила.Субконто КАК Субконто,
        ВТ_ДанныеСДоговорамиКасса.Договор.Контрагент КАК Контрагент,
        ВТ_ДанныеСДоговорамиКасса.Документ,
        ВТ_ДанныеСДоговорамиКасса.Сумма
    ПОМЕСТИТЬ ВТ_Касса
    ИЗ
        ВТ_ДанныеСДоговорамиКасса КАК ВТ_ДанныеСДоговорамиКасса
            ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Правила КАК ВТ_Правила
            ПО ВТ_ДанныеСДоговорамиКасса.Договор.ТипДоговора = ВТ_Правила.ТипДоговора
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ХозрасчетныйОборотыДтКт.СубконтоКт2 КАК ДоговорСпр,
        ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК ДокументОснование,
        ХозрасчетныйОборотыДтКт.НомерСтроки,
        ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор,
        ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборот
    ПОМЕСТИТЬ ВТ_ПроводкиРС
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
                {(&НачалоПериода)},
                {(&КонецПериода)},
                Запись,
                СчетДт = &Сч51,
                ,
                СчетКт = &Сч76,
                ,
                СубконтоКт3 ССЫЛКА Документ.ун_Начисление
                    И ВЫБОР
                        КОГДА &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                            ТОГДА Организация = &Организация
                        ИНАЧЕ ИСТИНА
                    КОНЕЦ) КАК ХозрасчетныйОборотыДтКт
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВЫБОР
            КОГДА ВТ_ПроводкиРС.ДокументОснование.ДокументОснование ССЫЛКА Документ.ун_Суд
                ТОГДА ВЫРАЗИТЬ(ВТ_ПроводкиРС.ДокументОснование.ДокументОснование КАК Документ.ун_Суд).ун_Договор
            КОГДА ВТ_ПроводкиРС.ДокументОснование.ДокументОснование ССЫЛКА Документ.ун_ДелоПоСуду
                ТОГДА ВЫРАЗИТЬ(ВТ_ПроводкиРС.ДокументОснование.ДокументОснование КАК Документ.ун_ДелоПоСуду).ун_Договор
            ИНАЧЕ ун_Дог.Ссылка
        КОНЕЦ КАК Договор,
        ун_Начисления.ТипВзыскания КАК ТипВзыскания,
        ВТ_ПроводкиРС.Регистратор КАК Документ,
        ВТ_ПроводкиРС.СуммаОборот КАК Сумма
    ПОМЕСТИТЬ ВТ_ПроводкиСДоговорамиРС
    ИЗ
        ВТ_ПроводкиРС КАК ВТ_ПроводкиРС
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.ун_Дог КАК ун_Дог
                ПО ДоговорыКонтрагентов.ун_Договор = ун_Дог.Ссылка
            ПО ВТ_ПроводкиРС.ДоговорСпр = ДоговорыКонтрагентов.Ссылка
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ун_Начисления КАК ун_Начисления
            ПО ВТ_ПроводкиРС.Регистратор = ун_Начисления.Регистратор
                И ВТ_ПроводкиРС.НомерСтроки = ун_Начисления.НомерСтроки
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_ПроводкиСДоговорамиРС.Договор.Организация КАК Организация,
        ВТ_ПроводкиСДоговорамиРС.Договор,
        ВТ_ПроводкиСДоговорамиРС.Договор.ТипДоговора.Ссылка КАК ТипДоговора,
        ВТ_Правила.Субконто КАК Субконто,
        ВТ_ПроводкиСДоговорамиРС.Договор.Контрагент КАК Контрагент,
        ВТ_ПроводкиСДоговорамиРС.Документ,
        ВТ_ПроводкиСДоговорамиРС.Сумма
    ПОМЕСТИТЬ ВТ_РС
    ИЗ
        ВТ_ПроводкиСДоговорамиРС КАК ВТ_ПроводкиСДоговорамиРС
            ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Правила КАК ВТ_Правила
            ПО ВТ_ПроводкиСДоговорамиРС.Договор.ТипДоговора = ВТ_Правила.ТипДоговора
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_Начисление.Организация,
        ВТ_Начисление.Договор,
        ВТ_Начисление.ТипДоговора,
        ВТ_Начисление.Субконто,
        ВТ_Начисление.Контрагент,
        ВТ_Начисление.Документ КАК ДокументОперации,
        ВТ_Начисление.Начислено,
        0 КАК Оплачено
    ПОМЕСТИТЬ ВТ_ВсеДанные
    ИЗ
        ВТ_Начисление КАК ВТ_Начисление
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ВТ_Касса.Организация,
        ВТ_Касса.Договор,
        ВТ_Касса.ТипДоговора,
        ВТ_Касса.Субконто,
        ВТ_Касса.Контрагент,
        ВТ_Касса.Документ,
        0,
        ВТ_Касса.Сумма
    ИЗ
        ВТ_Касса КАК ВТ_Касса
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ВТ_РС.Организация,
        ВТ_РС.Договор,
        ВТ_РС.ТипДоговора,
        ВТ_РС.Субконто,
        ВТ_РС.Контрагент,
        ВТ_РС.Документ,
        0,
        ВТ_РС.Сумма
    ИЗ
        ВТ_РС КАК ВТ_РС
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВЫБОР КОГДА ВТ_ВсеДанные.Организация<>ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) ТОГДА
            ВТ_ВсеДанные.Организация 
        ИНАЧЕ
            "Не указан филиал"   
        КОНЕЦ КАК Организация,
        ВЫБОР КОГДА ВТ_ВсеДанные.Договор<>ЗНАЧЕНИЕ(Документ.ун_Дог.ПустаяСсылка) ТОГДА
            ВТ_ВсеДанные.Договор
        ИНАЧЕ
            "Не указан договор"
        КОНЕЦ КАК Договор,
        ВЫБОР КОГДА ВТ_ВсеДанные.ТипДоговора<>ЗНАЧЕНИЕ(Справочник.ун_Продукты.ПустаяСсылка) ТОГДА
            ВТ_ВсеДанные.ТипДоговора
        ИНАЧЕ
            "Не указан продукт"
        КОНЕЦ КАК ТипДоговора,
        ВЫБОР КОГДА ВТ_ВсеДанные.Субконто<>ЗНАЧЕНИЕ(Справочник.ун_Субконто.ПустаяСсылка) ТОГДА
            ВТ_ВсеДанные.Субконто
        ИНАЧЕ
            "Не указано субконто"
        КОНЕЦ КАК Субконто,
        ВТ_ВсеДанные.Контрагент,
        ВТ_ВсеДанные.ДокументОперации,
        ВТ_ВсеДанные.Начислено,
        ВТ_ВсеДанные.Оплачено
    ИЗ
        ВТ_ВсеДанные КАК ВТ_ВсеДанные
    --- Объединение сообщений, 14 дек 2016 ---
    Конфа полностью переписанная. Можно посмотреть только саму структуру данных.
    --- Объединение сообщений, 14 дек 2016 ---
    Прошу прощения у модераторов, не обрамил запрос тегами :)
    Последнее редактирование модератором: 14 дек 2016
  9. TopicStarter Overlay
    vasiliy_oren
    Offline

    vasiliy_oren

    Регистрация:
    18 июн 2016
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Изменил запрос таким образом, чтобы всегда выводилась организация, расшифровка работает. Но все таки хочу разобраться, как "Поженить" параметры и отборы без кодинга :(
Похожие темы
  1. Ole-ga
    Ответов:
    1
    Просмотров:
    707
Загрузка...

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