|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
Добрый день коллеги. Столкнулся со следующей задачкой. Специально сформулирую ее в общем виде, что бы понять принцип. Имеется регистр сведений с записями следующего вида (не обязательно отсортированы, но это не влияет на суть): Base Object | Added object A1 | B1 A1 | B2 A1 | B3 A2 | B4 A2 | B5 A3 | B6 A4 | B7 A4 | B8 A4 | B9 A4 | B0 Задача, сформировать отчет сгруппировав данные следующим образом (сортировка, опять же, не играет никакой роли): А1 - B1 - B2 - B3 A2 - B4 - B5 A3 - B6 A4 - B7 - B8 - B9 - B0 То есть должна получиться табличка с количеством строк равным кол-ву уникальных элементов и, вообще говоря, переменным чилом заполненных столбцов для каждой строки. Вопрос №1. Как это реализовать запросом? Вопрос №2. Решается ли задача наиболее общим случаем для заранее неизвестного кол-ва столбцов? Заранее благодарю, за помощь в изысканиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 18:20 |
|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
shilvlad, а так не пойдет? * B1B2B3B4B5B6A1++A2++A3++A4+ ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 19:01 |
|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
Не очень понял результатом чего является Ваше решение, но надо именно в той форме как я сформулировал. Проблема прежде всего заключаетсяв том, что записей пар может быть около 30 - 40 тысяч, поэтому на выходе я бы хотел получить отчет как в задаче. Суть вопроса заключается в том, что есть или нет возможность реализовать это ЗАПРОСОМ. Если возможность есть, то как? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 20:10 |
|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
shilvlad, Обычный запрос + ИТОГИ ПО Base Object Получите выборку итогов из 4х строк А1, A2, A3, A4 По каждой строке итогов разверные данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 22:34 |
|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
EugeniaKshilvlad, Обычный запрос + ИТОГИ ПО Base Object Получите выборку итогов из 4х строк А1, A2, A3, A4 По каждой строке итогов разверные данные. Я тут картинку нарисовал.. И, извините за лошпедность, никак не могу сообразить как ИТОГИ ПО примонстрячить к моим данным, что бы получить то что на картинке: ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 22:44 |
|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
shilvladЯ тут картинку нарисовал.. И, извините за лошпедность, никак не могу сообразить как ИТОГИ ПО примонстрячить к моим данным, что бы получить то что на картинке: Итоги дадут такое дерево А1 - B1 - B2 - B3 A2 - B4 - B5 A3 - B6 A4 - B7 - B8 - B9 - B0 Из него уже получаете нужный вам отчет. Сразу получить результат запроса с переменным количеством колонок не получится. А, вообще, если нужен именно отчет, просто отбираете данные и выбираете в СКД режим отчета "Таблица", где Base Object - строки, Added object - колонки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 23:37 |
|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
shilvlad, Теоретически, можно извратиться через пакет из нескольких запросов и временных таблиц и получить именно в нужном Вам формате, но все равно нужно изначально задать максимальное количество N. Переменное количество колонок не получите в любом случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 23:41 |
|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
На чистом языке запросов 1С добиться такой перекрестной таблицы не получится. Вижу два варианта формирования нужного вам отчета: 1) ИТОГИ ПО и далее запрограммировать нужную вам логику формирования отчета; 2) Может быть вам поможет СКД, я к сожалению уже очень далек от данного механизма и более точную информацию дать не могу; ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 08:26 |
|
Получение данных из регистров сведений запросом
|
|||
---|---|---|---|
#18+
При определенных условиях, как частный случай, можно пакетным запросом получить результат в виде: BaseObject | AddedObject | НомерКолонки A1 | B01 | 1 A1 | B02 | 2 A1 | B03 | 3 A2 | B04 | 1 A2 | B05 | 2 A3 | B06 | 1 A4 | B07 | 1 A4 | B08 | 2 A4 | B09 | 3 A4 | B10 | 4 A5 | B11 | 1 A6 | B12 | 1 A6 | B13 | 2 A6 | B14 | 3 А уже его в СКД вывести как таблицу, где BaseObject - строки, НомерСтолбца - колонки, AddedObject - ресурс (к примеру Максимум по НомеруСтолбца). Сам запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
При этих условиях задача решается и в случае заранее неизвестного количества столбцов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 19:38 |
|
|
start [/forum/topic.php?fid=28&fpage=34&tid=1519420]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 313ms |
total: | 440ms |
0 / 0 |