Пример отчета с выводом остатков по всем периодам

15.09.15

Разработка - СКД

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

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

Наименование Файл Версия Размер
Вывод остатков в СКД по месяцам
.erf 6,72Kb
156
.erf 01 6,72Kb 156 Скачать

В качестве примера выбран регистр "Расчеты с клиентами" (Управление торговлей 11, в.11.1.2). Необходимо вывести корректные конечные остатки по этому регистру на конец каждого месяца, причем даже если не было движений в течение определенного месяца. Задача "в лоб" не решается (можете проверить) - указав в качестве периода отчета, например, текущий год и выбрав в отборе клиента, у которого нет движений за этот год, но есть начальный остаток, мы увидим только первый и последний месяцы с корректным конечным остатком, остальные месяцы "провалились": 

В инете можно найти рекомендации, как добиться желаемого. 

Первое - помимо исходной таблицы остатков (не остатки и обороты, поскольку в данном случае меня интересуют только конечные остатки) надо добавить таблицу со всеми датами. Т.е., если меня интересует этот год, то надо получить список дат на конец каждого месяца этого года - 31 января 23:59:59, 28 февраля 23:59:59 ... 31 декабря 23:59:59. Данная таблица с датами соединяется (НЕ объединяется) с основной таблицей (ИсходныеДанные).

В основной таблице добавляем реквизит &Период (у меня это Месяц) как на рисунке, не забываем его же вставить в параметры виртуальной таблицы. Соответственно, для вывода отчета "Период" (он же "Месяц") - это Измерение,

 

а для связи 2-х таблиц - это Параметр:

Здесь все "переменные" названы по-разному, чтобы не запутаться прежде всего самому, что к чему относится. Также обратите внимание, что здесь ВАЖЕН порядок связи: сначала таблица с датами, потом таблица с исходными данными (не забываем - в СКД связь на данной закладке ЛЕВАЯ).

ЗЫ. Ради интереса проверьте, что будет, если их переставить местами.

Окончательный вариант дает именно то, чего и добивались:

 

 

PS. Спасибо Мисте за код запроса, собирающего даты.

PPS. Да пусть не обидятся на меня те, кто решал и публиковал решение этой задачки, я вовсе не претендую на оригинальность, просто хочется свести все воедино прежде всего для самого себя, и чтобы всегда было под рукой...

  

СКД

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122070    670    389    

713

Генератор схемы компоновки данных (СКД), написание кода схемы программно

Инструментарий разработчика СКД Платформа 1С v8.3 Конфигурации 1cv8 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

По выбранной схеме компоновки данных генерирует программный код, который генерирует СКД, аналогичную исходной схеме. Есть дополнительные инструменты для просмотра дерева схемы, сравнение исходной схемы и полученной по коду, а также сравнение изменений в сгенерированном коде для исходной схемы и для измененной.

3 стартмани

05.02.2024    4035    25    obmailok    17    

63

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2000    2    Yashazz    0    

29

СКД на JavaScript в 1С

СКД WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время поддерживаю web-портал, в котором появилась необходимость создавать отчеты. Просмотрев различные фреймворки на js, я решил сделать свое решение, которое позволяло бы быстро разрабатывать и добавлять новые отчеты на web-портал.

2 стартмани

11.12.2023    8155    20    John_d    25    

123

Использование менеджера временных таблиц в СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

05.12.2023    4652    PROSTO-1C    13    

61

Модель СКД

Инструментарий разработчика СКД Платформа 1С v8.3 Система компоновки данных Абонемент ($m)

DSL для работы с СКД.

1 стартмани

15.11.2023    5805    15    kalyaka    5    

86

Пользовательские настройки отчетов 1С. Часть 1. Простые и расширенные настройки

СКД Инструкции пользователю Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Простые приемы работы с отчетами на СКД. Что нужно знать пользователю про настройку отчетов, чтобы использовать их на полную катушку.

18.09.2023    6697    accounting_cons    5    

29

Разрыв страницы в СКД. Легко!

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

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

01.09.2023    4518    KVIKS    15    

