gifts2017

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

Опубликовал Сергей Ка (graZy) в раздел Программирование - Практика программирования

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

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

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

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

 

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

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

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

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

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 месяцев 8
.erf 6,79Kb
12.03.15
8
.erf 0 6,79Kb Скачать

См. также

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

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

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

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

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

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

Пример:

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

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

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

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

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

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

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

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

про ваш файл

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

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

то ...

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

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

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

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