Имя: Пароль:
1C
1С v8
Помогите свернуть
, , ,
0 mau89
 
21.05.13
08:53
Здравствуйте в общем не могу додумать как свернуть результат запроса.
результат получается таким
ФИО    / результат/ПочтовыйСбор/ Получатель
Иванов / 1500     / -          / Иванова И.И.
Иванов / 1500     / -          / Иванова П.П.
Иванов /          / 100        / -
Петров /500       / -          / Петрова П.П.
Петров / 500      / -          / Петрова И.И.
Сидоров/1000      / -          / Сидорова С.С.
Сидоров/          / 200        / -
Михайлов/         / 300        / -
Михайлов/10000    / -          / Михайлова М.М.

Нужно свернуть по ФИО, чтоб результат получился таким

ФИО    / результат/ПочтовыйСбор/ Получатель
Иванов / 1500     / -          / Иванова И.И.
Иванов / 1500     / 100        / Иванова П.П.
Петров /500       / -          / Петрова П.П.
Петров / 500      / -          / Петрова И.И.
Сидоров/1000      / 200        / Сидорова С.С.
Михайлов/10000    / 300        / Михайлова М.М.

Если просто сворачивать
РезультатЗапроса.Свернуть("ФИО, Получатель", "результат, почтовыйсбор");, то не сворачивает, что я делаю не так?
1 mikecool
 
21.05.13
08:55
у тебя разные все фио и получатели, ваш кеп
2 scanduta
 
21.05.13
08:55
Так просто сверткой не получится
3 mau89
 
21.05.13
08:56
(2) по этому я и обратился, у меня мыслей нет просто как это реализовать
4 scanduta
 
21.05.13
08:57
Иванов / 1500     / -          / Иванова И.И.
Иванов / 1500     / -          / Иванова П.П.
Иванов /          / 100        / -


определись для начала по какому алгоритму ты эту сотку распределять будешь
5 Serg_1960
 
21.05.13
09:00
У этих пчёл какой0то неправильный почтовый сбор - абстрактный :)
6 mau89
 
21.05.13
09:02
(4) в запросе есть данные на получателя почтового сбора, т.е я могу узнать кому она будет распределяться
(5) не то слово :)
7 Serg_1960
 
21.05.13
09:04
Сначало по "ФИО" суммировать "результат" и "почтовый сбор", а потом объединить с "ФИО"/"Получатель", пропорционально разделяя "почтовый сбор" каждому... как-то типа так
8 EugeniaK
 
21.05.13
09:04
(6) Вопрос в том, сумму сбора нужно отнести на последнюю строку по получателю, разбить по 50 руб на 2 строки, любой вариант подходит.
9 mau89
 
21.05.13
09:06
(7) так не получиться, если сворачивать по фио, то тот же иванов будет платить 3000, одной, а надо по 1500 двум.
(8) на кого 100 р почтового сбора повесить я знаю
10 EugeniaK
 
21.05.13
09:09
Как, вариант, в пакетном запросе сделать временную таблицу с итогами
Иванов / 3000     / 100        / Иванова П.П.
Сидоров/1000      / 200        / Сидорова С.С.
Михайлов/10000    / 300        / Михайлова М.М.

И потом ее соединять с начальной
ФИО - из исходной
результат - из исходной
ПочтовыйСбор - из итогов (либо выбираешь по какому-то принципу строку с получателем либо размазываешь как почтовыйСбор*РезультатИсходный/РезультатИтоги)
Получатель - из исходной
11 боксер
 
21.05.13
09:22
В полях Результат и почтовый сбор должны быть числа, а не -
12 mau89
 
21.05.13
09:24
(10) чет не совсем понял, как это реализовать, и как должно выглядеть в итоге
(11) - это для наглядности, там пустое значение
13 cw014
 
21.05.13
09:26
Попробуй в "ресурсах" таблицы вместо "-" ставить 0
14 боксер
 
21.05.13
09:45
(12) пустое это ноль?
должно все сворачивать
а выгружать в тз и сворачивать пробовал?
15 mau89
 
21.05.13
09:50
(14) ну по крайней мере если сворачивать вот так
РезультатЗапроса.Свернуть("ФИО", "результат, почтовыйсбор");
то все сворачивает, а если добавляется получатель то не хочет
16 боксер
 
21.05.13
09:55
получатель значит составной тип или не фиксир. длины строка
17 cw014
 
21.05.13
09:57
Иванов / 1500     / -          / Иванова П.П.
Иванов /          / 100        / -

А как он должен угадать, что получатель должен быть "Иванова П.П." а не "Иванова И.И."???
18 mau89
 
21.05.13
10:02
(16) ага, спасибо, взял другой получателя, и все заработало (17) в этом была проблема, он не мог свернуть по получателю, нашел другого где данные есть кому эту 100 писать, свернуло
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.