Запрос в отчете на СКД использует виртуальную таблицу Регистра бухгалтерии ОстаткиИОбороты. Обращения к таблице происходит дважды (по двум разным счетам) с объединением результатов. По первому счету есть одно субконто, по второму два.
При установке отборов по обоим субконто СКД пытается для счета с одним субконто установить отбор по двум субконто. Как сделать так, чтобы для одного счета устанавливался отбор по одному субконто, а для второго по обоим?

Прикреплен файл с выгрузкой ИБ. Отчет один.

Текст ошибки:

Ошибка исполнения отчета
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
Ошибка обработки представления "РегистрБухгалтерии.РегистрБухгалтерии.ОстаткиИОбороты:Поле не найдено (Субконто2)"
<<?>>РегистрБухгалтерии.РегистрБухгалтерии.ОстаткиИОбороты(&П, &П, , , Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.АвансыОтПокупателей), &СписокСубконтоАвансыОтПокупателей, (Субконто2 = &П2) И Субконто1 = &П3) КАК РегистрБухгалтерииОстаткиИОбороты
---
Железно работающий вариант
1) отключаешь "Автозаполнение". При этом "пропадает" все, даже поля набора данных
2) открываешь конструктор запроса, закладку настроек СКД и накидываешь мышкой поля набора данных.
3) теперь отборы. Их проще прописать руками для сложных случаев типа твоего. Будет выглядеть примерно так

```1c
    ВЫБРАТЬ
    .........
    ИЗ РегистрНакопления.РегистрБухгалтерии.РегистрБухгалтерии.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, , , Счет = &Счет1, , {Субконто1, Субконто2})

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

    ВЫБРАТЬ
    ..........
    ИЗ РегистрНакопления.РегистрБухгалтерии.РегистрБухгалтерии.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, , , Счет = &Счет2, , {Субконто1})
```

В итоге когда пользователь установит отбор по Субконто1 и Субконто2, отбор по Субконто2 сработает только для первого подзапроса.
---
Конструктор запроса - закладка Компоновка данных
там указать свои параметры, если они будут указаны, отбор сработает, не указаны - не сработает
---
Нужно чтобы брались указанные пользователем отборы по Субконто1 и Субконто2 и для одного счета использовалось только одного значение (Субконто1), для другого - оба. При этом не должны создаваться параметры с схеме компоновки данных для указания значений Субконто1 и Субконто2. В качестве скрытых параметров используются СписокСубконтоАвансыОтПокупателей, содержащий один вид субконто, и СписокСубконтоПокупатели, содержащий два вида субконто.

А при использовании, указанной вами закладки, будут создаваться параметры с схеме компоновки данных. Или, как вариант, я не понял что вы имели в виду.
---
Как бы попонятнее объяснить.
На данный момент отчет работает, если пользователь не указал отборов. Работает, если пользователь указал 1 отбор по первому субконто, который есть на обоих счетах.
Не работает, если пользователь создал отборы по обоим субконто.

Нужно написать запрос или использовать возможности СКД, которые позволят исполнятся отчету при создании пользователем отборов по обоим субконто. При этом при конфигурировании никаких отборов не создается. Пользователь их создает в пользовательском режиме, если захочет.
---
В справке по языку есть раздел "Расширение языка запросов для системы компоновки данных". Суть в том, что в фигурных скобках можно описывать, как именно пользовательские настройки будут модифицировать исходный текст запроса (для отборов) и какие настройки вообще будут доступны. По дефолту стоит галка "Автозаполнение", при которой СКД сама пытается это понять исходя из своих эвристик и названий полей. В сложных случаях типа твоего, ессно ума у нее не хватает и надо прописать руками, как именно должен применяться отбор, заданный пользователем.
ЗЫ. В конструкторе запроса на закладке "Компоновка данных" можно задавать "фигурные" настройки параметрически.
---
Я про это в курсе. Не понимаю как это применить. При попытке применить ничего не получается.
Сейчас дозвонился до друзей. Говорят, что в типовых под такие ситуации текст запроса формируется динамически в зависимости от заданных пользователем отборов и существующих аналитик на счетах. Т.е. нет говорят такой возможности у СКД. Может ли кто-то подтвердить или опровергнуть это по опыту. Очень уж не хочется типовые сейчас ковырять, чтобы ответить на этот вопрос.
---
Железно работающий вариант
1) отключаешь "Автозаполнение". При этом "пропадает" все, даже поля набора данных
2) открываешь конструктор запроса, закладку настроек СКД и накидываешь мышкой поля набора данных.
3) теперь отборы. Их проще прописать руками для сложных случаев типа твоего. Будет выглядеть примерно так

```1c
    ВЫБРАТЬ
    .........
    ИЗ РегистрНакопления.РегистрБухгалтерии.РегистрБухгалтерии.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, , , Счет = &Счет1, , {Субконто1, Субконто2})

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

    ВЫБРАТЬ
    ..........
    ИЗ РегистрНакопления.РегистрБухгалтерии.РегистрБухгалтерии.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, , , Счет = &Счет2, , {Субконто1})
```

В итоге когда пользователь установит отбор по Субконто1 и Субконто2, отбор по Субконто2 сработает только для первого подзапроса.
---
Заработало. Только минут 40 ушло, чтобы прописать все ручками как в исходном варианте.
---
А попробуй в исходном варианте просто прописать нужные тебе отборы в фигурных скобках - будет работать или нет.
В смысле - без отключения автозаполнения настроек.
---
Нет, не работает. Только когда снимаешь галку Автозаполнения и полностью выставляешь все свойства полей ручками - работает. Но вроде это с субконто такие странные вещи. НачалоПериода, ОкончаниеПериода вроде должны просто через фигурные работать (на сколько я помню).
---
Спасибо. Значит, в смешанном режиме настройки таки просто "складываются".
---
В конструкторе запроса на закладке "Компоновка данных" можно задавать "фигурные" настройки параметрически.
Т.е. параметризовать еще и фигурные настройки?
---
Т.е. параметризовать еще и фигурные настройки?
Нет. "Параметрически" и "Параметризированные" это разные вещи.
Я имел в виду, что через конструктор можно часть настроек сделать мышкой, без прописывания самому вручную.
---
А автонастройки при этом разве отключатся автоматом для одноименного отбора? А то я всегда в таких случаях вообще автонастройки отключаю и все руками настраиваю...
---
Можно даже такие вещи делать:

```1c
    ВЫБРАТЬ
    .........
    ИЗ РегистрНакопления.РегистрБухгалтерии.РегистрБухгалтерии.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, , , Счет = &Счет1, , {(Субконто1) КАК Вася})

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

    ВЫБРАТЬ
    ..........
    ИЗ РегистрНакопления.РегистрБухгалтерии.РегистрБухгалтерии.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, , , Счет = &Счет2, , {(Субконто1) КАК Пупкин})
```

В итоге у пользователя будет доступно два отбора - "Вася" и "Пупкин". "Вася" будет отбирать по первому подзапросу, а "Пупкин" по второму.