8.х СКД. Вывод "пустых" группировок

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

  1. TopicStarter Overlay
    keanser
    Offline

    keanser Опытный в 1С

    Регистрация:
    29 мар 2010
    Сообщения:
    72
    Симпатии:
    0
    Баллы:
    26
    Несколько раз сталкивался с этой проблемой. Не заморачивался никогда и когда сталкивался с этой проблемой - делал отчеты вручную.
    Суть проблемы рассмотрю на примере.
    В отчете по группировкам "Склад" получаются "Товары". Там где нету товаров - группировка "склад" не отображается. Но он (склад) должен быть хотя бы обычной строкой.
    Если писать отчет вручную - то там как бы без проблем. Но тут уже практически всё готово...
    Подскажите плиз что нибудь)
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Ну так а в запросе:
    "Справочник.Склады ЛЕВОЕ СОЕДИНЕНИЕ ВиртТаблица" не проходит?
  3. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Не совсем понял вопрос но почему бы в запросе не написать

    ЕСТЬNULL(Склад,"Без склада") тогда все что без складо попадет под текстовую группировку "без склада"
  4. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Наоборот. Склад есть. но на нем нету товара. Смотрю, в консоли запросов все ок, а в СКД если делаешь отбор по номенклатуре, действительно, пустые склады не отображаются. Без отбора - все ОК, пустые склады видны.
    вот мой запросик:
    Код:
    ВЫБРАТЬ
    Склады.Ссылка КАК Склад,
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.КоличествоОстаток
    ИЗ
    Справочник.Склады КАК Склады
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    {ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура.*}) КАК ВложенныйЗапрос
    ПО Склады.Ссылка = ВложенныйЗапрос.Склад
    
  5. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Вот так пошло:
    Код:
    ВЫБРАТЬ
    Склады.Ссылка КАК Склад,
    NULL КАК Номенклатура,
    NULL КАК КоличествоОстаток
    ИЗ
    Справочник.Склады КАК Склады
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    {ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура.*}
    
  6. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Код:
    {ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура.*}
    
    Для СКД это условие излишнее....
    Лучше его в параметры ВТ убрать.
  7. TopicStarter Overlay
    keanser
    Offline

    keanser Опытный в 1С

    Регистрация:
    29 мар 2010
    Сообщения:
    72
    Симпатии:
    0
    Баллы:
    26
    Всё хорошо... Только отсалось как то убрать пустую строку там где есть товары)) Которая появилась в последствии объединения с другим запросом)
  8. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Видел, попробовал... с ходу не получилось и бросил :) Это тебе задачка. Решишь - отпишись, плиз.
  9. TopicStarter Overlay
    keanser
    Offline

    keanser Опытный в 1С

    Регистрация:
    29 мар 2010
    Сообщения:
    72
    Симпатии:
    0
    Баллы:
    26
    Бошку сломал))) У больно заманчиво сделать вручную))) Завтра еще подумаю))
  10. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Приложите, что получилось в виде обработки
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    имхо, должно помочь "игнорировать NULL" в свойствах полей запроса, на закладке "Набор данных"
  12. TopicStarter Overlay
    keanser
    Offline

    keanser Опытный в 1С

    Регистрация:
    29 мар 2010
    Сообщения:
    72
    Симпатии:
    0
    Баллы:
    26
    Проблема решена.. Как обьяснить теперь на складах - хз... Счас лучше на своей попробую как нибудь. Конфигурация 1С:ЗУП8.1, переделанная. Учавствуют 2 документа: ДоговорыСФизлицами и ЗарплатаКВыплатеОрганизаций. И там и там добавлен реквизит "ДоговорЗаказа". В регистры он не попадает, да и по задаче отбор по документам нас устраивает. Сама задача была такая: "В договорах указывается сумма по договорузаказа, в ЗарплатеКвыплате - отображается поэтапная выплата. Необходимо отобразить в отчете сколько по каким заказам выплачено, сколько всего, сколько остаолсь."
    Вот в этом случае у меня появлялись такие договора по которым выплат еще не было, а в отчете надо отобразить что по ним есть должок. В ручную написание отчета - не составило бы труда. Да и теперь тоже разобрался - всё идеальное - просто))))
    Код:
    ВЫБРАТЬ
    Выплаты.Ссылка,
    СУММА(Выплаты.Ссылка.СуммаДокумента) КАК Сумма,
    Договора.ДоговорЗаказа,
    СУММА(Договора.СуммаКНачислению) КАК СуммаКНачислению,
    СУММА(Договора.СуммаКНачислению * 0.87) КАК СуммаКВыплате
    ИЗ
    (ВЫБРАТЬ
    ДоговорНаВыполнениеРаботСФизЛицом.ДоговорЗаказа КАК ДоговорЗаказа,
    СУММА(ДоговорНаВыполнениеРаботСФизЛицом.СуммаЗаРаботу) КАК СуммаКНачислению
    ИЗ
    Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК ДоговорНаВыполнениеРаботСФизЛицом
    ГДЕ
    ДоговорНаВыполнениеРаботСФизЛицом.Организация = &Организация
    И ДоговорНаВыполнениеРаботСФизЛицом.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И ДоговорНаВыполнениеРаботСФизЛицом.Проведен = ИСТИНА
    
    СГРУППИРОВАТЬ ПО
    ДоговорНаВыполнениеРаботСФизЛицом.ДоговорЗаказа) КАК Договора
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ЗарплатаКВыплатеОрганизаций.Ссылка КАК Ссылка
    ИЗ
    Документ.ЗарплатаКВыплатеОрганизаций КАК ЗарплатаКВыплатеОрганизаций
    ГДЕ
    ЗарплатаКВыплатеОрганизаций.Проведен
    И ЗарплатаКВыплатеОрганизаций.Организация = &Организация
    И ЗарплатаКВыплатеОрганизаций.Дата >= &ДатаНачала
    И ЗарплатаКВыплатеОрганизаций.Договорники = ИСТИНА
    
    СГРУППИРОВАТЬ ПО
    ЗарплатаКВыплатеОрганизаций.Ссылка) КАК Выплаты
    ПО Договора.ДоговорЗаказа = Выплаты.Ссылка.Договор
    
    СГРУППИРОВАТЬ ПО
    Выплаты.Ссылка,
    Договора.ДоговорЗаказа
    
    Сделал 2 вложенных запроса по 2м документам и связал по договору, так что бы в отчет попадали все записи от документа ДоговорНаВыполнениеРаботСФизлицами (левое соединение).
    Вот... вроде бы нормлаьно обьяснил)) Еще и обработку счас прикручу)

    Вложения:

    • Бетта.erf
      Размер файла:
      12,9 КБ
      Просмотров:
      57

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