Версия для печати темы (https://pro1c.org.ua/index.php?s=88cc89a949dcb023479e98ccedb3e19f&showtopic=62976)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Отбор с условием в отчете на СКД

Автор: Yevhenii_S 18.11.20, 14:47

платформа: 1С:Підприємство 8.3 (8.3.16.1148)
Конфигурация: 1С:Бухгалтерія сільськогосподарського підприємства для України, редакция 2.0

Добрый день колеги.
Есть задача. имею отчёт сделанный в СКД , данные выбираются запросом, в запросе формируется временная таблица из 8 выборок по регистрам бухгалтерии, которые имеют одинаковые поля и сливаються через "ОБЪЕДИНИТЬ ВСЕ"

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент,
    ХозрасчетныйОстаткиИОбороты.Субконто2 КАК ДоговорКонтрагента,
    "Початковий залишок" КАК Номенклатура,
    ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт, 0) - ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт, 0) КАК Показатель,
    NULL КАК Документ,
    ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
    "А" КАК ПорядокКолонок
ПОМЕСТИТЬ вт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Счет = &Счет6856, &ПорядокСубконто) КАК ХозрасчетныйОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ХозрасчетныйОбороты.Субконто1,
    ХозрасчетныйОбороты.Субконто2,
    "Нараховано",
    ХозрасчетныйОбороты.СуммаОборотКт,
    ХозрасчетныйОбороты.Регистратор,
    ХозрасчетныйОбороты.Организация,
    "Б"
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет = &Счет6856, &ПорядокСубконто, , , ) КАК ХозрасчетныйОбороты

ОБЪЕДИНИТЬ ВСЕ


пример выборок

в конце выбираем поля для отчёта из временной таблицы

ВЫБРАТЬ
    вт.Организация КАК Организация,
    вт.Контрагент КАК Контрагент,
    вт.ДоговорКонтрагента КАК ДоговорКонтрагента,
    вт.Документ КАК Документ,
    вт.Номенклатура КАК Номенклатура,
    вт.Показатель КАК Показатель,
    вт.ПорядокКолонок КАК ПорядокКолонок
ИЗ
    вт КАК вт

УПОРЯДОЧИТЬ ПО
    ПорядокКолонок


Далее настраиваем ресурсы, параметры, настройки и собственно получаем отчёт
П.С. отчёт не моего авторства, написан разработчиками конфы

Задача: когда пользователь выбирает отбор по контрагенту (1) (а именно группу(отсюда условие)) (2), нужно вывести в отчёт всех контрагентов из этой группы (3)
в отчёт. Сейчас можно вывести или без отбора всех по кому были движения, или контрагента по которому установлен отбор и были движения.

Вопрос: куда копать??? 64000000.gif

до этого в СКД делал довольно простые отчёты, понимаю откуда беруться данные. но не понимаю как связать отбор с запросом и куда соеденить выборку контрагента с выбраным родителем.... help.gif

Автор: Vofka 18.11.20, 15:01

Yevhenii_S, "группа" - это папка в справочнике? Если да, то в виде сравнения отбора надо указать "В иерархии" или что-то типа того.

Автор: sava1 18.11.20, 15:10

отборы -
контрагент - в группе - группа

Автор: Yevhenii_S 18.11.20, 15:39

Vofka @ Сегодня, 16:01 * ,
Спасибо.
я так понимаю что это надо писать в запросе, что то похожее уже описано по параметру "СчётКт"

ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, Регистратор, СчетДт = &Счет6856, &ПорядокСубконто, СчетКт В ИЕРАРХИИ (&Счет7), , ) КАК ХозрасчетныйОбороты


но дело в том что у меня в запросе нигде нет параметра "&Контрагент"
т.е. Контрагентов мы получаем при переборе движений по регистрам бухгалтерии, вродь как "Субконто1" ( я в этом плаваю)
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент,
    ХозрасчетныйОстаткиИОбороты.Субконто2 КАК ДоговорКонтрагента,
    "Початковий залишок" КАК Номенклатура,



по логике наверное нужно в каждой выборке которая формирует временную таблицу задавать параметр "&Субконто1" или "&Контрагент" и как то связывать его с отбором по контрагенту... why.gif

Автор: sava1 18.11.20, 16:04

не надо ничего писать. Скд сама дает Вам поля в отбор - Вы можете их только ограничить на вкладке Поля

Автор: Yevhenii_S 18.11.20, 16:32

sava1 @ Сегодня, 17:04 * ,
Если я Вас правильно понял то настройка должна выглядеть так:

Но при выборе папки отчёт пуст


хотя в этой папке есть два контрагента которые попадают в отчёт без отбора и по отбору конкретно по контрагенту

Автор: Vofka 18.11.20, 17:00

Yevhenii_S, на скрине с пустым результатом отчета выше написано "Контрагент дорівнює". Там видимо вы отбор поставили на равенство.

Автор: sava1 18.11.20, 17:05

там Основной вариант отрабатывает.
Надо Изменить вариант - Отбор - Установить для контрагента в Группе, а на форме (в быстром отборе) - вооще снять птису

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua