Здравствуйте. Вопрос по СКД.
Мне нужно постороить отчет по регистру накопления вида "остатки".
Для простоты, регистр имеет какой то набор измерений, один ресурс и один реквизит - в реквизите хранится что то вроде "вида движения" - значение из перечисления.
Отчет должен быть в виде таблицы, измерения будут отражены в группировках строк этой таблицы.
И вот тут мы подходим к сути вопроса, потому что колонки мне нужно организовать определенным образом, и я не знаю как это сделать.
Первой всегда должны идти колонка "Начальный остаток", затем должно идти динамически определяемое количество колонок по значениям реквизита "вид движения",а в конце еще несколько постоянных колонок: "Конечный остаток" и еще парочка, данные в которые будут попадать не из самого регистра, а неким левым соединениям к записям из другого места.

Как сделать такой отчет, если бы в колонках была группировка только по виду движения - мне понятно, просто содать такую группировку и все. Сложность у меня с тем, как сделать так, чтобы грубо говоря "ресурс" регистра попадал во множество колонок в зависимости от вида движения, и еще было несколько других статичных колонок, данные в которые попадают из других полей набора данных для отчета...
---
начальный остаток и конечный остаток и другие "статичные колонки" делаются или через группировку детальных записей с отключенным автополем и своим набором полей. или через группировку по вычисляемому полю.

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

До решения дошел сам, и оно так же было ранее правильно указано в (10). Нужно было создать в колонках 3 группировки - 2 из них детальные записи, одна - группировка по виду движения. Во всех трех отключить автополе, в детальных записях указать поля соответствующих остатков, в группировке по виду - только ресурсы количества и веса.
---
```1c
    ВЫБОР
    КОГДА Регистр.ВидДвижения = А
    ТОГДА Регистр.Ресурс
    КОНЕЦ КАК КолонкаА,
    ВЫБОР
    КОГДА Регистр.ВидДвижения = Б
    ТОГДА Регистр.Ресурс
    КОНЕЦ КАК КолонкаБ,
    ...
```
---
Да, про такой, "Топорный" вариант я знаю, и уже использовал его однажды, в данном случае хотелось бы понять, можно ли это средствами СКД сделать более элегантно и проще, вдобавок реализовав подход, при котором не несущие информации колонки не будут отображаться (как это работает при стандартных группировках).
Потому что значений перечисления "ВидДвижения" достаточно много, а отчет будут всегда крутить за небольшой период, в котором по большинству этих видов движений не будет.
---
К тому же теперь у меня количественных ресурсов самого регистра 2 а не 1 как чаще всего бывает, а значит количество таких колонок еще помножится на 2, достигая многих десятков.
---
Не совсем понятно что имеется ввиду под
затем должно идти динамически определяемое количество колонок по значениям реквизита "вид движения"
Пример: Расход - +10 колонок, Приход - +5 колонок?
Может использовать несколько наборов данных по виду движения.
---
Да, я не совсем понятно выразился наверное. Давайте приведу аналогию в немного другом ключе. Представим что я делаю отчет в виде таблицы, и одно из измерений я сделал в качестве группировки колонок. Например, склад. Так, у меня в отчете будут все склады в колонках, правильно? Но, точнее сказать, не вообще все склады в базе, а только те, которые нам попадались в данных, выбранных конкретно для этого отчета за этот период. Если склада А в данных не попадалось, колонки со складом А не будет.

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

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

Отчет будет до конкретных записей и регистраторов, поэтому в запросе я ничего схлопывать группировками не буду, это сделают группировки СКД. Остатки на начало и конец мне нужны на каждую запись регистра, поэтому пока что скелет моего запроса выглядит как обращение к физической таблице регистра + левое соединение по максимальному количеству по логике подходящих полей с ВТ ОстаткиИОбороты.

Привожу на всякий случай то что я пока что написал, реквизит, о котором идет речь в данной теме там ВидДвиженияПтицы

```1c
    ВЫБРАТЬ
    ИК_ПТЦ_УчетЖивойПтицы.Период КАК Период,
    ИК_ПТЦ_УчетЖивойПтицы.Регистратор КАК Регистратор,
    ИК_ПТЦ_УчетЖивойПтицы.ВидДвижения КАК ВидДвиженияРегистра,
    ИК_ПТЦ_УчетЖивойПтицы.Организация КАК Организация,
    ИК_ПТЦ_УчетЖивойПтицы.Подразделение КАК Подразделение,
    ИК_ПТЦ_УчетЖивойПтицы.Склад КАК Склад,
    ИК_ПТЦ_УчетЖивойПтицы.ВидСтада КАК ВидСтада,
    ИК_ПТЦ_УчетЖивойПтицы.Номенклатура КАК Номенклатура,
    ИК_ПТЦ_УчетЖивойПтицы.ВидДвиженияПтицы КАК ВидДвиженияПтицы,
    ИК_ПТЦ_УчетЖивойПтицы.КоличествоГолов КАК Головы,
    ИК_ПТЦ_УчетЖивойПтицы.Вес КАК Вес,
    ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.КоличествоГоловНачальныйОстаток КАК ГоловыНачальныйОстаток,
    ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.КоличествоГоловКонечныйОстаток КАК ГоловыКонечныйОстаток,
    ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.ВесНачальныйОстаток КАК ВесНачальныйОстаток,
    ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.ВесКонечныйОстаток КАК ВесКонечныйОстаток,
    ВЫБОР
    КОГДА ИК_ПТЦ_УчетЖивойПтицы.ВидДвиженияПтицы = ЗНАЧЕНИЕ(Перечисление.ИК_ПТЦ_ВидыДвиженияПтицы.Привес)
    ТОГДА 1
    КОГДА ИК_ПТЦ_УчетЖивойПтицы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА 2
    ИНАЧЕ 3
    КОНЕЦ КАК ВидДвижения
    ИЗ
    РегистрНакопления.ИК_ПТЦ_УчетЖивойПтицы КАК ИК_ПТЦ_УчетЖивойПтицы
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ИК_ПТЦ_УчетЖивойПтицы.ОстаткиИОбороты(, , Авто, , ) КАК ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты
    ПО ИК_ПТЦ_УчетЖивойПтицы.Период = ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.ПериодСекунда
    И ИК_ПТЦ_УчетЖивойПтицы.Регистратор = ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.Регистратор
    И ИК_ПТЦ_УчетЖивойПтицы.НомерСтроки = ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.НомерСтроки
    И ИК_ПТЦ_УчетЖивойПтицы.Организация = ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.Организация
    И ИК_ПТЦ_УчетЖивойПтицы.Подразделение = ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.Подразделение
    И ИК_ПТЦ_УчетЖивойПтицы.Склад = ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.Склад
    И ИК_ПТЦ_УчетЖивойПтицы.ВидСтада = ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.ВидСтада
    И ИК_ПТЦ_УчетЖивойПтицы.Номенклатура = ИК_ПТЦ_УчетЖивойПтицыОстаткиИОбороты.Номенклатура
    {ГДЕ
    (ИК_ПТЦ_УчетЖивойПтицы.Период МЕЖДУ &НачалоПериода И &КонецПериода)}
```
---
На сколько я понял СКД для реализации вам не подойдет. Может кто меня поправит, но СКД выводит данные линейно. И с выводом вправо поможет только кросс-таблица, но т.к. вам нужны еще статичные колонки СКД это не сделает.
---
начальный остаток и конечный остаток и другие "статичные колонки" делаются или через группировку детальных записей с отключенным автополем и своим набором полей. или через группировку по вычисляемому полю.

вот как сделать разные ресурсы в разных видах движениях я не знаю. задача интересная.
---
вот как сделать разные ресурсы в разных видах движениях я не знаю. задача интересная.
Не совсем понял вас, или вы не совсем поняли меня...

По иронии судьбы я как раз сейчас зашел на формум, чтобы написать, что до решения дотыкал сам методом проб и ошибок.
И решение, конечно, совпало по сути с одним из предложенных вами:

"статичные колонки" делаются или через группировку детальных записей с отключенным автополем
Именно так, с некоторыми нюансами я и сделал. Развернутое пояснение по решению своей задачи я напишу чуть чуть позже.
Так как вы написали решение по факту раньше, чем я написал "я уже решил это сам", выделяю вам вознаграждение.
---
Не совсем понял вас, или вы не совсем поняли меня...

насколько я понял нужно было для группировки колонки таблицы по виду движения сделать что-то типа

Вид движения 1 (тут ресурс Количество), Вид движения 2 (тут ресурс Вес), Вид движения 3 (тут Количество, Вес, Сумма)

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

До решения дошел сам, и оно так же было ранее правильно указано в (10). Нужно было создать в колонках 3 группировки - 2 из них детальные записи, одна - группировка по виду движения. Во всех трех отключить автополе, в детальных записях указать поля соответствующих остатков, в группировке по виду - только ресурсы количества и веса.
---
интересная задача