Имя: Пароль:
1C
1С v8
СКД и различные произвольные периоды в кросс-таблице
0 SiAl-chel
 
13.06.17
08:59
Доброго дня, коллеги. Вопросы есть к тем, кто хорошо знает СКД, либо сталкивался с похожей задачей.

Задача такова:
1. Есть отчет на СКД с какими-то суммовыми показатели, есть какие-то группировки.
2. Есть таблица значений "периоды" с началом и окончанием периодов, которую пользователь заполняет произвольно.
3. Нужно сделать так, чтобы эти строки из ТЗ "Периоды" стали доступны как поля в СКД, чтобы  по ним можно было выводить колонки с суммовыми показателями.

Какие могут быть решения? Я пока вижу только два:
1. Программно менять текст запроса, используя ПОЛНОЕ СОЕДИНЕНИЕ для каждого периода.
2. Выгрузить таблицу периодов во временную таблицу, и потом ее уже соединять с таблицами существующим запросом, чтобы можно было сделать группировки по произвольным периодам.

Что делать, чтобы работало быстрее и меньше было бы кода?
1 PiotrLoginov
 
13.06.17
09:07
мало исходных данных. склоняюсь к 2. И еще: зачастую приходится выбирать между "чтобы работало быстрее" и "меньше было бы кода"
2 SiAl-chel
 
13.06.17
09:12
(1) Проще говоря это обороты по продаже за период. Нужен сравнительный анализ за произвольное количество произвольных периодов, список которых пользователь сам создает и редактирует. Могут быть как стандартные периоды типа Месяц, Неделя, так и произвольные - два или девять дней.
3 d4rkmesa
 
14.06.17
08:47
Какой-нибудь справочник с настройкой периодов, аналогичный к примеру, справочнику "Настройка интервалов [просроченной задолженности]" в УПП. Либо программно заполнять группировку по интервалам. Можно использовать 2 схемы компоновки, одна - "пустышка" для пользователя с источником данных из ТЗ, где он сможет задавать отборы и параметры, и вторая с запросом по оборотным данным(с группировкой по какому-нибудь стандартному минимальному интервалу, к примеру, по дням), который выводится в ТЗ и приводится к нужному виду(к примеру, добавляются колонки с датой и представлением периодов, по которым сможем группировать). Отборы и периоды, конечно же, не забываем заполнять программно из первой схемы.
4 mistеr
 
14.06.17
10:26
(0) Я за решение 2. СКД соединять по вхождению в период не умеет (позор!), поэтому только в запросе. Программно формировать запрос  - однозначно больше кода. А производительность ИМХО будет одинаковая.
5 SiAl-chel
 
14.06.17
10:50
(3) Плохо знаю СКД. Для данного решения надо два макета схемы КД и потом в модуле обработки переназначить отборы и периоды? А зачем вторая схема КД, если все это можно наложить на первую?
6 d4rkmesa
 
15.06.17
22:34
(5) Вторая схема для заполнения отборов, параметров и вывода в нужном виде, к примеру, в виде кросс-таблицы. Хотя, может можно воспользоваться одной, программно переназначая источники и группировки, однако мне кажется это сложнее.
7 Defender aka LINN
 
16.06.17
07:38
(0) 2 набора данных.
Первый - набор данных-объект, в котором даты начала и окончания, и поле группировки (представление периода, например). Второй набор - запрос.
И настроить соединение наборов примерно как тут: Книга знаний: Срез последних на каждую дату в запросе
8 SiAl-chel
 
16.06.17
07:55
(7) Спасибо. Еще вчера сделал.