Дополнительные «уникальные» итоги. Реализация в СКД.

Программирование - Практика программирования

Иногда Заказчику требуется расчет итоговых значений по данным, не подпадающим под правило формирования строки «ИТОГО» в отчете СКД.

Надеюсь, кому-нибудь пригодится. Иногда Заказчику требуется расчет итоговых значений по данным, не подпадающим под правило формирования строки «ИТОГО» в отчете.

Во многом информация, озвученная ниже, собиралась и перерабатывалась из разных источников по работе с СКД. Даже, возможно, есть проще решение, но моя реализация, надеюсь, не хуже (реализуется, как мне кажется, просто).  На уникальность идеи не претендую.

Естественно, думаю, можно реализовать и «кодированием», но я пошел другим путем.

 

Итак, пример:

Исходные данные

Имеем отчет (который реализован в СКД "отчет-таблица"):

Наименование

1(янв)

2(февр)

12(дек)

Итого

ГруппаТовара1

 

 

 

 

Сумма по строке

ГруппаТовара2

 

 

 

 

Сумма по строке

ГруппаТовара3

 

 

 

 

Сумма по строке

 

 

 

 

Сумма по строке

ГруппаТовараN

 

 

 

 

Сумма по строке

Итого

Сумма по столбцу

Сумма по столбцу

Сумма по столбцу

Сумма по столбцу

Сумма по столбцу

 

Необходимо

Добавить итоги (именно в конце таблицы, группировку «наименований» не меняем), которые считает значение только определенных Групп Товаров (например, «услуг»).

 

Показатель

1(янв)

2(февр)

12(дек)

Итого

ГруппаТовара1

 

 

 

 

Сумма по строке

ГруппаТовара2

 

 

 

 

Сумма по строке

ГруппаТовара3

 

 

 

 

Сумма по строке

 

 

 

 

Сумма по строке

ГруппаТовараN

 

 

 

 

Сумма по строке

Итого

Сумма по столбцу

Сумма по столбцу

Сумма по столбцу

Сумма по столбцу

Сумма по столбцу

Итого услуги

Сумма по услугам

Сумма по услугам

Сумма по услугам

Сумма по услугам

Сумма по услугам

 

Реализация

  1. В запросе «Набора Данных» должно быть поле для дальнейшей группировки, позволяющее явно выделить данные относящиеся к «итого услуги» («ГруппаУслуги»)
  2. В настройках макета к строкам добавляем группировку по полю «ГруппаУслуги»
  3. Для нее настраиваем отбор ГруппаУслуги = «услуги»
  4. Для нее в настройках отключаем «Расположение общих итогов» и «Выводить отбор».

 

Также реализуется, например, возможность добавить столбец «Итого за 9 месяцев» (накладывается условие на «дату», ограничивающее 9 месяцев), т.е. при отображения данных всего года, имеем возможность отобразить итог за 9 месяцев.

 

Примечание: если полетят «камни»:

  1. Это первая статья тут, бум дополнять и править
  2. Не позиционирую себя как «программист 1С»
  3. 1С использую потому, что необходимо, поэтому информация в некоторых случаях поверхностная и не претендующая на статус «гуру»
  4. Не думаю, что изобрел «самолет»  
 
Дополнено 12.03.2015 
 - приложил файл + скриншот, в котором выполнена демонстрация отображения данных за 9 месяцев  
 

Скачать файлы

Наименование Файл Версия Размер
отображение дополнительного столбца 9 месяцев
.erf 6,79Kb
12.03.15
10
.erf 0 6,79Kb 10 Скачать

См. также

Комментарии
1. Евгений (Ekovichev) 498 05.03.15 15:14 Сейчас в теме
Здравствуйте. Вы бы выложили пример еще реализации
2. Сергей Ка (graZy) 15 05.03.15 16:05 Сейчас в теме
(1) Ekovichev,
ок.

Сделал простой пример для БП 2.0 (см.файл).

Отображаем справочник "Номенклатур", считаем Количество и Итог.

Дополнительно отображаем Итог который отображает количество "Групп" (назван "Да" - но это детали потому как на скорую руку лепил)

Пояснения к реализации .
1. В запросе «Набора Данных» должно быть поле для дальнейшей группировки (Номенклатура.ЭтоГруппа)
2. В настройках макета к строкам добавляем группировку по полю (ЭтоГруппа)
3. Для ЭтоГруппа настраиваем отбор (ЭтоГруппа = Истина)
4. Для ЭтоГруппа в настройках (см. другие настройки) отключаем ...

картинки если нужны может позже ...
Прикрепленные файлы:
ВнешнийОтчет1.erf
3. Илья (husky) 4 05.03.15 20:21 Сейчас в теме
Добрый вечер! Подскажите, а как в такой таблице вывести в самый низ строку "Нарастающий итог", чтобы показывала в первой колонке первую сумму, во второй 1+2, в третьей 1+2+3 и т.д.? Заранее спасибо. Очень нужна подобная реализация, сам пробовал никак не получается (
4. Максим Биенко (Bienko) 112 05.03.15 22:06 Сейчас в теме
(3) husky, там есть функция ВычислитьВыражение

Пример:

Если требуется рассчитать сумму с накоплением, то можно использовать следующее выражение:

ВычислитьВыражение(“Сумма(СуммаОборот)”, , , “Первая”, “Текущая”)
5. Евгений (Ekovichev) 498 06.03.15 06:33 Сейчас в теме
(2) graZy,

Так вы к публикации прикрепите отчет, вам за скачивание местная валюта капать будет.
6. Илья (husky) 4 06.03.15 08:09 Сейчас в теме
(4) Bienko, она хорошо работает на строках (группировках и т.д.), но как сделать чтобы ресурсная колонка былабы с итогом внизу нарастающим?
7. Максим Биенко (Bienko) 112 06.03.15 08:26 Сейчас в теме
(6) husky, кинь свой отчет на скд и файл в экселе как ты его хочешь видеть, плюс напиши для какой базы.
8. Сергей Ка (graZy) 15 10.03.15 09:38 Сейчас в теме
(5) Ekovichev, спасибо, просто мне стыдно такой отчет (что прикрепил выше) крепить к публикации ))) он просто мини демонстратор.

;) сама идея была накопана для другого отчета, но его сюда не впихнуть )))
9. Сергей Ка (graZy) 15 10.03.15 09:41 Сейчас в теме
(3) husky, похоже это ты про то (ну очень близко) на что я сам ответ ищу ...
http://forum.infostart.ru/forum86/topic126553/

как пишут выход запрос (я бы рекомендовал этот подход, ну или программно считать)
другого решения я пока не видел (((

кто найдет пишите
10. Сергей Ка (graZy) 15 10.03.15 16:51 Сейчас в теме
(6) husky,
несколько колонок, и нужно чтобы под одним итогом получился другой (но с нарастающими) думаю прокатит

1. нужно рассчитать нарастающие (это через запрос перекрестив таблицу, с собой же)
2. ньюанс оба набора данных "обычный" и "нарастающий" помещаем в одно "поле", но добавляем еще "поле" позволяющее их разделить ("флажок" или "маркер" кому как удобней)
3. При настройках делаем группировку по "флажку" и ограничеваем вывод только "данных" (выводим включая деталку)
4. При настройках делаем группировку по "флажку" и ограничеваем вывод только "нарастающих" (без деталки)

вроде должно получиться (примера нет, но если пришлешь черновик - допилю и выложу)
12. Fomix (fomix) 23 12.03.15 15:04 Сейчас в теме
(2) graZy, Приложенный отчет - пустышка, в которой нет того о чем пишет в комментах автор! Попробовал наваять что-то подобное. Сделано для 1С:Бухгалтерия предприятия, редакция 3.0. Не показывает отдельно ИТОГОВ по выделенной группе. Что не так сделал?!
Прикрепленные файлы:
ДополнительныеИтогиВСКД (bpf).erf
13. Сергей Ка (graZy) 15 12.03.15 15:30 Сейчас в теме
(12) fomix,

про ваш файл

если вы задаете (как доп группу по которой ограничиваем):

ВЫБОР
КОГДА ПоступлениеТоваровУслугТовары.Номенклатура.Родитель = &ГруппаУслуги
ТОГДА "Услуга"
ИНАЧЕ "Товар"
КОНЕЦ КАК ГруппаУслуги

то ...

в "настройки" (закладка) для "Группа Услуги" должны задать выражение ??? (пункт 3) а у Вас?! - Результат соответсвенно ...

измененный прикладываю
Прикрепленные файлы:
ДополнительныеИтогиВСКД (bpf).erf
14. Fomix (fomix) 23 12.03.15 17:26 Сейчас в теме
(13) graZy, Каюсь не досмотрел! Спасибо за наводку.
Не сообразил, что отбор делается в настройках на закладке "Отбор" для строки "ГруппаУслуги".
И еще у вас на рисунке Итоги по дополнительной строке печатаются сразу после ОбщихИтогов, а у меня еще и строка с отбором вылазит. Ее никак не убрать или надо делать постобработку табличного документа?
15. Сергей Ка (graZy) 15 12.03.15 17:37 Сейчас в теме
(14) fomix,

Цитата 4. Для нее в настройках отключаем «Расположение общих итогов» и «Выводить отбор».

Наводка "Настройки"/(Ваша группа "Группа Услуги")/"Другие настройки"
Оставьте свое сообщение