80
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. klaus38 15.09.15 13:50 Сейчас в теме
Спасибо тебе добрый человек. Вот только что начальство попросило по месяцам, я даже репу почесать не успел и тут на тебе (плюсую)
2. dabu-dabu 289 15.09.15 15:07 Сейчас в теме
Способ бессмысленно и даже вредно использовать для простых запросов из виртуальных таблиц, в случе использования которых достаточно правильно настроить роли полей набора данных.
И то что автор "перелопатил интернет" и не нашел описания данного способа - это странно.
3. Mortiferus 362 15.09.15 15:29 Сейчас в теме
(2) dabu-dabu, как оказалось - недостаточно. Предлагаю самому попробовать.
5. dabu-dabu 289 15.09.15 17:28 Сейчас в теме
(3) Попробовал. Все работает, но нужно в запросе выводить поле не только конечного остатка, но и начального. В отчет, при этом, можно вывести только конечный.
7. Mortiferus 362 16.09.15 07:10 Сейчас в теме
(5) dabu-dabu, я добавлял и начальный остаток, и оборот, и приход, и расход - всегда выходит только первый и последний месяц.
17. Sherdrada 25.08.20 09:20 Сейчас в теме
(5) а если начальный остаток тоже нужен, как быть?
18. dabu-dabu 289 25.08.20 13:28 Сейчас в теме
(17) Принцип простой, в наборе данных должны быть поля и начального и конечного остатков с правильно настроенной ролью. Что при этом выводится в отчет не важно. Т.е. можно вывести как начальный и конечный остатки, так и только один из них.
Sherdrada; +1 Ответить
4. AndreyV-13 15.09.15 15:35 Сейчас в теме
Спасибо. Плюсик от меня.
6. headMade 144 15.09.15 17:47 Сейчас в теме
В свойствах поля группировки указать тип дополнения не подойдет?
Прикрепленные файлы:
8. Mortiferus 362 16.09.15 07:21 Сейчас в теме
(6) headMade, попробовал так сделать, получается ерунда:
Месяцы вышли все, остаток по месяцам не вышел. Возможно еще о какой-то настройке не знаю, не исключаю.
Пробовал при этом Роль Месяца ставить и как Период, и как Измерение (тип Дата).
Прикрепленные файлы:
Summer_13; +1 Ответить
9. Mortiferus 362 16.09.15 08:24 Сейчас в теме
(6) headMade, а вот если вместо виртуальной таблицы остатков выбрать таблицу остатков и оборотов, тогда получается! Спасибо. Век живи, век учись...
12. rom-x 152 15.03.18 16:17 Сейчас в теме
(9)
А если нужны начальные остатки на каждый месяц?

Можно код запроса с остатками и оборотами?
13. Mortiferus 362 16.03.18 09:47 Сейчас в теме
(12) не понял. вроде на картинке все показано, только вместо таблицы Остатки используйте таблицу ОстаткиИОбороты
10. Adeptus 225 16.09.15 09:07 Сейчас в теме
11. 7OH 69 19.10.16 10:33 Сейчас в теме
Пробовал разные методы.
Единственным нормальным по скорости и корректности оказался ОстаткиИОбороты с указанием периодичности в
ПриКомпоновкеРезультата
изменением
ЭтотОбъект.СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос
14. jump0 7 30.10.19 13:27 Сейчас в теме
https://infostart.ru/public/1147439/ сделал через вспомогательную скд остатки по датам и получаю таблицу с датам и остатками.
15. hasp_x 156 16.04.20 10:47 Сейчас в теме
Обороты как-то сами собой по периодам получаются. Не думал, что с остатками будет такая морока. Оказывается все дело в роли и параметре соединения. Спасибо за наводку
16. Amara 07.07.20 10:03 Сейчас в теме
необходимо вывести таблицу остатков и оборотов по месяцам, в детализации сделки, если в каком-то месяце не было движений по конкретному документу начальный и конечный остатки не попадают. пробовала получить хотя бы остатки помесячно, настроив отчет в скд как в примере, все остатки на каждый месяц = остатку на конец периода отчета. предполагаю что параметр виртуальной таблицы основного запроса подставляется из параметров отчета, а не из таблицы периодов. подскажите может еще какие настройки нужны? на закладке Параметры, например?
19. Djo82 6 05.04.22 06:05 Сейчас в теме
У меня вышло через дополнения месяца вывести, регистр оборотный
Прикрепленные файлы:
Оставьте свое сообщение