|
Кросс-отчет в СКД | ☑ | ||
|---|---|---|---|---|
|
0
ДеловаяКолбаса
06.12.13
✎
11:48
|
Всем привет.
Пытаюсь сделать кросс-отчет по счетам контрагентов, конфигурация БП 3.0. В строках отчета должны быть контрагенты, в столбцах порядковый номер счета (1, 2, 3 или еще лучше "Счет №1", "Счет №2", "Счет №3" и.т.д.). На пересечении строки и столбца должен находиться номер счета контрагента (планирую в дальнейшем добавить еще один столбец с названием банка). Написал следующий запрос, выдающий необходимые данные. ВЫБРАТЬ Контрагенты.Наименование КАК Контрагент, БанковскиеСчета.НомерСчета КАК Счет, БанковскиеСчета.Банк.Наименование КАК Банк ПОМЕСТИТЬ Табл_Контрагенты_Счета ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец ГДЕ НЕ БанковскиеСчета.НомерСчета ЕСТЬ NULL; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Контрагенты_Счета.Контрагент КАК Контрагент, КОЛИЧЕСТВО(Контрагенты_Счета_1.Контрагент) КАК Номер, Контрагенты_Счета.Счет КАК Счет, Контрагенты_Счета.Банк КАК Банк ИЗ Табл_Контрагенты_Счета КАК Контрагенты_Счета ВНУТРЕННЕЕ СОЕДИНЕНИЕ Табл_Контрагенты_Счета КАК Контрагенты_Счета_1 ПО (Контрагенты_Счета_1.Контрагент = Контрагенты_Счета.Контрагент) И (Контрагенты_Счета_1.Счет <= Контрагенты_Счета.Счет) СГРУППИРОВАТЬ ПО Контрагенты_Счета.Контрагент, Контрагенты_Счета.Счет, Контрагенты_Счета.Банк УПОРЯДОЧИТЬ ПО Контрагенты_Счета.Контрагент В результате запроса получаю таблицу вида |Контрагент| Номер | Счет | | К1 | 1 | Сч1_1 | | К1 | 2 | Сч1_2 | | К1 | 3 | Сч1_3 | | К1 | 4 | Сч1_4 | | К2 | 1 | Сч2_1 | | К2 | 2 | Сч2_2 | | К2 | 3 | Сч2_3 | | К3 | 1 | Сч3_1 | | К3 | 1 | Сч3_2 | В настройках СКД добавляю таблицу. В строках - поле Контрагент, в столбцах - поле Номер, выбранные поля - поле Счет. В результате вместо цифр 1, 2, 3, 4 в столбцах получаю 10, 6, 3. Ячейки таблицы, разумеется, пустые. 10=1+2+3+4, 6=1+2+3, 3=1+2. То есть СКД производит суммирование по полю, а это суммирование мне не нужно. Как исправить ситуацию средствами СКД, без программирования? |
|||
|
1
ДеловаяКолбаса
06.12.13
✎
13:56
|
up
То есть в отчете планирую получить следующую таблицу | | 1 | 2 | 3 | 4 | | К1 | Сч1_1 | Сч1_2 | Сч1_3 | Сч1_4 | | К2 | Сч2_1 | Сч2_2 | Сч2_3 | NULL | | К3 | Сч3_1 | Сч3_2 | NULL | NULL | а получаю | | 10 | 6 | 3 | | К1 | NULL | NULL | NULL | | К2 | NULL | NULL | NULL | | К3 | NULL | NULL | NULL | Возможно, если бы удалось поле Номер привести к типу Строка, то СКД перестала бы суммировать числовые поля столбцов. Но насколько мне известно, число в строку в запросе преобразовать нельзя. Ни ВЫРАЗИТЬ ... КАК ни ПРЕДСТАВЛЕНИЕ не делают такого преобразования (поправьте меня, если ошибаюсь). Возможно ли как-нибудь исправить/дополнить запрос или изменить настройки СКД, чтобы получить желаемый результат? |
|||
|
2
ДеловаяКолбаса
06.12.13
✎
18:22
|
up
|
|||
|
3
zladenuw
06.12.13
✎
18:31
|
есть вычисляемое поле пишешь Строка(ТвоеЗначение)
|
|||
|
4
ДеловаяКолбаса
07.12.13
✎
13:24
|
Пробовал, создал вычисляемое поле, в качестве значения написал "Счет № "+Строка(Номер)
В результате в столбцах получил "Счет № 10", "Счет № 6", "Счет № 3". Видимо, суммирование значений происходит еще до расчёта вычисляемых полей. Видимо, придется делать таблицу соответствия | Число | Строка | | 1 | "1" | | 2 | "2" | .................. Может, еще есть какие варианты? |
|||
|
5
ДеловаяКолбаса
08.12.13
✎
15:54
|
Пытаюсь получить простейшую таблицу
| | Б1 | Б2 | | А1 | В1 | В2 | | А2 | В3 | В4 | Для этого пишу запрос ВЫБРАТЬ "А1" КАК Поле1, "Б1" КАК Поле2, "В1" КАК Поле3 ОБЪЕДИНИТЬ ВЫБРАТЬ "А1", "Б2", "В2" ОБЪЕДИНИТЬ ВЫБРАТЬ "А2", "Б1", "В3" ОБЪЕДИНИТЬ ВЫБРАТЬ "А2", "Б2", "В4" В СКД добавляю детальные записи. Получаю таблицу | Поле1 | Поле2 | Поле3| | А1 | Б1 | В1 | | А1 | Б2 | В2 | | А2 | Б1 | В3 | | А2 | Б2 | В4 | Теперь вместо детальных записей пытаюсь получить кросс-отчет. Удаляю детальные записи, добавляю таблицу, в строках - Поле1, в столбцах - Поле2, выбранные поля - Поле3. Получаю следующее: | Поле1 | Б1 | Б2 | | А1 | | | | А2 | | | Строки и столбцы отобразились нормально, а ячейки таблицы почему-то пустые. Подскажите, в чем ошибка? Как отобразить кросс-отчет из запроса? |
|||
|
6
ДеловаяКолбаса
08.12.13
✎
19:41
|
Разобрался с этими заданиями.
В СКД на закладке Ресурсы необходимо было добавить поле Счет со значением Максимум(Счет), тогда СКД не производит суммирования по числовому полю, а выдает правильный результат. В (5) тоже самое. Достаточно на закладке Ресурсы в СКД добавить Поле3 со значением Максимум(Поле3), как получаем | Поле1 | Б1 | Б2 | | |Поле3|Поле3| | А1 | В1 | В2 | | А2 | В3 | В4 | Решение было навеяно следующей темой: http://forum.infostart.ru/forum26/topic100332/ |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |