|
СКД неправильно сворачивает суммы, увеличивает | ☑ | ||
---|---|---|---|---|
0
Coldboy
19.11.13
✎
17:02
|
Здравствуйте. Работаю в скд через набор данных, туда подаю таблицу, сама таблица верная, ее вывод идет не корректно, а именно некоторые суммы он затраивает, хотя я ставил поля группировки, вроде бы правильные, суммы не корректно у тех, у кого реквизиты еще ниже располагаются.
|
|||
1
mikecool
19.11.13
✎
17:03
|
проверяй, косяк твой
|
|||
2
Coldboy
19.11.13
✎
17:07
|
не спорю. но куда смотреть, таблица значений верные держит поля, думаю косяк в составление уже СКД самого отчета, но не пойму. как убрать затраивание или задваивание.
|
|||
3
acsent
19.11.13
✎
17:07
|
обычно задваивает в результате неверных (неоднозначных) соединений
|
|||
4
Пеппи
19.11.13
✎
17:07
|
а в группировках суммы верные?
|
|||
5
Artful Den
19.11.13
✎
17:14
|
(0) Выведи детальные записи и посмотри, что у тебя получается в результате запроса
|
|||
6
FidelBoom
19.11.13
✎
17:15
|
(5)+1 Начинай с малого, просто вытащи все записи с таблицы и выведи список в отчете. посмотри что там
|
|||
7
France
19.11.13
✎
17:15
|
есть группировки в запросе, потом по тем же полям делаются группировки в СКД - и вуаля, задвоенные и затроенные.
|
|||
8
Coldboy
20.11.13
✎
10:49
|
обрабатываю данные программно.
ТЗ получается такого вида Колонка1 Колонка2 Колонка3 Сумма Сумма2 Даныые1 Данные2 Данные3 Число Число2 Вывожу в СКД колонки в следующем порядка Отчет Колонка1 Колонка2 Число*(КоличествоДанные в Колонке3) Колонка3 Число2 Корчое в группировках неправильно сворачивает или задваивает, ресурс Сумма(); |
|||
9
Coldboy
20.11.13
✎
10:53
|
(7) пихаю уже тз готовую.
|
|||
10
Coldboy
20.11.13
✎
11:16
|
up
|
|||
11
CHerypga
20.11.13
✎
11:23
|
Если подаешь таблицу, то СКД сама не может определить роль каждого из поданных реквизитов. То есть Измерение ли это, или же это Период и т.д. Роли в таком случае нужно настроить самому
|
|||
12
Coldboy
20.11.13
✎
11:26
|
ну я же сам указываю, что это ресурс или нет. а что значит роли?
|
|||
13
Coldboy
20.11.13
✎
11:30
|
у меня ресурс затраивается или задваивается.
|
|||
14
CHerypga
20.11.13
✎
11:32
|
(12) Это на вкладке Наборы данных когда выбираешь свой набор. В случае если скармливаешь таблицу то это набор данных объект. Внизу Имя объекта данных, а вверху таблица. И там у каждого поля есть Роль
|
|||
15
CHerypga
20.11.13
✎
11:33
|
Если же например делать набор данных запрос, то после написания запроса СКД сама сможет определить роли для всех полей. Попробуй сделать что-нибудь через запрос, посмотри какие роли там будут стоять. По аналогии сделаешь со своим набором
|
|||
16
Coldboy
20.11.13
✎
11:33
|
(14) я понял. тока что ставить я хз, если ресурс затраивается и задвивается, а нужно показать, что он принадлежит поступлению и не измерение это.
|
|||
17
CHerypga
20.11.13
✎
11:33
|
(16) Свою таблицу ты как-нибудь запросом можешь получить?
|
|||
18
Coldboy
20.11.13
✎
11:36
|
я ее програмно с помощью запрос и доп действий
ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТЗОплат",ТЗОплаченных); СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных); ДокументРезультат = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДАнныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ДокументРезультат.ОтображатьСетку = Ложь; ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0); ДокументРезультат.Показать(); |
|||
19
CHerypga
20.11.13
✎
11:40
|
(18) Программно быстро помочь не смогу, т.к редко пользуюсь этим. Вот как в мышкотыкательном интерфейсе сделать подсказать наверное смогу.
Попробуй просто создать внешний отчет, забить свой запрос в набор данных там и посмотреть что получится. |
|||
20
Coldboy
20.11.13
✎
12:02
|
короче у меня вот такая вещь:
Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОборотыДтКт.Регистратор, | ХозрасчетныйОборотыДтКт.СуммаОборот |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, Регистратор, , , СчетКт = &Счет6001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт |ГДЕ | ХозрасчетныйОборотыДтКт.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг"; Запрос.УстановитьПараметр("НачПериода",НачПериода); Запрос.УстановитьПараметр("КонПериода",КонецДня(КонПериода)); Запрос.УстановитьПараметр("Счет6001",ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.01")); Запрос.УстановитьПараметр("Организация",Организация); ТЗ = Запрос.Выполнить().Выгрузить(); ТЗОплаченных = Новый ТаблицаЗначений; ТЗОплаченных.Колонки.Добавить("Контрагент"); ТЗОплаченных.Колонки.Добавить("ДоговорКонтрагента"); ТЗОплаченных.Колонки.Добавить("Поступление"); ТЗОплаченных.Колонки.Добавить("Оплата"); ТЗОплаченных.Колонки.Добавить("СуммаПоступления"); ТЗОплаченных.Колонки.Добавить("СуммаОплаты"); ТЗОплаченных.Колонки.Добавить("Просрочка"); ТЗОплаченных.Колонки.Добавить("МаксПросрочка"); ТЗОплаченных.Колонки.Добавить("Просрочка1"); //от 1 до 7 ТЗОплаченных.Колонки.Добавить("Просрочка2"); // от 8 до 14 ТЗОплаченных.Колонки.Добавить("Просрочка3"); // от 15 до 30 ТЗОплаченных.Колонки.Добавить("Просрочка4"); // уже платить Для каждого СтрокаТЗ из ТЗ Цикл Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОборотыДтКт.Регистратор, | ХозрасчетныйОборотыДтКт.СуммаОборот, | ХозрасчетныйОборотыДтКт.СубконтоКт3, | ХозрасчетныйОборотыДтКт.Период КАК Период |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт( | , | , | Регистратор, | СчетДт = &Счет6001, | , | , | , | Организация = &Организация | И СубконтоДт1 = &Контрагент | И СубконтоДт2 = &ДоговорКонтрагента | И СубконтоДт3 = &ДокументПоступления) КАК ХозрасчетныйОборотыДтКт |ГДЕ | ХозрасчетныйОборотыДтКт.Регистратор ССЫЛКА Документ.СписаниеСРасчетногоСчета | |УПОРЯДОЧИТЬ ПО | Период"; Запрос.УстановитьПараметр("Организация",Организация); Запрос.УстановитьПараметр("Контрагент",СтрокаТЗ.Регистратор.Контрагент); Запрос.УстановитьПараметр("ДоговорКонтрагента",СтрокаТЗ.Регистратор.ДоговорКонтрагента); Запрос.УстановитьПараметр("ДокументПоступления",СтрокаТЗ.Регистратор); Выборка = ЗАпрос.Выполнить().Выгрузить(); Если Выборка.Количество()>0 Тогда СуммаОплат = Выборка.Итог("СуммаОборот"); ПоследняяОплата = Выборка[Выборка.Количество()-1].Период; РазницаДат = Окр((КонецДня(ТекущаяДата())-КонецДня(СтрокаТЗ.Регистратор.Дата))/86400,0); Для каждого пСтрокаТЗ из Выборка Цикл мСтрокаТЗ = ТЗОплаченных.Добавить(); мСтрокаТЗ.Контрагент = СтрокаТЗ.Регистратор.Контрагент; мСтрокаТЗ.ДоговорКОнтрагента = СТрокаТЗ.Регистратор.ДоговорКонтрагента; мСтрокаТЗ.Поступление = СтрокаТЗ.Регистратор; мСТрокаТЗ.Оплата = пСтрокаТЗ.Регистратор; мСтрокаТЗ.СуммаПоступления = СтрокаТЗ.СуммаОборот; мСтрокаТЗ.СуммаОплаты = пСтрокаТЗ.СуммаОборот; мСтрокаТЗ.Просрочка = Окр((КонецДня(пСтрокаТЗ.Регистратор.Дата)-КонецДня(СтрокаТЗ.Регистратор.Дата))/86400,0); мСтрокаТЗ.МаксПросрочка = СТрокаТЗ.Регистратор.ДоговорКонтрагента.СрокОплаты; Если (СтрокаТЗ.суммаОборот - СуммаОплат) >0 Тогда Если СТрокаТЗ.Регистратор.ДоговорКонтрагента.СрокОплаты = 0 Тогда мСтрокаТЗ.Просрочка4 = СтрокаТЗ.суммаОборот - СуммаОплат; Продолжить; КонецЕсли; РезультатПросрочки = (СТрокаТЗ.Регистратор.ДоговорКонтрагента.СрокОплаты-РазницаДат); Если РезультатПросрочки <= 0 Тогда мСтрокаТЗ.Просрочка4 = СтрокаТЗ.суммаОборот - СуммаОплат; ИначеЕсли РезультатПросрочки>14 Тогда мСтрокаТЗ.Просрочка3 = СтрокаТЗ.суммаОборот - СуммаОплат; ИначеЕсли РезультатПросрочки>7 Тогда мСтрокаТЗ.Просрочка2 = СтрокаТЗ.суммаОборот - СуммаОплат; ИначеЕсли РезультатПросрочки>0 Тогда мСтрокаТЗ.Просрочка1 = СтрокаТЗ.суммаОборот - СуммаОплат; КонецЕсли; КонецЕсли; КОнецЦикла; КонецЕсли; КонецЦикла; на выходе получаю ТЗ и загружаю ее в СКД, СуммаОплаты мне нужно выводить на уровне контрагент,договорконтрагента и поступление, тык вот при выводе поступления он ее умножает на то количество, скоко строчек с этим поступлением, а не группирует. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |