Имя: Пароль:
1C
1С v8
запрос: свернуть записи в некоторых периодах
0 PiotrLoginov
 
10.11.16
14:29
Здрасте всем.

Есть ТаблицаКоличеств

ДАТА         НОМЕНКЛАТУРА    ХАРАКТЕРИСТИКА     КОЛВО
01.10        Товар А         Характеристика 1    2
05.10        Товар А         Характеристика 1    3
06.10        Товар А         Характеристика 2    1
09.10        Товар А         Характеристика 1    5


Как-то можно запросом свернуть записи в периодах, где ХАРАКТЕРИСТИКА одинакова?
В результате должно быть так:

01.10        Товар А        Характеристика 1     5
06.10        Товар А        Характеристика 2     1
09.10        Товар А        Характеристика 1     5



По понятным причинам не подойдет это:
ВЫБРАТЬ
    МИНИМУМ(ТаблицаКоличеств.Дата) КАК Дата,
    ТаблицаКоличеств.Номенклатура,
    ТаблицаКоличеств.Характеристика,
    СУММА(ТаблицаКоличеств.Колво) КАК Колво
ИЗ
    ТаблицаКоличеств КАК ТаблицаКоличеств

СГРУППИРОВАТЬ ПО
    ТаблицаКоличеств.Номенклатура,
    ТаблицаКоличеств.Характеристика


Задача несколько упрощена. В реальности колонок для группировки больше и периоды, которые можно свернуть, могут встречаться чаще или реже.
1 Ёпрст
 
гуру
10.11.16
14:34
(0) а с периодом че делать ?
2 Ёпрст
 
гуру
10.11.16
14:34
и по каким понятным причинам "не подойдёт" ?
3 PiotrLoginov
 
10.11.16
14:42
(1) с датой? можно брать минимум в сворачиваемом периоде
(2) если воспользоваться запросом, который в (0), то по Характеристика 1 записи свернутся не с 01.10 по 06.10, а вообще за весь период
4 Ёпрст
 
гуру
10.11.16
14:43
(3) А тебе разве, не так надо ?
5 Ёпрст
 
гуру
10.11.16
14:44
как ты определяешь "период" свой ?
6 PiotrLoginov
 
10.11.16
14:51
мне надо, чтобы, грубо говоря, сворачивались периоды, в которых Характеристика не менялась.


Вот, начиная с 01.10 до 06.10 Характеристика была одна и та же. Этот период можно свернуть. Затем начинаются движения с Характеристика 2. Затем вновь идут движения (в данном случае одно движение) с Характеристика 1.
7 Ёпрст
 
гуру
10.11.16
15:15
(6) ну вот у тебя 3 записи

01.10        Товар А         Характеристика 1    2
05.10        Товар А         Характеристика 1    3
09.10        Товар А         Характеристика 1    5

почему ты "свернул" 2 , а не 3 ?
8 Ёпрст
 
гуру
10.11.16
15:16
как ты должен определить "период", который надо сворачивать ?
01.10 - 05.10 или 05.10-09.10 ?
9 Basilio
 
10.11.16
15:19
(6) ИМХО в запросе не получится.
10 Ёпрст
 
гуру
10.11.16
15:20
(9) получится, если автор скажет, по каким признакам он хочет искать период свой.
11 Ёпрст
 
гуру
10.11.16
15:20
фифо же в запросе реализовано, подумаешь, долго, зато работает
12 Basilio
 
10.11.16
15:20
(10) Так (6) же: мне надо, чтобы, грубо говоря, сворачивались периоды, в которых Характеристика не менялась.
13 Ёпрст
 
гуру
10.11.16
15:21
(12) ок. В (7) это какой период ?
14 Basilio
 
10.11.16
15:23
(0) так тебе надо?
01 q
02 q
03 q
04 w
05 w
06 q
07 q
======>
01 q
04 w
06 q
15 DrShad
 
10.11.16
15:28
(11) и нифига не долго, ибо выгрузка результата в ТЗ и пост обработка все равно дольше
16 aleks_default
 
10.11.16
17:49
соединяй саму с собой по  период больше  и характеристика не равна текущей записи и бери минимум от периода - получишь даты когда менялась характеристика - а дальше дело техники
17 PiotrLoginov
 
10.11.16
18:27
(11)  да вот, фифо в запросе давно пройденный этап, а текущий сабж что-то никак...

(14) да, совершенно верно

(16) да, точно, сам уже понял, что нужно получить даты, когда менялась характеристика, но не мог сообразить, как-то их получить, так что спасибо! Сейчас отвлекся от вопроса, через часок вернусь к этой задаче...
18 PiotrLoginov
 
10.11.16
18:27
(17) *как-то = как
Программист всегда исправляет последнюю ошибку.