8.х Как в отчете выводить пустые колонки?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Korolev, 28 июн 2010.

  1. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Необходимо сформировать отчет, который будет выводить данные по выручке.
    В отчете будут несколько колонок из одного перечисления.
    Это перечисление относится характеризует товар.

    В общем, в отчете будет выводиться товар следующим образом (картинка прикреплена):
    И надо чтобы всегда выводились пустые колонки для "бар", "прочее", "не включается".

    Сейчас это получилось сделать тупым забитиев нуллов
    Код:
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ВидыТоваровДляЗП.Ссылка,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    Перечисление.ВидыТоваровДляЗП КАК ВидыТоваровДляЗП	
    
    
    но в итоге появляется из-за этого строка (выделено красным на скрине), быть ее не должно.

    Если убрать этот код, то колонки не выводятся.

    Вопрос: как сделать все это нормально? (вариант с макетом не предлагать :unsure: )

    Вложения:

    • otchet.PNG
      otchet.PNG
      Размер файла:
      13,1 КБ
      Просмотров:
      53
  2. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Хотя, по-видимому, это можно реализовать только через макет =\
    Может кто знает каким образом?
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Схему настройки СКД покажите.
    Пока вообще ничего не понял
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    А почему через макет не устраивает?
  5. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Вот.

    Изначально думал можно как-то по-другому настроить (банальное введение галочки "отображать пустые столбцы" в настройках, и все бы было хорошо :unsure: ).

    Затем начал макет делать (точнее пытаться в нем разобраться), но к сожалению, первый раз работать начал с СКД и не особо пойму как там макет настроить можно.

    Вложения:

    • ot4et3.xml
      Размер файла:
      6,4 КБ
      Просмотров:
      23
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Макет в СКД настраивается программно, больше никак, насколько я помню.
  7. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Если Вы говорите о закладке "Макеты" в СКД, то да.
    Вот вся загвоздка в том, что как через макет выводить колонки.
  8. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    СКД автоматом колонки формирует, на основании запроса.
  9. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Дык это понятно, я же нулами так и формировал пустые значения. Но если так сформировать, то возникает проблема в строке :unsure:
    P.s. макет тоже делает колонки.
  10. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Что-то я не понял - про какие пустые колонки идет речь?
  11. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Вот смотрите.
    Посмотреть вложение 4684
    На скрине есть колонки "Бар", "Прочее", "Не включается".
    Они пустые. Вывелись они, потому что в запросе добавил
    Код:
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ВидыТоваровДляЗП.Ссылка,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    Перечисление.ВидыТоваровДляЗП КАК ВидыТоваровДляЗП    
    
    Но из-за этого (а именно из-за первого null'а) появилась строка, которая выделена на скрине красным прямоугольником.

    Если убрать это условие и заново сформировать точно такой же отчет, то колонки "Бар", "Прочее", "Не включается" не отобразятся. Вот в этом вся и загвоздка - либо они не отображаются, либо отображаются, но получается пустая (выделенная красным прямоугольником) строка.

    Вложения:

    • otchet.PNG
      otchet.PNG
      Размер файла:
      13,1 КБ
      Просмотров:
      17
  12. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Весь запрос покажите
  13. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    вот
    Код:
    ВЫБРАТЬ
    ЕСТЬNULL(КлассификацияТоваровДляЗП.ВидТовараДляЗП, "Кухня") КАК ВидТовара,
    ЗаказТовары.Автор КАК Автор,
    СУММА(ЗаказТовары.Количество) КАК Количество,
    СУММА(ЗаказТовары.Цена) КАК Цена,
    ЗаказТовары.Товар КАК Товар,
    ЗаказТовары.Товар.Родитель
    {ВЫБРАТЬ
    ВидТовара.*,
    Автор.*,
    Количество,
    Цена,
    Товар}
    ИЗ
    Документ.Заказ.Товары КАК ЗаказТовары
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.КлассификацияТоваровДляЗП КАК КлассификацияТоваровДляЗП
    ПО ЗаказТовары.Товар = КлассификацияТоваровДляЗП.Товар
    ГДЕ
    ЗаказТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата1,ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата2,ДЕНЬ)
    
    СГРУППИРОВАТЬ ПО
    ЗаказТовары.Товар,
    ЗаказТовары.Автор,
    ЕСТЬNULL(КлассификацияТоваровДляЗП.ВидТовараДляЗП, "Кухня"),
    ЗаказТовары.Товар.Родитель
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ВидыТоваровДляЗП.Ссылка,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    Перечисление.ВидыТоваровДляЗП КАК ВидыТоваровДляЗП    
    
  14. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Попробуй так:
    проверить не могу таких метаданных нет :)
    Код:
    ВЫБРАТЬ ПЕРВЫЕ 1
    ЗаказТовары.Автор КАК Ссылка
    ПОМЕСТИТЬ АвторДляОтчета
    ИЗ
    Документ.Заказ.Товары КАК ЗаказТовары
    ГДЕ
    ЗаказТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&;Дата1,ДЕНЬ) И КОНЕЦПЕРИОДА(&;Дата2,ДЕНЬ);
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ЕСТЬNULL(ЗаказТовары.ВидТовараДляЗП.Порядок, "Кухня") КАК ВидТовара,
    ЗаказТовары.Автор КАК Автор,
    СУММА(ЗаказТовары.Количество) КАК Количество,
    СУММА(ЗаказТовары.Цена) КАК Цена,
    ЗаказТовары.Товар КАК Товар,
    ЗаказТовары.Товар.Родитель,
    ИЗ
    Документ.Заказ.Товары КАК ЗаказТовары
    ГДЕ
    ЗаказТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&;Дата1,ДЕНЬ) И КОНЕЦПЕРИОДА(&;Дата2,ДЕНЬ)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ВидыТоваровДляЗП.Ссылка,
    АвторДляОтчета.Ссылка,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    Перечисление.ВидыТоваровДляЗП КАК ВидыТоваровДляЗП
    ПОЛНОЕ СОЕДИНЕНИЕ АвторДляОтчета КАК АвторДляОтчета
    ПО (1 = 1)
    
    
  15. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Благодарю, помогло! :unsure:
    Немного подкорректировав, получил такой запрос:
    Код:
    ВЫБРАТЬ ПЕРВЫЕ 1
    ЗаказТовары.Автор КАК Ссылка
    ПОМЕСТИТЬ АвторДляОтчета
    ИЗ
    Документ.Заказ.Товары КАК ЗаказТовары
    ГДЕ
    ЗаказТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата1,ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата2,ДЕНЬ);
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ЕСТЬNULL(КлассификацияТоваровДляЗП.ВидТовараДляЗП, "Кухня") КАК ВидТовара,
    ЗаказТовары.Автор КАК Автор,
    ЗаказТовары.Количество КАК Количество,
    ЗаказТовары.Цена КАК Цена,
    ЗаказТовары.Товар КАК Товар,
    ЗаказТовары.Товар.Родитель
    ИЗ
    Документ.Заказ.Товары КАК ЗаказТовары
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.КлассификацияТоваровДляЗП КАК КлассификацияТоваровДляЗП
    ПО ЗаказТовары.Товар = КлассификацияТоваровДляЗП.Товар
    ГДЕ
    ЗаказТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата1,ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата2,ДЕНЬ)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ВидыТоваровДляЗП.Ссылка,
    АвторДляОтчета.Ссылка,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    Перечисление.ВидыТоваровДляЗП КАК ВидыТоваровДляЗП
    ПОЛНОЕ СОЕДИНЕНИЕ АвторДляОтчета КАК АвторДляОтчета
    ПО (1 = 1)
    
  16. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Только один момент =\ Для автора запрос работает нормально, а вот для Товара нет. (У меня стоит переключатель, который предлагает выбирать по кому делать отчет "Официант"(Автор) или "Блюда"(Товар).
  17. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Все то же самое, только в первом подзапросе надо выбирать не только автора, но и товар и его родителя. соотвественно два поледних NULL меняешь на ссылку на товар и родителя

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