|
Вывод итогов в отчете | ☑ | ||
---|---|---|---|---|
0
andrig
21.06.18
✎
11:33
|
как вывести итоги по партнеру.
В середине закоммментил. не выходит из цикла РезультатЗапроса = Запрос.Выполнить(); ТабЗн = РезультатЗапроса.Выгрузить(); ТабЗн.Сортировать("Партнер,Номенклатура,Месяц"); ТабЗн.Свернуть("Партнер,Номенклатура,Месяц","Количество,Сумма1"); ТЗ1 = Новый ТаблицаЗначений; ТЗ1.Колонки.Добавить("Месяц"); ТЗ2 = Новый ТаблицаЗначений; ТЗ2.Колонки.Добавить("Месяц"); Д1 = НачалоМесяца(Период1.ДатаНачала); Пока Д1 <= НачалоМесяца(Период1.ДатаОкончания) Цикл НовСтр = ТЗ1.Добавить(); НовСтр.Месяц = Д1; Д1 = ДобавитьМесяц(Д1,1); КонецЦикла; Д = НачалоМесяца(Период2.ДатаНачала); Пока Д <= НачалоМесяца(Период2.ДатаОкончания) Цикл НовСтр = ТЗ2.Добавить(); НовСтр.Месяц = Д; Д = ДобавитьМесяц(Д,1); КонецЦикла; Если Не ТЗ1.Количество()= Тз2.Количество() Тогда Сообщить("Количество периодов не совпадает"); Возврат; КонецЕсли; ТзК = ТабЗн.Скопировать(); ТЗк.Свернуть("Партнер,Номенклатура","Количество,Сумма1"); ТЗк.Сортировать("Партнер,Номенклатура"); Кол = Тз1.Количество(); ТекКл = ""; ПредКл = ""; ТекНом = ""; ПредНом = ""; //ТзК.Сдвинуть(0,1); Для каждого Стр Из ТЗк Цикл ТекКл = Стр.Партнер; ТекНом = Стр.Номенклатура; Если НЕ (ТекКл = ПредКл)Тогда Если не (ПредКл = "") Тогда ТабличныйДокумент.ЗакончитьГруппуСтрок(); КонецЕсли; ОбластьБаза = Макет.ПолучитьОбласть("База|Клиент"); ОбластьБаза.Параметры.Клиент = стр.Партнер; ТабличныйДокумент.Вывести(ОбластьБаза); ТабличныйДокумент.НачатьГруппуСтрок(); ОбластьБаза = Макет.ПолучитьОбласть("База|Клиент"); ОбластьБаза.Параметры.Клиент = ""; ТабличныйДокумент.Вывести(ОбластьБаза); // // вывод значений по клиенту !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // // ТзК = ТабЗн.Скопировать(); //ТЗк.Свернуть("Партнер","Сумма1"); //Кол = Тз1.Количество(); // //ТекКл = ""; //ПредКл = ""; ////ТзК.Сдвинуть(0,1); //Для каждого Стр Из ТЗк Цикл // // ТекКл = Стр.Партнер; // // //Выводим секцию 1 колонка - название Партнера // Для Инд = 0 по кол - 1 Цикл // // пер1 = тз1.Получить(инд); // пар = Новый Структура("Партнер,Месяц",стр.Партнер,пер1.Получить(0)); // // Сум1 = Неопределено; // Сум1 = ТабЗн.НайтиСтроки(пар); // // сумма1 = 0; // сумма2 = 0; // Итого1 = 0; // Итого2 = 0; // Если не сум1.Количество()= 0 Тогда // Сумма1 = Сум1[0].сумма1; // КонецЕсли; // // Пер2 = тз2.Получить(инд); // // пар = Новый Структура("Партнер,Месяц",стр.Партнер,пер2.Получить(0)); // // Сум2 = ТабЗн.НайтиСтроки(пар); // // Если не сум2.Количество() = 0 Тогда // Сумма2 = Сум2[0].сумма1; // КонецЕсли; // // Если НЕ (ТекКл = ПредКл)Тогда // // ОбластьБаза = Макет.ПолучитьОбласть("База|Клиент"); // ОбластьБаза.Параметры.Клиент = стр.Партнер; // ТабличныйДокумент.Вывести(ОбластьБаза); // ПредКл = ТекКл; // // КонецЕсли; // // // // //Если пер1.Получить(0) = Период1.ДатаНачала Тогда // // ОбластьПер1 = Макет.ПолучитьОбласть("База|Пер1"); // //ОбластьПер1.Параметры.Кол = ; // ОбластьПер1.Параметры.Сумм = Сумма1; // ТабличныйДокумент.Присоединить(ОбластьПер1); // // // // ОбластьПер2 = Макет.ПолучитьОбласть("База|Пер2"); // //ОбластьПер2.Параметры.Кол = ; // ОбластьПер2.Параметры.Сумм = Сумма2; // ТабличныйДокумент.Присоединить(ОбластьПер2); // // // // // // КонецЦикла; // // //КонецЦикла; // ОбластьБазаН = Макет.ПолучитьОбласть("База|Номенкл"); ОбластьБазаН.Параметры.Ном = ТекНом; ТабличныйДокумент.присоединить(ОбластьБазаН); ПредКл = ТекКл; //продолжить; Иначе ОбластьБаза = Макет.ПолучитьОбласть("База|Клиент"); ОбластьБаза.Параметры.Клиент = ""; ТабличныйДокумент.Вывести(ОбластьБаза); ОбластьБазаН = Макет.ПолучитьОбласть("База|Номенкл"); ОбластьБазаН.Параметры.Ном = ТекНом; ТабличныйДокумент.присоединить(ОбластьБазаН); КонецЕсли; //Выводим секцию 1 колонка - название Партнера Для Инд = 0 по кол - 1 Цикл пер1 = тз1.Получить(инд); пар = Новый Структура("Партнер,Номенклатура,Месяц",стр.Партнер,стр.Номенклатура,пер1.Получить(0)); Сум1 = Неопределено; Колл1 = Неопределено; Сум1 = ТабЗн.НайтиСтроки(пар); Кол1 = ТабЗн.НайтиСтроки(пар); сумма1 = 0; сумма2 = 0; Колл1 = 0; Колл2 =0; //Итого1 = 0; //Итого2 = 0; Если не сум1.Количество()= 0 Тогда Сумма1 = Сум1[0].сумма1; Колл1 = Кол1[0].Количество; КонецЕсли; Пер2 = тз2.Получить(инд); пар = Новый Структура("Партнер,Номенклатура,Месяц",стр.Партнер,стр.Номенклатура,пер2.Получить(0)); Сум2 = ТабЗн.НайтиСтроки(пар); Кол2 = ТабЗн.НайтиСтроки(пар); Если не сум2.Количество() = 0 Тогда Сумма2 = Сум2[0].сумма1; Колл2 = Кол2[0].Количество; КонецЕсли; //ПредКл = ТекКл; //Если пер1.Получить(0) = Период1.ДатаНачала Тогда ОбластьПер1 = Макет.ПолучитьОбласть("База|Пер1"); ОбластьПер1.Параметры.Кол = Колл1; ОбластьПер1.Параметры.Сумм = Сумма1; ТабличныйДокумент.Присоединить(ОбластьПер1); ОбластьПер2 = Макет.ПолучитьОбласть("База|Пер2"); ОбластьПер2.Параметры.Кол = Колл2; ОбластьПер2.Параметры.Сумм = Сумма2; ТабличныйДокумент.Присоединить(ОбластьПер2); // // //Итого1 = Итого1 + Сумма1; //Итого2 = Итого2 + Сумма2; // КонецЦикла; КонецЦикла; ТабличныйДокумент.ЗакончитьГруппуСтрок(); |
|||
1
hhhh
21.06.18
✎
11:49
|
(0) спасибо
|
|||
2
AlexKulikov
21.06.18
✎
11:49
|
Эм, а самом запросе, есть же вкладка, где можно установить группировки, ну и подсчитать итог (Сумма)
|
|||
3
dchumak
21.06.18
✎
11:51
|
Итоги в запросе.
Обход результата запроса по группировкам. Зачем изобретать велосипед? |
|||
4
AlexKulikov
21.06.18
✎
11:54
|
Ну а дальше по стандарту, выводишь данные с помощью обхода по группировкам
|
|||
5
AlexKulikov
21.06.18
✎
11:54
|
А блин, уже написали)
|
|||
6
andrig
21.06.18
✎
12:36
|
[url=https://radikal.ru][img]https://a.radikal.ru/a08/1806/29/923b81e1d520.png[/img][/url]
Надо несколько периодов сравнения |
|||
7
andrig
21.06.18
✎
12:40
|
||||
8
novichok79
21.06.18
✎
12:41
|
а группировка по колонкам в СКД не тянет уже?
|
|||
9
andrig
21.06.18
✎
12:47
|
а группировка по колонкам в СКД не тянет уже?
a можно поподробнее? |
|||
10
novichok79
21.06.18
✎
12:49
|
(9) берете продажи, суете в СКД, делаете вывод в виде таблицы - строки контрагенты, колонки - период продаж.
|
|||
11
novichok79
21.06.18
✎
12:50
|
Партнер, Номенклатура - группировки строк
Месяц - группировка колонок Количество, Сумма - ресурсы. |
|||
12
andrig
21.06.18
✎
13:05
|
будет апр17,март17,июнь17....
а надо апр17,апр18,март17,март18 ... |
|||
13
hhhh
21.06.18
✎
13:08
|
(12) это вы в сортировке решите, это другой вопрос, тут вопрос-то про итоги.
|
|||
14
andrig
21.06.18
✎
13:16
|
в скд с итогами понятно. вопрос в сортировке
|
|||
15
novichok79
21.06.18
✎
13:25
|
Делаете вычисляемые поля - номер месяца и год месяца, группировку делаете по месяцу, а сортировку делаете сначала по номеру месяца, потом по году
|
|||
16
andrig
21.06.18
✎
13:35
|
ок.
Запрос такой? ВЫБРАТЬ РеализацияТоваровУслугТовары.Ссылка.Партнер КАК Партнер, РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество, СУММА(РеализацияТоваровУслугТовары.СуммаСНДС) КАК Сумма, НАЧАЛОПЕРИОДА(РеализацияТоваровУслугТовары.Ссылка.Дата, МЕСЯЦ) КАК Месяц, 0 КАК Месяц1 ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.Проведен И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2 И РеализацияТоваровУслугТовары.Ссылка.Партнер = &Партнер СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Ссылка.Партнер, НАЧАЛОПЕРИОДА(РеализацияТоваровУслугТовары.Ссылка.Дата, МЕСЯЦ) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РеализацияТоваровУслугТовары.Ссылка.Партнер, РеализацияТоваровУслугТовары.Номенклатура, СУММА(РеализацияТоваровУслугТовары.Количество), СУММА(РеализацияТоваровУслугТовары.СуммаСНДС), 0, НАЧАЛОПЕРИОДА(РеализацияТоваровУслугТовары.Ссылка.Дата, МЕСЯЦ) ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.Проведен И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата3 И &Дата4 И РеализацияТоваровУслугТовары.Ссылка.Партнер = &Партнер СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Ссылка.Партнер, НАЧАЛОПЕРИОДА(РеализацияТоваровУслугТовары.Ссылка.Дата, МЕСЯЦ) УПОРЯДОЧИТЬ ПО Партнер, Номенклатура, Месяц |
|||
17
novichok79
21.06.18
✎
13:37
|
(16) я не буду работать за вас, см. отчет ВыручкаИСебестоимостьПродаж в УТ 11
|
|||
18
andrig
21.06.18
✎
13:41
|
спасибо
|
|||
19
novichok79
21.06.18
✎
13:42
|
еще в УТ 11.4.3 есть отчеты "ПродажиСравнениеАналогичныхПериодов" и "ПродажиСравнениеДвухПериодов". я правда не смотрел как они работают.
|
|||
20
andrig
21.06.18
✎
13:44
|
я смотрел . все очень сложно
|
|||
21
novichok79
21.06.18
✎
13:48
|
(20) а типа в УТ 11 бывает просто? они и ковыряться в носу будут ректально.
|
|||
22
andrig
21.06.18
✎
13:56
|
согласен
|
|||
23
andrig
22.06.18
✎
08:21
|
и все таки кто нибудь может помочь с кодом без СКД?
|
|||
24
novichok79
22.06.18
✎
08:31
|
(23) а чего сложного? вывести колонки через присоединить?
|
|||
25
andrig
22.06.18
✎
09:54
|
еврейский ответ
|
|||
26
hhhh
22.06.18
✎
10:09
|
(25) ну заведите переменную ИтогПоклиенту, в нужный момент суммируйте. Заведите в макете секцию ИтогПоКлиенту, в нужный момент заполняйте полем ИтогПоКлиенту и вывести в табдок.
это же всё технически элементарно, скукота, никто не будет за вас просто тупо сидеть писать. Сделайте усилие над собой, минут за 20 всё сделаете. |
|||
27
andrig
22.06.18
✎
10:14
|
я вас понимаю. скукота когда делал 20 раз. Когда первый раз то весело.
|
|||
28
hhhh
22.06.18
✎
10:18
|
(27) я это делал 10 лет назад. Поэтому подзабыл. Сейчас во времена скд - когда в 30 раз всё быстрее можно сделать и без всякого написания кода, неужеля я сейчас полезу эту дурь вспоминать.
|
|||
29
andrig
22.06.18
✎
10:35
|
Это я и хотел услышать. Значит в скд такой отчет можно сделать.
|
|||
30
andrig
22.06.18
✎
10:36
|
Еще вопрос. На этом форуме файлы нельзя прикреплять?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |