powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Получение данных из регистров сведений запросом
9 сообщений из 9, страница 1 из 1
Получение данных из регистров сведений запросом
    #38646858
shilvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день коллеги. Столкнулся со следующей задачкой. Специально сформулирую ее в общем виде, что бы понять принцип.

Имеется регистр сведений с записями следующего вида (не обязательно отсортированы, но это не влияет на суть):



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.

Решается ли задача наиболее общим случаем для заранее неизвестного кол-ва столбцов?



Заранее благодарю, за помощь в изысканиях.
...
Рейтинг: 0 / 0
Получение данных из регистров сведений запросом
    #38646900
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shilvlad, а так не пойдет?
* B1B2B3B4B5B6A1++A2++A3++A4+
...
Рейтинг: 0 / 0
Получение данных из регистров сведений запросом
    #38646958
shilvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не очень понял результатом чего является Ваше решение, но надо именно в той форме как я сформулировал. Проблема прежде всего заключаетсяв том, что записей пар может быть около 30 - 40 тысяч, поэтому на выходе я бы хотел получить отчет как в задаче. Суть вопроса заключается в том, что есть или нет возможность реализовать это ЗАПРОСОМ. Если возможность есть, то как?
...
Рейтинг: 0 / 0
Получение данных из регистров сведений запросом
    #38647041
EugeniaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shilvlad, Обычный запрос + ИТОГИ ПО Base Object
Получите выборку итогов из 4х строк А1, A2, A3, A4
По каждой строке итогов разверные данные.
...
Рейтинг: 0 / 0
Получение данных из регистров сведений запросом
    #38647048
shilvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EugeniaKshilvlad, Обычный запрос + ИТОГИ ПО Base Object
Получите выборку итогов из 4х строк А1, A2, A3, A4
По каждой строке итогов разверные данные.
Я тут картинку нарисовал.. И, извините за лошпедность, никак не могу сообразить как ИТОГИ ПО примонстрячить к моим данным, что бы получить то что на картинке:
...
Рейтинг: 0 / 0
Получение данных из регистров сведений запросом
    #38647084
EugeniaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shilvladЯ тут картинку нарисовал.. И, извините за лошпедность, никак не могу сообразить как ИТОГИ ПО примонстрячить к моим данным, что бы получить то что на картинке:
Итоги дадут такое дерево
А1
- B1
- B2
- B3
A2
- B4
- B5
A3
- B6
A4
- B7
- B8
- B9
- B0
Из него уже получаете нужный вам отчет.
Сразу получить результат запроса с переменным количеством колонок не получится.

А, вообще, если нужен именно отчет, просто отбираете данные и выбираете в СКД режим отчета "Таблица", где Base Object - строки, Added object - колонки.
...
Рейтинг: 0 / 0
Получение данных из регистров сведений запросом
    #38647088
EugeniaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shilvlad, Теоретически, можно извратиться через пакет из нескольких запросов и временных таблиц и получить именно в нужном Вам формате, но все равно нужно изначально задать максимальное количество N. Переменное количество колонок не получите в любом случае.
...
Рейтинг: 0 / 0
Получение данных из регистров сведений запросом
    #38647178
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На чистом языке запросов 1С добиться такой перекрестной таблицы не получится.
Вижу два варианта формирования нужного вам отчета:
1) ИТОГИ ПО и далее запрограммировать нужную вам логику формирования отчета;
2) Может быть вам поможет СКД, я к сожалению уже очень далек от данного механизма и более точную информацию дать не могу;
...
Рейтинг: 0 / 0
Получение данных из регистров сведений запросом
    #38648041
dmi3j
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При определенных условиях, как частный случай, можно пакетным запросом получить результат в виде:

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.
/////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	РС.BaseObject,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РС.AddedObject) КАК Количество
ПОМЕСТИТЬ ВТ1
ИЗ
	РегистрСведений.РС КАК РС

СГРУППИРОВАТЬ ПО
	РС.BaseObject

ИНДЕКСИРОВАТЬ ПО
	РС.BaseObject
;

/////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	РС.BaseObject,
	РС.AddedObject,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РС1.AddedObject) КАК Количество2
ПОМЕСТИТЬ ВТ2
ИЗ
	РегистрСведений.РС КАК РС
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РС КАК РС1
		ПО РС.BaseObject = РС1.BaseObject
			И РС.AddedObject < РС1.AddedObject

СГРУППИРОВАТЬ ПО
	РС.BaseObject,
	РС.AddedObject

ИНДЕКСИРОВАТЬ ПО
	РС.BaseObject
;

//////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВТ2.BaseObject,
	ВТ2.AddedObject,
	ВТ1.Количество - ВТ2.Количество2 КАК НомерСтолбца
ИЗ
	ВТ2 КАК ВТ2
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ1 КАК ВТ1
		ПО ВТ2.BaseObject = ВТ1.BaseObject

/////////////////////////////////////////////////////////////////


При этих условиях задача решается и в случае заранее неизвестного количества столбцов.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Получение данных из регистров сведений запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]