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

15.09.15

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Вывод остатков в СКД по месяцам
.erf 6,72Kb ver:01
165
165 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

 

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

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

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

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

 

 

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

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

  

СКД

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    159424    872    399    

861

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

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

15.05.2024    8684    implecs_team    6    

47

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

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

3 стартмани

05.02.2024    6996    56    obmailok    21    

79

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

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

1 стартмани

31.01.2024    3148    5    Yashazz    1    

34

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

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

2 стартмани

11.12.2023    10804    23    John_d    25    

124

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

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

05.12.2023    8017    PROSTO-1C    15    

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

Можно код запроса с остатками и оборотами?
13. Mortiferus 363 16.03.18 09:47 Сейчас в теме
(12) не понял. вроде на картинке все показано, только вместо таблицы Остатки используйте таблицу ОстаткиИОбороты
10. Adeptus 232 16.09.15 09:07 Сейчас в теме
11. 7OH 70 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 12 05.04.22 06:05 Сейчас в теме
У меня вышло через дополнения месяца вывести, регистр оборотный
Прикрепленные файлы:
Оставьте свое сообщение